Make global N+1 checks honor algCapacityIgnoreGroups
authorKlaus Aehlig <aehlig@google.com>
Tue, 22 Sep 2015 14:25:01 +0000 (16:25 +0200)
committerKlaus Aehlig <aehlig@google.com>
Fri, 25 Sep 2015 08:04:52 +0000 (10:04 +0200)
For redundancy checks, ignore all nodes belonging to a group
marked as to be ignored. Do this ignoring in addition to already
existing node filtering.

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

src/Ganeti/HTools/GlobalN1.hs

index 1ce0344..b88769d 100644 (file)
@@ -118,7 +118,10 @@ redundant opts nl il =
   let filterFun = if algAcceptExisting opts
                     then Container.filter (not . Node.offline)
                     else id
-  in Foldable.all (canEvacuateNode (nl, il)) $ filterFun nl
+  in Foldable.all (canEvacuateNode (nl, il))
+       . Container.filter (not . (`elem` algCapacityIgnoreGroups opts)
+                               . Node.group)
+       $ filterFun nl
 
 -- | Predicate on wheter an allocation element leads to a globally N+1 redundant
 -- state.