[lxc-devel] [PATCH] python3: binding update
Serge Hallyn
serge.hallyn at ubuntu.com
Thu Jan 16 19:09:58 UTC 2014
Quoting Stéphane Graber (stgraber at ubuntu.com):
> This adds rename(new_name) to the binding as well as two new const,
> LXC_CLONE_KEEPBDEVTYPE and LXC_CLONE_MAYBE_SNAPSHOT.
>
> Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
> ---
> src/python-lxc/lxc.c | 25 +++++++++++++++++++++++++
> src/python-lxc/lxc/__init__.py | 14 ++++++++++++++
> 2 files changed, 39 insertions(+)
>
> diff --git a/src/python-lxc/lxc.c b/src/python-lxc/lxc.c
> index 4381ab8..33b3e41 100644
> --- a/src/python-lxc/lxc.c
> +++ b/src/python-lxc/lxc.c
> @@ -1038,6 +1038,23 @@ Container_reboot(Container *self, PyObject *args, PyObject *kwds)
> }
>
> static PyObject *
> +Container_rename(Container *self, PyObject *args, PyObject *kwds)
> +{
> + char *new_name = NULL;
> + static char *kwlist[] = {"new_name", NULL};
> +
> + if (! PyArg_ParseTupleAndKeywords(args, kwds, "s|", kwlist,
> + &new_name))
> + return NULL;
> +
> + if (self->container->rename(self->container, new_name)) {
> + Py_RETURN_TRUE;
> + }
> +
> + Py_RETURN_FALSE;
> +}
> +
> +static PyObject *
> Container_remove_device_node(Container *self, PyObject *args, PyObject *kwds)
> {
> static char *kwlist[] = {"src_path", "dest_path", NULL};
> @@ -1529,6 +1546,12 @@ static PyMethodDef Container_methods[] = {
> "\n"
> "Ask the container to reboot."
> },
> + {"rename", (PyCFunction)Container_rename,
> + METH_VARARGS|METH_KEYWORDS,
> + "rename(new_name) -> boolean\n"
> + "\n"
> + "Rename the container."
> + },
> {"remove_device_node", (PyCFunction)Container_remove_device_node,
> METH_VARARGS|METH_KEYWORDS,
> "remove_device_node(src_path, dest_path) -> boolean\n"
> @@ -1740,8 +1763,10 @@ PyInit__lxc(void)
> PYLXC_EXPORT_CONST(LXC_ATTACH_SET_PERSONALITY);
>
> /* clone: clone flags */
> + PYLXC_EXPORT_CONST(LXC_CLONE_KEEPBDEVTYPE);
> PYLXC_EXPORT_CONST(LXC_CLONE_KEEPMACADDR);
> PYLXC_EXPORT_CONST(LXC_CLONE_KEEPNAME);
> + PYLXC_EXPORT_CONST(LXC_CLONE_MAYBE_SNAPSHOT);
> PYLXC_EXPORT_CONST(LXC_CLONE_SNAPSHOT);
>
> /* create: create flags */
> diff --git a/src/python-lxc/lxc/__init__.py b/src/python-lxc/lxc/__init__.py
> index 0ca3e54..fa74297 100644
> --- a/src/python-lxc/lxc/__init__.py
> +++ b/src/python-lxc/lxc/__init__.py
> @@ -327,6 +327,18 @@ class Container(_lxc.Container):
>
> return ips
>
> + def rename(self, new_name):
> + """
> + Rename the container.
> + On success, returns the new Container object.
> + On failure, returns False.
> + """
> +
> + if _lxc.Container.rename(self, new_name):
> + return Container(new_name)
Does this work? Will python automatically set self to new_name?
> +
> + return False
> +
> def set_config_item(self, key, value):
> """
> Set a config key to a provided value.
> @@ -454,8 +466,10 @@ LXC_ATTACH_REMOUNT_PROC_SYS = _lxc.LXC_ATTACH_REMOUNT_PROC_SYS
> LXC_ATTACH_SET_PERSONALITY = _lxc.LXC_ATTACH_SET_PERSONALITY
>
> # clone: clone flags
> +LXC_CLONE_KEEPBDEVTYPE = _lxc.LXC_CLONE_KEEPBDEVTYPE
> LXC_CLONE_KEEPMACADDR = _lxc.LXC_CLONE_KEEPMACADDR
> LXC_CLONE_KEEPNAME = _lxc.LXC_CLONE_KEEPNAME
> +LXC_CLONE_MAYBE_SNAPSHOT = _lxc.LXC_CLONE_MAYBE_SNAPSHOT
> LXC_CLONE_SNAPSHOT = _lxc.LXC_CLONE_SNAPSHOT
>
> # create: create flags
> --
> 1.8.5.2
>
> _______________________________________________
> 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