diff --git a/htools/Ganeti/HTools/ExtLoader.hs b/htools/Ganeti/HTools/ExtLoader.hs index 74f68381d6b960dca1420b1417dc97eacc8d5605..435d3686d53fc8699b7c75783e6d246a2dfdbd78 100644 --- a/htools/Ganeti/HTools/ExtLoader.hs +++ b/htools/Ganeti/HTools/ExtLoader.hs @@ -57,17 +57,17 @@ wrapIO = flip catch (return . Bad . show) parseUtilisation :: String -> Result (String, DynUtil) parseUtilisation line = - let columns = sepSplit ' ' line - in case columns of - [name, cpu, mem, dsk, net] -> do - rcpu <- tryRead name cpu - rmem <- tryRead name mem - rdsk <- tryRead name dsk - rnet <- tryRead name net - let du = DynUtil { cpuWeight = rcpu, memWeight = rmem - , dskWeight = rdsk, netWeight = rnet } - return (name, du) - _ -> Bad $ "Cannot parse line " ++ line + case sepSplit ' ' line of + [name, cpu, mem, dsk, net] -> + do + rcpu <- tryRead name cpu + rmem <- tryRead name mem + rdsk <- tryRead name dsk + rnet <- tryRead name net + let du = DynUtil { cpuWeight = rcpu, memWeight = rmem + , dskWeight = rdsk, netWeight = rnet } + return (name, du) + _ -> Bad $ "Cannot parse line " ++ line -- | External tool data loader from a variety of sources. loadExternalData :: Options