> Just nitpicking: > > unless p Nothing > > can be replaced by > > guard p > > [...] > > In any case LGTM
FYI Interdiff. commit b3de3c37f5218f8c81cbe77512f6b09fb42d171c Author: Klaus Aehlig <[email protected]> Date: Thu Mar 19 08:51:42 2015 +0100 ...INTERDIFF [PATCH master 06/10] Add a function computing optimal cluster score diff --git a/src/Ganeti/HTools/Cluster.hs b/src/Ganeti/HTools/Cluster.hs index 73a0978..1bebfb1 100644 --- a/src/Ganeti/HTools/Cluster.hs +++ b/src/Ganeti/HTools/Cluster.hs @@ -103,7 +103,7 @@ module Ganeti.HTools.Cluster import Control.Applicative ((<$>), liftA2) import Control.Arrow ((&&&)) -import Control.Monad (unless) +import Control.Monad (unless, guard) import qualified Data.IntSet as IntSet import Data.List import Data.Maybe (fromJust, fromMaybe, isJust, isNothing) @@ -400,11 +400,11 @@ detailedCVInfoExt = [ ((0.5, "free_mem_cv"), (getStdDevStatistics, True)) optimalCVScore :: Node.List -> Double optimalCVScore nodelist = fromMaybe 0 $ do let nodes = Container.elems nodelist - unless (length nodes > 1) Nothing + guard $ length nodes > 1 let nodeMems = map Node.tMem nodes totalMem = sum nodeMems totalMemOneLessNode = totalMem - maximum nodeMems - unless (totalMemOneLessNode > 0) Nothing + guard $ totalMemOneLessNode > 0 let totalDrbdMem = fromIntegral . sum $ map (P.sumElems . Node.peers) nodes optimalUsage = totalDrbdMem / totalMem optimalUsageOneLessNode = totalDrbdMem / totalMemOneLessNode -- Klaus Aehlig Google Germany GmbH, Dienerstr. 12, 80331 Muenchen Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Geschaeftsfuehrer: Graham Law, Christine Elizabeth Flores
