LGTM, thanks On Wed, Jun 17, 2015 at 5:01 PM, 'Klaus Aehlig' via ganeti-devel < [email protected]> wrote:
> > > commit 38df9f780c9f1a8c9cfb9b62670f18c311b05e57 > Merge: 29db783 080ebc7 > Author: Klaus Aehlig <[email protected]> > Date: Wed Jun 17 16:55:11 2015 +0200 > > Merge branch 'stable-2.15' into master > > * stable-2.15 > Restrict evacuation to a group > Staying is not an option in evacuation > Set release date of 2.15.0 rc1 to tomorrow > Bump revision number to 2.15.0 rc1 > Adapt NEWS file for 2.15.0 rc1 > Set up Transport properly when communicating with metad > Allow the Transport class to be used for non-master nodes > > * stable-2.14 > Make htools tolerate missing "dtotal" and "dfree" on luxi > > * stable-2.13 > Mention migration change in NEWS > Move misplaced NEWS entry > Add protection against daemons that may already be listening > Attempt to cleanup failed migrations using a pidfile > Add utility that gets the full command line of a process > Introduce socat as a way of doing xl migrations > fix typo in UPGRADE notes > During start, only update job file locally > > * stable-2.12 > Fix tests for setting (shared) file storage directory > Add missing call for setting shared file storage directory > Update ganeti-luxid synopsis > Update ganeti-mond synopsis > Update ganeti-confd synopsis > Update copyright statement > > Conflicts: > NEWS: take all additions > configure.ac: ignore suffix bump > src/Ganeti/HTools/GlobalN1.hs: trivial > > Signed-off-by: Klaus Aehlig <[email protected]> > > diff --cc NEWS > index 12cf2d7,83f20a3..b16e375 > --- a/NEWS > +++ b/NEWS > @@@ -2,28 -2,19 +2,41 @@@ New > ==== > > > +Version 2.16.0 > +-------------- > + > +*(unreleased)* > + > +Incompatible/important changes > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > + > +- The IAllocator protocol has been extended by a new > ``allocate-secondary`` > + request type. Currently, this new request type is only used when in > disk > + conversion to DRBD no secondary node is specified. As long as this new > + feature is not used, a third-party IAllocator not aware of this > extension can > + be continued to be used. > + > +New dependencies > +~~~~~~~~~~~~~~~~ > + > +- Using the metadata daemon now requires the presence of the 'setcap' > utility. > + On Debian-based systems, it is available as a part of the 'libcap2-bin' > + package. > + > + > + Version 2.15.0 rc1 > + ------------------ > + > + *(Released Wed, 17 Jun 2015)* > + > + Known issues: > + ~~~~~~~~~~~~~ > + > + - Issue 1094: differences in encodings in SSL certificates due to > + different OpenSSL versions can result in rendering a cluster > + uncommunicative after a master-failover. > + > + > Version 2.15.0 beta1 > -------------------- > > diff --cc src/Ganeti/HTools/GlobalN1.hs > index bde0c03,581d22d..50e5fb9 > --- a/src/Ganeti/HTools/GlobalN1.hs > +++ b/src/Ganeti/HTools/GlobalN1.hs > @@@ -34,12 -34,9 +34,12 @@@ SOFTWARE, EVEN IF ADVISED OF THE POSSIB > > module Ganeti.HTools.GlobalN1 > ( canEvacuateNode > + , allocGlobalN1 > ) where > > - import Control.Monad (foldM) > + import Control.Monad (foldM, foldM_) > +import qualified Data.IntMap as IntMap > +import qualified Data.Foldable as Foldable > import Data.List (partition) > > import Ganeti.BasicTypes (isOk, Result) > @@@ -81,18 -77,9 +81,19 @@@ canEvacuateNode (nl, il) n = isOk $ d > (nl', il') <- opToResult > . foldM move (nl, il) $ map (flip (,) Failover) drbdIdxs > -- evacuate other instances > - let n' = Node.setOffline n True > - nl'' = Container.add (Node.idx n') n' nl' > - _ <- foldM (evac (Node.group n') . map Node.idx $ IntMap.elems nl'') > - (nl'',il') sharedIdxs > - return () > + 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 > + > +-- | Predicate on wheter an allocation element leads to a globally N+1 > redundant > +-- state. > +allocGlobalN1 :: Node.List -- ^ the original list of nodes > + -> Instance.List -- ^ the original list of instances > + -> AllocSol.GenericAllocElement a -> Bool > +allocGlobalN1 nl il alloc = > + let il' = AllocSol.updateIl il $ Just alloc > + nl' = AllocSol.extractNl nl il $ Just alloc > + in Foldable.all (canEvacuateNode (nl', il')) nl' > > -- > 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 > Hrvoje Ribicic Ganeti Engineering Google Germany GmbH Dienerstr. 12, 80331, München Geschäftsführer: Graham Law, Christine Elizabeth Flores Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg
