On Wed, Jun 17, 2015 at 01:50:02PM +0200, Petr Pudlak wrote:
> On Wed, Jun 17, 2015 at 12:43:54PM +0200, 'Klaus Aehlig' via ganeti-devel 
> wrote:
> >N+1 redundancy was always a per-group property.
> >Do the same with shared-storage N+1 redundancy, i.e.,
> >restrict the escape candidates to nodes of the same
> >group.
> >
> >Signed-off-by: Klaus Aehlig <[email protected]>
> >---
> >src/Ganeti/HTools/GlobalN1.hs | 8 ++++++--
> >1 file changed, 6 insertions(+), 2 deletions(-)
> >
> >diff --git a/src/Ganeti/HTools/GlobalN1.hs b/src/Ganeti/HTools/GlobalN1.hs
> >index ced324e..bc746e4 100644
> >--- a/src/Ganeti/HTools/GlobalN1.hs
> >+++ b/src/Ganeti/HTools/GlobalN1.hs
> >@@ -77,6 +77,10 @@ canEvacuateNode (nl, il) n = isOk $ do
> >  (nl', il') <- opToResult
> >                . foldM move (nl, il) $ map (flip (,) Failover) drbdIdxs
> >  -- evacuate other instances
> >-  let escapenodes = filter (/= Node.idx n) $ Container.keys nl'
> >-  _ <- foldM (evac (Node.group n) escapenodes) (nl',il') sharedIdxs
> >+  let grp = Node.group n
> >+      escapenodes = filter (/= Node.idx n)
> >+                    . map Node.idx
> >+                    . filter ((== grp) . Node.group)
> >+                    $ Container.elems nl'
> >+  _ <- foldM (evac grp escapenodes) (nl',il') sharedIdxs
> >  return ()
> 
> Just nitpicking - while already changing this part - foldM + return
> () could be replaced by foldM_.

ACK. FYI, interdiff.

commit 9552a1c84032cd2ee813bfe187f0254c439654d6
Author: Klaus Aehlig <[email protected]>
Date:   Wed Jun 17 14:21:48 2015 +0200

    Interdiff

diff --git a/src/Ganeti/HTools/GlobalN1.hs b/src/Ganeti/HTools/GlobalN1.hs
index bc746e4..581d22d 100644
--- a/src/Ganeti/HTools/GlobalN1.hs
+++ b/src/Ganeti/HTools/GlobalN1.hs
@@ -36,7 +36,7 @@ module Ganeti.HTools.GlobalN1
   ( canEvacuateNode
   ) where
 
-import Control.Monad (foldM)
+import Control.Monad (foldM, foldM_)
 import Data.List (partition)
 
 import Ganeti.BasicTypes (isOk, Result)
@@ -82,5 +82,4 @@ canEvacuateNode (nl, il) n = isOk $ do
                     . map Node.idx
                     . filter ((== grp) . Node.group)
                     $ Container.elems nl'
-  _ <- foldM (evac grp escapenodes) (nl',il') sharedIdxs
-  return ()
+  foldM_ (evac grp escapenodes) (nl',il') sharedIdxs



> In either case LGTM, thanks

-- 
Klaus Aehlig
Google Germany GmbH, Dienerstr. 12, 80331 Muenchen
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg
Geschaeftsfuehrer: Graham Law, Christine Elizabeth Flores

Reply via email to