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

Reply via email to