--- htools/Ganeti/HTools/Cluster.hs | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/htools/Ganeti/HTools/Cluster.hs b/htools/Ganeti/HTools/Cluster.hs index 835287b..1f868f5 100644 --- a/htools/Ganeti/HTools/Cluster.hs +++ b/htools/Ganeti/HTools/Cluster.hs @@ -396,15 +396,15 @@ applyMove nl inst Failover = in new_nl -- Failover to any (fa) -applyMove nl inst (FailoverToAny new_pdx) = - let (old_pdx, old_sdx, old_p, _) = instanceNodes nl inst - tgt_n = Container.find new_pdx nl - !new_nl = do -- Maybe monad - new_p <- Node.addPriEx (Node.offline old_p) tgt_n inst - let new_inst = Instance.setPri inst new_pdx - return (Container.addTwo old_pdx (Node.removePri old_p inst) - new_pdx new_p nl, new_inst, new_pdx, old_sdx) - in new_nl +applyMove nl inst (FailoverToAny new_pdx) = do + let (old_pdx, old_sdx, old_pnode, _) = instanceNodes nl inst + new_pnode = Container.find new_pdx nl + force_failover = Node.offline old_pnode + new_pnode' <- Node.addPriEx force_failover new_pnode inst + let old_pnode' = Node.removePri old_pnode inst + inst' = Instance.setPri inst new_pdx + nl' = Container.addTwo old_pdx old_pnode' new_pdx new_pnode' nl + return (nl', inst', new_pdx, old_sdx) -- Replace the primary (f:, r:np, f) applyMove nl inst (ReplacePrimary new_pdx) = -- 1.7.9.1
