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