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