Revision bc782180 htools/Ganeti/HTools/Text.hs

b/htools/Ganeti/HTools/Text.hs
86 86
                    then ""
87 87
                    else Container.nameOf nl sidx)
88 88
    in
89
      printf "%s|%d|%d|%d|%s|%s|%s|%s"
89
      printf "%s|%d|%d|%d|%s|%s|%s|%s|%s"
90 90
             iname (Instance.mem inst) (Instance.dsk inst)
91 91
             (Instance.vcpus inst) (Instance.runSt inst)
92
             (if Instance.auto_balance inst then "Y" else "N")
92 93
             pnode snode (intercalate "," (Instance.tags inst))
93 94

  
94 95
-- | Generate instance file data from instance objects
......
134 135
-- | Load an instance from a field list.
135 136
loadInst :: (Monad m) =>
136 137
            NameAssoc -> [String] -> m (String, Instance.Instance)
137
loadInst ktn [name, mem, dsk, vcpus, status, pnode, snode, tags] = do
138
loadInst ktn [name, mem, dsk, vcpus, status, auto_bal, pnode, snode, tags] = do
138 139
  pidx <- lookupNode ktn name pnode
139 140
  sidx <- (if null snode then return Node.noSecondary
140 141
           else lookupNode ktn name snode)
141 142
  vmem <- tryRead name mem
142 143
  vdsk <- tryRead name dsk
143 144
  vvcpus <- tryRead name vcpus
145
  auto_balance <- case auto_bal of
146
                    "Y" -> return True
147
                    "N" -> return False
148
                    _ -> fail $ "Invalid auto_balance value '" ++ auto_bal ++
149
                         "' for instance " ++ name
144 150
  when (sidx == pidx) $ fail $ "Instance " ++ name ++
145 151
           " has same primary and secondary node - " ++ pnode
146 152
  let vtags = sepSplit ',' tags
147 153
      newinst = Instance.create name vmem vdsk vvcpus status vtags
148
                True pidx sidx
154
                auto_balance pidx sidx
149 155
  return (name, newinst)
150 156
loadInst _ s = fail $ "Invalid/incomplete instance data: '" ++ show s ++ "'"
151 157

  

Also available in: Unified diff