[lxc-devel] [PATCH] python3: Allow passing create flags

Serge Hallyn serge.hallyn at ubuntu.com
Thu Nov 28 03:10:54 UTC 2013


Quoting Stéphane Graber (stgraber at ubuntu.com):
> Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>

Acked-by: Serge E. Hallyn <serge.hallyn at 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 at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lxc-devel




More information about the lxc-devel mailing list