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