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

Serge Hallyn serge.hallyn at ubuntu.com
Tue Jun 3 15:28:42 UTC 2014


Quoting Stéphane Graber (stgraber at ubuntu.com):
> On Tue, Jun 03, 2014 at 03:11:02PM +0000, Serge Hallyn wrote:
> > 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?
> 
> The binding is meant to follow the C API and in the C API we don't have
> the special string, so that's why I did it that way.
> 
> While it may be reasonable for shell users to try and guess parameters,
> I'd expect API users to actually read the function help before using it,
> so I think that's fine.

Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>

> > > 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
> > _______________________________________________
> > lxc-devel mailing list
> > lxc-devel at lists.linuxcontainers.org
> > http://lists.linuxcontainers.org/listinfo/lxc-devel
> 
> -- 
> Stéphane Graber
> Ubuntu developer
> http://www.ubuntu.com



> _______________________________________________
> 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