On Tue, Jun 7, 2011 at 2:26 PM, Michael Hanselmann <[email protected]> wrote:
> Commit 720f56c85a added the ability to specify tags when creating an
> instance. The “tags” attribute of an instance object needs to be a set,
> but the patch's code saved it as a list, causing breakage in other parts
> of Ganeti. This patch changes the code to use TaggableObject.AddTag,
> which has a nice side-effect of doing some verification (including max.
> number of tags). Instance import was also broken (no “tags” attribute in
> options).
>
> Signed-off-by: Michael Hanselmann <[email protected]>
> ---
>  lib/cli.py                 |    3 ++-
>  lib/client/gnt_instance.py |    1 -
>  lib/cmdlib.py              |    5 ++++-
>  3 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/lib/cli.py b/lib/cli.py
> index 7946072..1db36ec 100644
> --- a/lib/cli.py
> +++ b/lib/cli.py
> @@ -1233,6 +1233,7 @@ COMMON_CREATE_OPTS = [
>   OSPARAMS_OPT,
>   OS_SIZE_OPT,
>   SUBMIT_OPT,
> +  TAG_ADD_OPT,
>   DRY_RUN_OPT,
>   PRIORITY_OPT,
>   ]
> @@ -2119,7 +2120,7 @@ def GenericInstanceCreate(mode, opts, args):
>       disks[didx] = ddict
>
>   if opts.tags is not None:
> -    tags = opts.tags.split(',')
> +    tags = opts.tags.split(",")
>   else:
>     tags = []
>
> diff --git a/lib/client/gnt_instance.py b/lib/client/gnt_instance.py
> index 58903b7..1d6faa4 100644
> --- a/lib/client/gnt_instance.py
> +++ b/lib/client/gnt_instance.py
> @@ -1357,7 +1357,6 @@ add_opts = [
>   OS_OPT,
>   FORCE_VARIANT_OPT,
>   NO_INSTALL_OPT,
> -  TAG_ADD_OPT,
>   ]
>
>  commands = {
> diff --git a/lib/cmdlib.py b/lib/cmdlib.py
> index c7d535e..221a7a6 100644
> --- a/lib/cmdlib.py
> +++ b/lib/cmdlib.py
> @@ -8594,9 +8594,12 @@ class LUInstanceCreate(LogicalUnit):
>                             hvparams=self.op.hvparams,
>                             hypervisor=self.op.hypervisor,
>                             osparams=self.op.osparams,
> -                            tags=self.op.tags,
>                             )
>
> +    if self.op.tags:
> +      for tag in self.op.tags:
> +        iobj.AddTag(tag)
> +
>     if self.adopt_disks:
>       if self.op.disk_template == constants.DT_PLAIN:
>         # rename LVs to the newly-generated names; we need to construct
> --
> 1.7.3.5

LGTM

René

Reply via email to