Revision 73d12eab

b/htools/Ganeti/HTools/Cluster.hs
597 597
tryBalance ini_tbl disk_moves inst_moves evac_mode mg_limit min_gain =
598 598
    let Table ini_nl ini_il ini_cv _ = ini_tbl
599 599
        all_inst = Container.elems ini_il
600
        all_nodes = Container.elems ini_nl
601
        (offline_nodes, online_nodes) = partition Node.offline all_nodes
600 602
        all_inst' = if evac_mode
601
                    then let bad_nodes = map Node.idx . filter Node.offline $
602
                                         Container.elems ini_nl
603
                         in filter (any (`elem` bad_nodes) . Instance.allNodes)
604
                            all_inst
605
                    else all_inst
603
                      then let bad_nodes = map Node.idx offline_nodes
604
                           in filter (any (`elem` bad_nodes) .
605
                                          Instance.allNodes) all_inst
606
                      else all_inst
606 607
        reloc_inst = filter Instance.movable all_inst'
607
        node_idx = map Node.idx . filter (not . Node.offline) $
608
                   Container.elems ini_nl
608
        node_idx = map Node.idx online_nodes
609 609
        fin_tbl = checkMove node_idx disk_moves inst_moves ini_tbl reloc_inst
610 610
        (Table _ _ fin_cv _) = fin_tbl
611 611
    in

Also available in: Unified diff