Revision c324da14 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" (Node.name node) |
|
87 |
printf "%s|%.0f|%d|%d|%.0f|%d|%.0f|%c|%s|%d|%s|%s" (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 |
... | ... | |
92 | 92 |
(Group.uuid grp) |
93 | 93 |
(Node.spindleCount node) |
94 | 94 |
(intercalate "," (Node.nTags node)) |
95 |
(if Node.exclStorage node then "Y" else "N") |
|
95 | 96 |
where grp = Container.find (Node.group node) gl |
96 | 97 |
|
97 | 98 |
-- | Generate node file data from node objects. |
... | ... | |
199 | 200 |
-> [String] -- ^ Input data as a list of fields |
200 | 201 |
-> m (String, Node.Node) -- ^ The result, a tuple o node name |
201 | 202 |
-- and node object |
202 |
loadNode ktg [name, tm, nm, fm, td, fd, tc, fo, gu, spindles, tags] = do |
|
203 |
loadNode ktg [name, tm, nm, fm, td, fd, tc, fo, gu, spindles, tags, |
|
204 |
excl_stor] = do |
|
203 | 205 |
gdx <- lookupGroup ktg name gu |
204 | 206 |
new_node <- |
205 | 207 |
if "?" `elem` [tm,nm,fm,td,fd,tc] || fo == "Y" then |
206 |
return $ Node.create name 0 0 0 0 0 0 True 0 gdx |
|
208 |
return $ Node.create name 0 0 0 0 0 0 True 0 gdx False
|
|
207 | 209 |
else do |
208 | 210 |
let vtags = commaSplit tags |
209 | 211 |
vtm <- tryRead name tm |
... | ... | |
213 | 215 |
vfd <- tryRead name fd |
214 | 216 |
vtc <- tryRead name tc |
215 | 217 |
vspindles <- tryRead name spindles |
218 |
vexcl_stor <- case excl_stor of |
|
219 |
"Y" -> return True |
|
220 |
"N" -> return False |
|
221 |
_ -> fail $ |
|
222 |
"Invalid exclusive_storage value for node '" ++ |
|
223 |
name ++ "': " ++ excl_stor |
|
216 | 224 |
return . flip Node.setMaster (fo == "M") . flip Node.setNodeTags vtags $ |
217 | 225 |
Node.create name vtm vnm vfm vtd vfd vtc False vspindles gdx |
226 |
vexcl_stor |
|
218 | 227 |
return (name, new_node) |
219 | 228 |
|
220 | 229 |
loadNode ktg [name, tm, nm, fm, td, fd, tc, fo, gu] = |
... | ... | |
223 | 232 |
loadNode ktg [name, tm, nm, fm, td, fd, tc, fo, gu, spindles] = |
224 | 233 |
loadNode ktg [name, tm, nm, fm, td, fd, tc, fo, gu, spindles, ""] |
225 | 234 |
|
235 |
loadNode ktg [name, tm, nm, fm, td, fd, tc, fo, gu, spindles, tags] = |
|
236 |
loadNode ktg [name, tm, nm, fm, td, fd, tc, fo, gu, spindles, tags, "N"] |
|
237 |
|
|
226 | 238 |
loadNode _ s = fail $ "Invalid/incomplete node data: '" ++ show s ++ "'" |
227 | 239 |
|
228 | 240 |
-- | Load an instance from a field list. |
Also available in: Unified diff