---
 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

Reply via email to