Revision 6429e8d8 htools/Ganeti/HTools/Text.hs

b/htools/Ganeti/HTools/Text.hs
93 93
                    then ""
94 94
                    else Container.nameOf nl sidx)
95 95
    in
96
      printf "%s|%d|%d|%d|%s|%s|%s|%s|%s"
96
      printf "%s|%d|%d|%d|%s|%s|%s|%s|%s|%s"
97 97
             iname (Instance.mem inst) (Instance.dsk inst)
98 98
             (Instance.vcpus inst) (Instance.runSt inst)
99 99
             (if Instance.autoBalance inst then "Y" else "N")
100
             pnode snode (intercalate "," (Instance.tags inst))
100
             pnode snode (dtToString (Instance.diskTemplate inst))
101
             (intercalate "," (Instance.tags inst))
101 102

  
102 103
-- | Generate instance file data from instance objects.
103 104
serializeInstances :: Node.List -> Instance.List -> String
......
148 149
loadNode _ s = fail $ "Invalid/incomplete node data: '" ++ show s ++ "'"
149 150

  
150 151
-- | Load an instance from a field list.
151
loadInst :: (Monad m) =>
152
            NameAssoc                     -- ^ Association list with
153
                                          -- the current nodes
154
         -> [String]                      -- ^ Input data as a list of
155
                                          -- fields
156
         -> m (String, Instance.Instance) -- ^ The result, a tuple of
157
                                          -- instance name and the
158
                                          -- instance object
159
loadInst ktn [name, mem, dsk, vcpus, status, auto_bal, pnode, snode, tags] = do
152
loadInst :: NameAssoc -- ^ Association list with the current nodes
153
         -> [String]  -- ^ Input data as a list of fields
154
         -> Result (String, Instance.Instance) -- ^ A tuple of
155
                                               -- instance name and
156
                                               -- the instance object
157
loadInst ktn [ name, mem, dsk, vcpus, status, auto_bal, pnode, snode
158
             , dt, tags ] = do
160 159
  pidx <- lookupNode ktn name pnode
161 160
  sidx <- (if null snode then return Node.noSecondary
162 161
           else lookupNode ktn name snode)
......
168 167
                    "N" -> return False
169 168
                    _ -> fail $ "Invalid auto_balance value '" ++ auto_bal ++
170 169
                         "' for instance " ++ name
170
  disk_template <- annotateResult ("Instance " ++ name) (dtFromString dt)
171 171
  when (sidx == pidx) $ fail $ "Instance " ++ name ++
172 172
           " has same primary and secondary node - " ++ pnode
173 173
  let vtags = sepSplit ',' tags
174 174
      newinst = Instance.create name vmem vdsk vvcpus status vtags
175
                auto_balance pidx sidx DTDrbd8
175
                auto_balance pidx sidx disk_template
176 176
  return (name, newinst)
177 177
loadInst _ s = fail $ "Invalid/incomplete instance data: '" ++ show s ++ "'"
178 178

  

Also available in: Unified diff