Quoting Stéphane Graber ([email protected]): > 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 <[email protected]> > --- > 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 > [email protected] > http://lists.linuxcontainers.org/listinfo/lxc-devel _______________________________________________ lxc-devel mailing list [email protected] http://lists.linuxcontainers.org/listinfo/lxc-devel
