getInstances ktn arr = toArray arr >>= mapM (parseInstance ktn)
-- | Construct an instance from a JSON object.
-parseInstance :: [(String, Ndx)]
+parseInstance :: NameAssoc
-> JSValue
-> Result (String, Instance.Instance)
parseInstance ktn (JSArray [ name, disk, mem, vcpus
)
parseData :: (Result JSValue, Result JSValue, Result JSValue)
- -> Result (Node.AssocList, Instance.AssocList, [String])
+ -> Result (Node.List, Instance.List, [String])
parseData (nodes, instances, cinfo) = do
node_data <- nodes >>= getNodes
let (node_names, node_idx) = assignIndices node_data
-- | Top level function for data loading
loadData :: String -- ^ Unix socket to use as source
- -> IO (Result (Node.AssocList, Instance.AssocList, [String]))
+ -> IO (Result (Node.List, Instance.List, [String]))
loadData master = readData master >>= return . parseData