Revision 241cea1e src/Ganeti/HTools/Backend/IAlloc.hs

b/src/Ganeti/HTools/Backend/IAlloc.hs
65 65
                  -> JSRecord
66 66
                  -> Result (String, Instance.Instance)
67 67
parseBaseInstance n a = do
68
  let extract x = tryFromObj ("invalid data for instance '" ++ n ++ "'") a x
68
  let errorMessage = "invalid data for instance '" ++ n ++ "'"
69
  let extract x = tryFromObj errorMessage a x
69 70
  disk  <- extract "disk_space_total"
71
  disks <- extract "disks" >>= toArray >>= asObjectList >>=
72
           mapM (flip (tryFromObj errorMessage) "size" . fromJSObject)
70 73
  mem   <- extract "memory"
71 74
  vcpus <- extract "vcpus"
72 75
  tags  <- extract "tags"
73 76
  dt    <- extract "disk_template"
74 77
  su    <- extract "spindle_use"
75
  return (n, Instance.create n mem disk vcpus Running tags True 0 0 dt su)
78
  return (n, Instance.create n mem disk disks vcpus Running tags True 0 0 dt su)
76 79

  
77 80
-- | Parses an instance as found in the cluster instance list.
78 81
parseInstance :: NameAssoc -- ^ The node name-to-index association list

Also available in: Unified diff