[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