LGTM, thanks

On Fri, Jul 12, 2013 at 2:26 PM, Michele Tartara <[email protected]>wrote:

> The modify_etc_hosts options, enabling the cluster to modify the /etc/hosts
> files of nodes, and to keep them in sync, could only be set at cluster init
> time.
>
> With this commit it can now be changed through modify_etc_hosts as well.
>
> Fixes Issue 206.
>
> Signed-off-by: Michele Tartara <[email protected]>
> ---
>  lib/client/gnt_cluster.py      |    6 ++++--
>  lib/cmdlib/cluster.py          |    3 +++
>  lib/opcodes.py                 |    2 ++
>  src/Ganeti/OpCodes.hs          |    1 +
>  src/Ganeti/OpParams.hs         |    5 +++++
>  test/hs/Test/Ganeti/OpCodes.hs |    2 +-
>  6 files changed, 16 insertions(+), 3 deletions(-)
>
> diff --git a/lib/client/gnt_cluster.py b/lib/client/gnt_cluster.py
> index 287ae31..a6d3d01 100644
> --- a/lib/client/gnt_cluster.py
> +++ b/lib/client/gnt_cluster.py
> @@ -974,7 +974,8 @@ def SetClusterParams(opts, args):
>            opts.ipolicy_std_specs is not None or
>            opts.ipolicy_disk_templates is not None or
>            opts.ipolicy_vcpu_ratio is not None or
> -          opts.ipolicy_spindle_ratio is not None):
> +          opts.ipolicy_spindle_ratio is not None or
> +          opts.modify_etc_hosts is not None):
>      ToStderr("Please give at least one of the parameters.")
>      return 1
>
> @@ -1079,6 +1080,7 @@ def SetClusterParams(opts, args):
>      ipolicy=ipolicy,
>      candidate_pool_size=opts.candidate_pool_size,
>      maintain_node_health=mnh,
> +    modify_etc_hosts=opts.modify_etc_hosts,
>      uid_pool=uid_pool,
>      add_uids=add_uids,
>      remove_uids=remove_uids,
> @@ -1597,7 +1599,7 @@ commands = {
>       RESERVED_LVS_OPT, DRY_RUN_OPT, PRIORITY_OPT, PREALLOC_WIPE_DISKS_OPT,
>       NODE_PARAMS_OPT, USE_EXTERNAL_MIP_SCRIPT, DISK_PARAMS_OPT,
> HV_STATE_OPT,
>       DISK_STATE_OPT, SUBMIT_OPT, ENABLED_DISK_TEMPLATES_OPT,
> -     IPOLICY_STD_SPECS_OPT] + INSTANCE_POLICY_OPTS,
> +     IPOLICY_STD_SPECS_OPT, MODIFY_ETCHOSTS_OPT] + INSTANCE_POLICY_OPTS,
>      "[opts...]",
>      "Alters the parameters of the cluster"),
>    "renew-crypto": (
> diff --git a/lib/cmdlib/cluster.py b/lib/cmdlib/cluster.py
> index d3e26bd..c520530 100644
> --- a/lib/cmdlib/cluster.py
> +++ b/lib/cmdlib/cluster.py
> @@ -971,6 +971,9 @@ class LUClusterSetParams(LogicalUnit):
>                      " maintenance is not useful (still enabling it)")
>        self.cluster.maintain_node_health = self.op.maintain_node_health
>
> +    if self.op.modify_etc_hosts is not None:
> +      self.cluster.modify_etc_hosts = self.op.modify_etc_hosts
> +
>      if self.op.prealloc_wipe_disks is not None:
>        self.cluster.prealloc_wipe_disks = self.op.prealloc_wipe_disks
>
> diff --git a/lib/opcodes.py b/lib/opcodes.py
> index 9cc8028..113f9b0 100644
> --- a/lib/opcodes.py
> +++ b/lib/opcodes.py
> @@ -979,6 +979,8 @@ class OpClusterSetParams(OpCode):
>       ht.TMaybe(ht.TAnd(ht.TListOf(ht.TElemOf(constants.DISK_TEMPLATES)),
>                         ht.TTrue)),
>       "List of enabled disk templates"),
> +    ("modify_etc_hosts", None, ht.TMaybeBool,
> +     "Whether the cluster can modify and keep in sync the /etc/hosts
> files"),
>      ]
>    OP_RESULT = ht.TNone
>
> diff --git a/src/Ganeti/OpCodes.hs b/src/Ganeti/OpCodes.hs
> index 92f5644..c31465b 100644
> --- a/src/Ganeti/OpCodes.hs
> +++ b/src/Ganeti/OpCodes.hs
> @@ -177,6 +177,7 @@ $(genOpCode "OpCode"
>       , pBlacklistedOs
>       , pUseExternalMipScript
>       , pEnabledDiskTemplates
> +     , pModifyEtcHosts
>       ])
>    , ("OpClusterRedistConf", [])
>    , ("OpClusterActivateMasterIp", [])
> diff --git a/src/Ganeti/OpParams.hs b/src/Ganeti/OpParams.hs
> index e445aa9..a1e445c 100644
> --- a/src/Ganeti/OpParams.hs
> +++ b/src/Ganeti/OpParams.hs
> @@ -116,6 +116,7 @@ module Ganeti.OpParams
>    , pAddUids
>    , pRemoveUids
>    , pMaintainNodeHealth
> +  , pModifyEtcHosts
>    , pPreallocWipeDisks
>    , pNicParams
>    , pInstNics
> @@ -865,6 +866,10 @@ pRemoveUids = optionalField $ simpleField
> "remove_uids" [t| [[(Int, Int)]] |]
>  pMaintainNodeHealth :: Field
>  pMaintainNodeHealth = optionalField $ booleanField "maintain_node_health"
>
> +-- | Whether to modify and keep in sync the @/etc/hosts@ files of nodes.
> +pModifyEtcHosts :: Field
> +pModifyEtcHosts = optionalField $ booleanField "modify_etc_hosts"
> +
>  -- | Whether to wipe disks before allocating them to instances.
>  pPreallocWipeDisks :: Field
>  pPreallocWipeDisks = optionalField $ booleanField "prealloc_wipe_disks"
> diff --git a/test/hs/Test/Ganeti/OpCodes.hs
> b/test/hs/Test/Ganeti/OpCodes.hs
> index eb539a6..2968173 100644
> --- a/test/hs/Test/Ganeti/OpCodes.hs
> +++ b/test/hs/Test/Ganeti/OpCodes.hs
> @@ -161,7 +161,7 @@ instance Arbitrary OpCodes.OpCode where
>            arbitrary <*> arbitrary <*> arbitrary <*>
>            emptyMUD <*> emptyMUD <*> arbitrary <*>
>            arbitrary <*> arbitrary <*> arbitrary <*> arbitrary <*>
> -          arbitrary <*> arbitrary <*> arbitrary <*> arbitrary
> +          arbitrary <*> arbitrary <*> arbitrary <*> arbitrary <*>
> arbitrary
>        "OP_CLUSTER_REDIST_CONF" -> pure OpCodes.OpClusterRedistConf
>        "OP_CLUSTER_ACTIVATE_MASTER_IP" ->
>          pure OpCodes.OpClusterActivateMasterIp
> --
> 1.7.10.4
>
>

Reply via email to