diff --git a/src/Cluster.hs b/src/Cluster.hs index be811db1ed8632debbd18ed73e7bd074a2fd107e..1cf51534865c79e5e774d233029b76957b8cd721 100644 --- a/src/Cluster.hs +++ b/src/Cluster.hs @@ -397,20 +397,13 @@ checkInstanceMove nodes_idx ini_tbl target = let opdx = Instance.pnode target osdx = Instance.snode target - nodes = filter (\idx -> idx /= opdx && idx /= osdx) - nodes_idx + nodes = filter (\idx -> idx /= opdx && idx /= osdx) nodes_idx aft_failover = checkSingleStep ini_tbl target ini_tbl Failover + all_moves = concatMap (\idx -> [ReplacePrimary idx, + ReplaceSecondary idx]) nodes in -- iterate over the possible nodes for this instance - foldl' - (\ accu_p new_idx -> - let - pmoves = [ReplacePrimary new_idx, - ReplaceSecondary new_idx] - in - foldl' -- while doing both possible moves - (checkSingleStep ini_tbl target) accu_p pmoves - ) aft_failover nodes + foldl' (checkSingleStep ini_tbl target) aft_failover all_moves -- | Compute the best next move. checkMove :: [Int] -- ^ Allowed target node indices