Revision 96f9b0a6 src/Ganeti/HTools/Backend/Text.hs
b/src/Ganeti/HTools/Backend/Text.hs | ||
---|---|---|
84 | 84 |
-> Node.Node -- ^ The node to be serialised |
85 | 85 |
-> String |
86 | 86 |
serializeNode gl node = |
87 |
printf "%s|%.0f|%d|%d|%.0f|%d|%.0f|%c|%s|%d|%s|%s" (Node.name node) |
|
87 |
printf "%s|%.0f|%d|%d|%.0f|%d|%.0f|%c|%s|%d|%s|%s|%d" (Node.name node)
|
|
88 | 88 |
(Node.tMem node) (Node.nMem node) (Node.fMem node) |
89 | 89 |
(Node.tDsk node) (Node.fDsk node) (Node.tCpu node) |
90 | 90 |
(if Node.offline node then 'Y' else |
91 | 91 |
if Node.isMaster node then 'M' else 'N') |
92 | 92 |
(Group.uuid grp) |
93 |
(Node.spindleCount node)
|
|
93 |
(Node.tSpindles node)
|
|
94 | 94 |
(intercalate "," (Node.nTags node)) |
95 | 95 |
(if Node.exclStorage node then "Y" else "N") |
96 |
(Node.fSpindles node) |
|
96 | 97 |
where grp = Container.find (Node.group node) gl |
97 | 98 |
|
98 | 99 |
-- | Generate node file data from node objects. |
... | ... | |
205 | 206 |
-> m (String, Node.Node) -- ^ The result, a tuple o node name |
206 | 207 |
-- and node object |
207 | 208 |
loadNode ktg [name, tm, nm, fm, td, fd, tc, fo, gu, spindles, tags, |
208 |
excl_stor] = do |
|
209 |
excl_stor, free_spindles] = do
|
|
209 | 210 |
gdx <- lookupGroup ktg name gu |
210 | 211 |
new_node <- |
211 | 212 |
if "?" `elem` [tm,nm,fm,td,fd,tc] || fo == "Y" then |
212 |
return $ Node.create name 0 0 0 0 0 0 True 0 gdx False |
|
213 |
return $ Node.create name 0 0 0 0 0 0 True 0 0 gdx False
|
|
213 | 214 |
else do |
214 | 215 |
let vtags = commaSplit tags |
215 | 216 |
vtm <- tryRead name tm |
... | ... | |
219 | 220 |
vfd <- tryRead name fd |
220 | 221 |
vtc <- tryRead name tc |
221 | 222 |
vspindles <- tryRead name spindles |
223 |
vfree_spindles <- tryRead name free_spindles |
|
222 | 224 |
vexcl_stor <- case excl_stor of |
223 | 225 |
"Y" -> return True |
224 | 226 |
"N" -> return False |
... | ... | |
226 | 228 |
"Invalid exclusive_storage value for node '" ++ |
227 | 229 |
name ++ "': " ++ excl_stor |
228 | 230 |
return . flip Node.setMaster (fo == "M") . flip Node.setNodeTags vtags $ |
229 |
Node.create name vtm vnm vfm vtd vfd vtc False vspindles gdx
|
|
230 |
vexcl_stor |
|
231 |
Node.create name vtm vnm vfm vtd vfd vtc False vspindles |
|
232 |
vfree_spindles gdx vexcl_stor
|
|
231 | 233 |
return (name, new_node) |
232 | 234 |
|
233 | 235 |
loadNode ktg [name, tm, nm, fm, td, fd, tc, fo, gu] = |
... | ... | |
239 | 241 |
loadNode ktg [name, tm, nm, fm, td, fd, tc, fo, gu, spindles, tags] = |
240 | 242 |
loadNode ktg [name, tm, nm, fm, td, fd, tc, fo, gu, spindles, tags, "N"] |
241 | 243 |
|
244 |
loadNode ktg [name, tm, nm, fm, td, fd, tc, fo, gu, spindles, tags, |
|
245 |
excl_stor] = |
|
246 |
loadNode ktg [name, tm, nm, fm, td, fd, tc, fo, gu, spindles, tags, |
|
247 |
excl_stor, "0"] |
|
248 |
|
|
242 | 249 |
loadNode _ s = fail $ "Invalid/incomplete node data: '" ++ show s ++ "'" |
243 | 250 |
|
244 | 251 |
-- | Load an instance from a field list. |
Also available in: Unified diff