Revision f9e7e331 src/Ganeti/HTools/Cluster.hs

b/src/Ganeti/HTools/Cluster.hs
76 76
  , splitCluster
77 77
  ) where
78 78

  
79
import Control.Applicative (liftA2)
79 80
import qualified Data.IntSet as IntSet
80 81
import Data.List
81 82
import Data.Maybe (fromJust, fromMaybe, isJust, isNothing)
......
1283 1284
-- allocation.
1284 1285
sufficesShrinking :: (Instance.Instance -> AllocSolution) -> Instance.Instance
1285 1286
                     -> FailMode  -> Bool
1286
sufficesShrinking allocFn inst fm = any isJust . map (asSolution . allocFn) $
1287
                                    iterateOk (`Instance.shrinkByType` fm) inst
1287
sufficesShrinking allocFn inst fm =
1288
  any isJust 
1289
  . map asSolution 
1290
  . takeWhile (liftA2 (||) (elem fm . asFailures) (isJust . asSolution))
1291
  . map allocFn $
1292
  iterateOk (`Instance.shrinkByType` fm) inst
1288 1293

  
1289 1294
-- | Tiered allocation method.
1290 1295
--

Also available in: Unified diff