[lxc-devel] [PATCH] python3: binding update
Stéphane Graber
stgraber at ubuntu.com
Thu Jan 16 18:14:22 UTC 2014
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)
+
+ 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
More information about the lxc-devel
mailing list