LGTM, thanks

On Thu, 14 Jan 2016 at 18:04 'Klaus Aehlig' via ganeti-devel <
[email protected]> wrote:

>
>
> commit e48ca3f734cfcadc056edb7b6ec7bdc40bed2e7f
> Merge: 216e20b 2cd22ad
> Author: Klaus Aehlig <[email protected]>
> Date:   Thu Jan 14 18:01:17 2016 +0100
>
>     Merge branch 'stable-2.13' into stable-2.14
>
>     * stable-2.13
>       Run ssh-key renewal in debug mode during upgrade
>
>     * stable-2.12
>       Increase minimal sizes of test online nodes
>       Also log the high-level upgrade steps
>       Add function to provide logged user feedback
>       Run renew-crypto in upgrades in debug mode
>       Unconditionally log upgrades at debug level
>       Document healthy-majority restriction on master-failover
>       Check for healthy majority on master failover with voting
>       Add a predicate testing that a majority of nodes is healthy
>       Fix outdated comment
>       Pass arguments to correct daemons during master-failover
>       Fix documentation for master-failover
>
>     * stable-2.11
>       (no changes)
>
>     * stable-2.10
>       KVM: explicitly configure routed NICs late
>
>     Signed-off-by: Klaus Aehlig <[email protected]>
>
> diff --cc lib/client/gnt_cluster.py
> index 27877a7,954ab4b..5c2c576
> --- a/lib/client/gnt_cluster.py
> +++ b/lib/client/gnt_cluster.py
> @@@ -2179,8 -2187,44 +2187,8 @@@ def _VersionSpecificDowngrade()
>
>     @return: True upon success
>     """
> -   ToStdout("Performing version-specific downgrade tasks.")
> +   ToStdoutAndLoginfo("Performing version-specific downgrade tasks.")
>
>  -  # Determine if this cluster is set up with SSH handling
>  -  # (aka not using --no-ssh-init), check if the public
>  -  # keyfile exists.
>  -  update_keys = os.path.exists(pathutils.SSH_PUB_KEYS)
>  -
>  -  if not update_keys:
>  -    return True
>  -
>  -  ToStdout("Replace nodes' SSH keys with the master's keys.")
>  -  (_, root_keyfiles) = \
>  -    ssh.GetAllUserFiles(constants.SSH_LOGIN_USER, mkdir=False,
> dircheck=False)
>  -
>  -  dsa_root_keyfiles = dict((kind, value) for (kind, value)
>  -                           in root_keyfiles.items()
>  -                           if kind == constants.SSHK_DSA)
>  -  master_private_keyfile, master_public_keyfile = \
>  -      dsa_root_keyfiles[constants.SSHK_DSA]
>  -
>  -  nodes = ssconf.SimpleStore().GetOnlineNodeList()
>  -  master_node = ssconf.SimpleStore().GetMasterNode()
>  -  cluster_name = ssconf.SimpleStore().GetClusterName()
>  -
>  -  # If master node is in 'nodes', remove it
>  -  if master_node in nodes:
>  -    nodes.remove(master_node)
>  -
>  -  srun = ssh.SshRunner(cluster_name=cluster_name)
>  -  for name in nodes:
>  -    for key_file in [master_private_keyfile, master_public_keyfile]:
>  -      command = utils.text.ShellQuoteArgs([
>  -          "scp", key_file, "%s:%s" % (name, key_file)])
>  -      result = srun.Run(master_node, constants.SSH_LOGIN_USER, command)
>  -      if result.exit_code != 0:
>  -        ToStderr("Overiding SSH key '%s' of node '%s' failed. You might"
>  -                 " want to clean up manually." % (key_file, name))
>  -
>     return True
>
>
> diff --cc test/hs/Test/Ganeti/HTools/Node.hs
> index b930a43,d782fe2..e7f46e2
> --- a/test/hs/Test/Ganeti/HTools/Node.hs
> +++ b/test/hs/Test/Ganeti/HTools/Node.hs
> @@@ -114,33 -113,11 +114,33 @@@ genOnlineNode :: Gen Node.Nod
>   genOnlineNode =
>     arbitrary `suchThat` (\n -> not (Node.offline n) &&
>                                 not (Node.failN1 n) &&
> -                               Node.availDisk n > 0 &&
> -                               Node.availMem n > 0 &&
> -                               Node.availCpu n > 0 &&
> -                               Node.tSpindles n > 0)
> +                               Node.availDisk n > 2 * Types.unitDsk &&
> +                               Node.availMem n > 2 * Types.unitMem &&
> +                               Node.availCpu n > 2 &&
> +                               Node.tSpindles n > 2)
>
>  +-- | Helper function to generate a sane empty node with consistent
>  +-- internal data.
>  +genEmptyOnlineNode :: Gen Node.Node
>  +genEmptyOnlineNode =
>  +  (do node <- arbitrary
>  +      let fmem = truncate (Node.tMem node) - Node.nMem node
>  +      let node' = node { Node.offline = False
>  +                       , Node.fMem = fmem
>  +                       , Node.fMemForth = fmem
>  +                       , Node.pMem = fromIntegral fmem / Node.tMem node
>  +                       , Node.pMemForth = fromIntegral fmem / Node.tMem
> node
>  +                       , Node.rMem = 0
>  +                       , Node.rMemForth = 0
>  +                       , Node.pRem = 0
>  +                       , Node.pRemForth = 0
>  +                       }
>  +      return node') `suchThat` (\ n -> not (Node.failN1 n) &&
>  +                                       Node.availDisk n > 0 &&
>  +                                       Node.availMem n > 0 &&
>  +                                       Node.availCpu n > 0 &&
>  +                                       Node.tSpindles n > 0)
>  +
>   -- | Generate a node with exclusive storage enabled.
>   genExclStorNode :: Gen Node.Node
>   genExclStorNode = do
>
> --
> Klaus Aehlig
> Google Germany GmbH, Dienerstr. 12, 80331 Muenchen
> Registergericht und -nummer: Hamburg, HRB 86891
> Sitz der Gesellschaft: Hamburg
> Geschaeftsfuehrer: Matthew Scott Sucherman, Paul Terence Manicle
>
-- 

Helga Velroyen
Software Engineer
[email protected]

Google Germany GmbH
Erika-Mann-Strasse 33
80636 München

Geschäftsführer: Matthew Scott Sucherman, Paul Terence Manicle
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg

Diese E-Mail ist vertraulich. Wenn Sie nicht der richtige Adressat sind,
leiten Sie diese bitte nicht weiter, informieren Sie den Absender und
löschen Sie die E-Mail und alle Anhänge. Vielen Dank.

This e-mail is confidential. If you are not the right addressee please do
not forward it, please inform the sender, and please erase this e-mail
including any attachments. Thanks.

Reply via email to