]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
add bdevtype to lxc create procedure 464/head
authorBieiaievskyi Sergey <s.bieliaievskyi@sethq.com>
Tue, 10 Mar 2015 08:56:59 +0000 (10:56 +0200)
committerBieiaievskyi Sergey <s.bieliaievskyi@sethq.com>
Tue, 10 Mar 2015 09:14:01 +0000 (11:14 +0200)
Signed-off-by: Bieliaievskyi Sergey magelan09@gmail.com
src/python-lxc/lxc.c
src/python-lxc/lxc/__init__.py

index a552d81d24cb1c6f29a1c742230959cf13ab8681..d349287d52fcd5bf3ac9bed135e2709501e42758 100644 (file)
@@ -801,11 +801,11 @@ Container_create(Container *self, PyObject *args, PyObject *kwds)
     char** create_args = {NULL};
     PyObject *retval = NULL;
     PyObject *vargs = NULL;
+    char *bdevtype = NULL;
     int i = 0;
-    static char *kwlist[] = {"template", "flags", "args", NULL};
-
-    if (! PyArg_ParseTupleAndKeywords(args, kwds, "|siO", kwlist,
-                                      &template_name, &flags, &vargs))
+    static char *kwlist[] = {"template", "flags", "bdevtype", "args", NULL};
+    if (! PyArg_ParseTupleAndKeywords(args, kwds, "|sisO", kwlist,
+                                      &template_name, &flags, &bdevtype, &vargs))
         return NULL;
 
     if (vargs) {
@@ -821,7 +821,7 @@ Container_create(Container *self, PyObject *args, PyObject *kwds)
         }
     }
 
-    if (self->container->create(self->container, template_name, NULL, NULL,
+    if (self->container->create(self->container, template_name, bdevtype, NULL,
                                 flags, create_args))
         retval = Py_True;
     else
index d7b0670dd99e61f0c8cb66e6894704c0a4e6a27b..30ebd1bd278d041545ebb175f7f9e03268b49a52 100644 (file)
@@ -205,7 +205,7 @@ class Container(_lxc.Container):
 
         return _lxc.Container.set_config_item(self, key, value)
 
-    def create(self, template=None, flags=0, args=()):
+    def create(self, template=None, flags=0, args=(), bdevtype=None):
         """
             Create a new rootfs for the container.
 
@@ -217,22 +217,19 @@ class Container(_lxc.Container):
             "args" (optional) is a tuple of arguments to pass to the
             template. It can also be provided as a dict.
         """
-
         if isinstance(args, dict):
-            template_args = []
+            tmp_args = []
             for item in args.items():
-                template_args.append("--%s" % item[0])
-                template_args.append("%s" % item[1])
-        else:
-            template_args = args
-
+                tmp_args.append("--%s" % item[0])
+                tmp_args.append("%s" % item[1])
+        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))
+           template_args['template'] = template
+        template_args['flags'] = flags
+        template_args['args'] = tuple(tmp_args)
+        if bdevtype:
+            template_args['bdevtype'] = bdevtype
+        return _lxc.Container.create(self, **template_args)
 
     def clone(self, newname, config_path=None, flags=0, bdevtype=None,
               bdevdata=None, newsize=0, hookargs=()):