Revision a7e1fd89 htools/Ganeti/HTools/Loader.hs

b/htools/Ganeti/HTools/Loader.hs
55 55
import qualified Ganeti.HTools.Instance as Instance
56 56
import qualified Ganeti.HTools.Node as Node
57 57
import qualified Ganeti.HTools.Group as Group
58
import qualified Ganeti.HTools.Cluster as Cluster
58 59

  
59 60
import Ganeti.HTools.Types
60 61
import Ganeti.HTools.Utils
......
246 247
    then Instance.setMovable inst False
247 248
    else inst
248 249

  
250
-- | Disables moves for instances with a split group.
251
disableSplitMoves :: Node.List -> Instance.Instance -> Instance.Instance
252
disableSplitMoves nl inst =
253
  if not . isOk . Cluster.instanceGroup nl $ inst
254
    then Instance.setMovable inst False
255
    else inst
256

  
249 257
-- | Compute the longest common suffix of a list of strings that
250 258
-- starts with a dot.
251 259
longestDomain :: [String] -> String
......
302 310
      nl3 = Container.map (setNodePolicy gl .
303 311
                           computeAlias common_suffix .
304 312
                           (`Node.buildPeers` il4)) nl2
313
      il5 = Container.map (disableSplitMoves nl3) il4
305 314
  in if' (null lkp_unknown)
306
         (Ok cdata { cdNodes = nl3, cdInstances = il4 })
315
         (Ok cdata { cdNodes = nl3, cdInstances = il5 })
307 316
         (Bad $ "Unknown instance(s): " ++ show(map lrContent lkp_unknown))
308 317

  
309 318
-- | Checks the cluster data for consistency.

Also available in: Unified diff