Signed-off-by: Stéphane Graber <stgra...@ubuntu.com> --- src/python-lxc/lxc.c | 14 +++++++++----- src/python-lxc/lxc/__init__.py | 23 +++++++++++++++-------- 2 files changed, 24 insertions(+), 13 deletions(-)
diff --git a/src/python-lxc/lxc.c b/src/python-lxc/lxc.c index e9a3455..050f6ae 100644 --- a/src/python-lxc/lxc.c +++ b/src/python-lxc/lxc.c @@ -694,13 +694,14 @@ static PyObject * Container_create(Container *self, PyObject *args, PyObject *kwds) { char* template_name = NULL; + int flags = 0; char** create_args = {NULL}; PyObject *retval = NULL, *vargs = NULL; int i = 0; - static char *kwlist[] = {"template", "args", NULL}; + static char *kwlist[] = {"template", "flags", "args", NULL}; - if (! PyArg_ParseTupleAndKeywords(args, kwds, "s|O", kwlist, - &template_name, &vargs)) + if (! PyArg_ParseTupleAndKeywords(args, kwds, "s|iO", kwlist, + &template_name, &flags, &vargs)) return NULL; if (vargs) { @@ -716,8 +717,8 @@ Container_create(Container *self, PyObject *args, PyObject *kwds) } } - if (self->container->create(self->container, template_name, NULL, NULL, 0, - create_args)) + if (self->container->create(self->container, template_name, NULL, NULL, + flags, create_args)) retval = Py_True; else retval = Py_False; @@ -1536,6 +1537,9 @@ PyInit__lxc(void) PYLXC_EXPORT_CONST(LXC_CLONE_KEEPNAME); PYLXC_EXPORT_CONST(LXC_CLONE_SNAPSHOT); + /* create: create flags */ + PYLXC_EXPORT_CONST(LXC_CREATE_QUIET); + #undef PYLXC_EXPORT_CONST return m; diff --git a/src/python-lxc/lxc/__init__.py b/src/python-lxc/lxc/__init__.py index b900c75..52f0fb4 100644 --- a/src/python-lxc/lxc/__init__.py +++ b/src/python-lxc/lxc/__init__.py @@ -229,22 +229,29 @@ class Container(_lxc.Container): return _lxc.Container.set_config_item(self, key, value) - def create(self, template, args={}): + def create(self, template, flags=0, args=()): """ Create a new rootfs for the container. "template" must be a valid template name. - "args" (optional) is a dictionary of parameters and values to pass - to the template. + "flags" (optional) is an integer representing the optional + create flags to be passed. + + "args" (optional) is a tuple of arguments to pass to the + template. It can also be provided as a dict. """ - template_args = [] - for item in args.items(): - template_args.append("--%s" % item[0]) - template_args.append("%s" % item[1]) + if isinstance(args, dict): + template_args = [] + for item in args.items(): + template_args.append("--%s" % item[0]) + template_args.append("%s" % item[1]) + else: + template_args = args - return _lxc.Container.create(self, template, tuple(template_args)) + return _lxc.Container.create(self, template=template, + flags=flags, args=tuple(template_args)) def clone(self, newname, config_path=None, flags=0, bdevtype=None, bdevdata=None, newsize=0, hookargs=()): -- 1.8.4.4 ------------------------------------------------------------------------------ Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk _______________________________________________ Lxc-devel mailing list Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel