Revision c8c071cb 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|%d" (Node.name node) |
|
87 |
printf "%s|%.0f|%d|%d|%.0f|%d|%.0f|%c|%s|%d|%s|%s|%d|%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 |
... | ... | |
94 | 94 |
(intercalate "," (Node.nTags node)) |
95 | 95 |
(if Node.exclStorage node then "Y" else "N") |
96 | 96 |
(Node.fSpindles node) |
97 |
(Node.nCpu node) |
|
97 | 98 |
where grp = Container.find (Node.group node) gl |
98 | 99 |
|
99 | 100 |
-- | Generate node file data from node objects. |
... | ... | |
206 | 207 |
-> m (String, Node.Node) -- ^ The result, a tuple o node name |
207 | 208 |
-- and node object |
208 | 209 |
loadNode ktg [name, tm, nm, fm, td, fd, tc, fo, gu, spindles, tags, |
209 |
excl_stor, free_spindles] = do |
|
210 |
excl_stor, free_spindles, nos_cpu] = do
|
|
210 | 211 |
gdx <- lookupGroup ktg name gu |
211 | 212 |
new_node <- |
212 | 213 |
if "?" `elem` [tm,nm,fm,td,fd,tc] || fo == "Y" then |
213 |
return $ Node.create name 0 0 0 0 0 0 True 0 0 gdx False |
|
214 |
return $ Node.create name 0 0 0 0 0 0 0 True 0 0 gdx False
|
|
214 | 215 |
else do |
215 | 216 |
let vtags = commaSplit tags |
216 | 217 |
vtm <- tryRead name tm |
... | ... | |
219 | 220 |
vtd <- tryRead name td |
220 | 221 |
vfd <- tryRead name fd |
221 | 222 |
vtc <- tryRead name tc |
223 |
vnc <- tryRead name nos_cpu |
|
222 | 224 |
vspindles <- tryRead name spindles |
223 | 225 |
vfree_spindles <- tryRead name free_spindles |
224 | 226 |
vexcl_stor <- case excl_stor of |
... | ... | |
228 | 230 |
"Invalid exclusive_storage value for node '" ++ |
229 | 231 |
name ++ "': " ++ excl_stor |
230 | 232 |
return . flip Node.setMaster (fo == "M") . flip Node.setNodeTags vtags $ |
231 |
Node.create name vtm vnm vfm vtd vfd vtc False vspindles |
|
233 |
Node.create name vtm vnm vfm vtd vfd vtc vnc False vspindles
|
|
232 | 234 |
vfree_spindles gdx vexcl_stor |
233 | 235 |
return (name, new_node) |
234 | 236 |
|
... | ... | |
246 | 248 |
loadNode ktg [name, tm, nm, fm, td, fd, tc, fo, gu, spindles, tags, |
247 | 249 |
excl_stor, "0"] |
248 | 250 |
|
251 |
loadNode ktg [name, tm, nm, fm, td, fd, tc, fo, gu, spindles, tags, |
|
252 |
excl_stor, free_spindles] = |
|
253 |
loadNode ktg [name, tm, nm, fm, td, fd, tc, fo, gu, spindles, tags, |
|
254 |
excl_stor, free_spindles, "1"] |
|
255 |
|
|
249 | 256 |
loadNode _ s = fail $ "Invalid/incomplete node data: '" ++ show s ++ "'" |
250 | 257 |
|
251 | 258 |
-- | Load an instance from a field list. |
Also available in: Unified diff