[lxc-devel] [PATCH 1/2] python3: Don't require a template name

Serge Hallyn serge.hallyn at ubuntu.com
Tue Jun 3 15:11:02 UTC 2014


Quoting Stéphane Graber (stgraber at ubuntu.com):
> The template name isn't required, if it's not passed, then create will
> simply be asked to create a container without a rootfs.

With the command line lxc-create, we decided that this was too dangerous
and too easy for ppl to do wrong, so we required 'none' for this case.

Do you feel that API users are different and won't just start typeing
'create()' and get confused?

> Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
> ---
>  src/python-lxc/lxc.c           |  2 +-
>  src/python-lxc/lxc/__init__.py | 13 +++++++++----
>  2 files changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/src/python-lxc/lxc.c b/src/python-lxc/lxc.c
> index f7ab092..d436c28 100644
> --- a/src/python-lxc/lxc.c
> +++ b/src/python-lxc/lxc.c
> @@ -733,7 +733,7 @@ Container_create(Container *self, PyObject *args, PyObject *kwds)
>      int i = 0;
>      static char *kwlist[] = {"template", "flags", "args", NULL};
>  
> -    if (! PyArg_ParseTupleAndKeywords(args, kwds, "s|iO", kwlist,
> +    if (! PyArg_ParseTupleAndKeywords(args, kwds, "|siO", kwlist,
>                                        &template_name, &flags, &vargs))
>          return NULL;
>  
> diff --git a/src/python-lxc/lxc/__init__.py b/src/python-lxc/lxc/__init__.py
> index 45d139d..47b25b8 100644
> --- a/src/python-lxc/lxc/__init__.py
> +++ b/src/python-lxc/lxc/__init__.py
> @@ -201,11 +201,11 @@ class Container(_lxc.Container):
>  
>          return _lxc.Container.set_config_item(self, key, value)
>  
> -    def create(self, template, flags=0, args=()):
> +    def create(self, template=None, flags=0, args=()):
>          """
>              Create a new rootfs for the container.
>  
> -            "template" must be a valid template name.
> +            "template" if passed must be a valid template name.
>  
>              "flags" (optional) is an integer representing the optional
>              create flags to be passed.
> @@ -222,8 +222,13 @@ class Container(_lxc.Container):
>          else:
>              template_args = args
>  
> -        return _lxc.Container.create(self, template=template,
> -                                     flags=flags, args=tuple(template_args))
> +        if template:
> +            return _lxc.Container.create(self, template=template,
> +                                         flags=flags,
> +                                         args=tuple(template_args))
> +        else:
> +            return _lxc.Container.create(self, flags=flags,
> +                                         args=tuple(template_args))
>  
>      def clone(self, newname, config_path=None, flags=0, bdevtype=None,
>                bdevdata=None, newsize=0, hookargs=()):
> -- 
> 1.9.1
> 
> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel


More information about the lxc-devel mailing list