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
