diff --git a/Ganeti/HTools/Luxi.hs b/Ganeti/HTools/Luxi.hs index de83d6cb58a132b348826fc9fa778a8a9f526e1f..27d23a56cc3b57f812643d069b3b65454c9d3cbf 100644 --- a/Ganeti/HTools/Luxi.hs +++ b/Ganeti/HTools/Luxi.hs @@ -93,7 +93,8 @@ getInstances ktn arr = toArray arr >>= mapM (parseInstance ktn) parseInstance :: [(String, Ndx)] -> JSValue -> Result (String, Instance.Instance) -parseInstance ktn (JSArray (name:disk:mem:vcpus:status:pnode:snodes:[])) = do +parseInstance ktn (JSArray [ name, disk, mem, vcpus + , status, pnode, snodes ]) = do xname <- annotateResult "Parsing new instance" (fromJVal name) let convert v = annotateResult ("Instance '" ++ xname ++ "'") (fromJVal v) xdisk <- convert disk @@ -115,8 +116,8 @@ getNodes arr = toArray arr >>= mapM parseNode -- | Construct a node from a JSON object. parseNode :: JSValue -> Result (String, Node.Node) -parseNode (JSArray - (name:mtotal:mnode:mfree:dtotal:dfree:ctotal:offline:drained:[])) +parseNode (JSArray [ name, mtotal, mnode, mfree, dtotal, dfree + , ctotal, offline, drained ]) = do xname <- annotateResult "Parsing new node" (fromJVal name) let convert v = annotateResult ("Node '" ++ xname ++ "'") (fromJVal v) diff --git a/Ganeti/HTools/Text.hs b/Ganeti/HTools/Text.hs index 5fae5aa25b477f5084dee9befa9fa0a7ffc27619..69737a8a0356cf5d59c1c43b6142d2b7bfbcf388 100644 --- a/Ganeti/HTools/Text.hs +++ b/Ganeti/HTools/Text.hs @@ -42,7 +42,7 @@ import qualified Ganeti.HTools.Instance as Instance -- | Load a node from a field list. loadNode :: (Monad m) => [String] -> m (String, Node.Node) -loadNode (name:tm:nm:fm:td:fd:tc:fo:[]) = do +loadNode [name, tm, nm, fm, td, fd, tc, fo] = do new_node <- if any (== "?") [tm,nm,fm,td,fd,tc] || fo == "Y" then return $ Node.create name 0 0 0 0 0 0 True @@ -60,7 +60,7 @@ loadNode s = fail $ "Invalid/incomplete node data: '" ++ show s ++ "'" -- | Load an instance from a field list. loadInst :: (Monad m) => [(String, Ndx)] -> [String] -> m (String, Instance.Instance) -loadInst ktn (name:mem:dsk:vcpus:status:pnode:snode:[]) = do +loadInst ktn [name, mem, dsk, vcpus, status, pnode, snode] = do pidx <- lookupNode ktn name pnode sidx <- (if null snode then return Node.noSecondary else lookupNode ktn name snode)