> 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

Reply via email to