From 2b557b595a52782458b0d217d2ca114c7f8c62c7 Mon Sep 17 00:00:00 2001 From: Tony Asleson Date: Tue, 7 Apr 2015 15:25:20 -0500 Subject: python: Make lv addTag/removeTag persistent Added lvm_vg_write in the addTag/removeTag paths to make the changes persist. Added unit test to ensure functionality. https://bugzilla.redhat.com/show_bug.cgi?id=1210020 Signed-off-by: Tony Asleson --- python/liblvm.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) (limited to 'python') diff --git a/python/liblvm.c b/python/liblvm.c index 3828f2707..74d65ead5 100644 --- a/python/liblvm.c +++ b/python/liblvm.c @@ -1444,13 +1444,18 @@ static PyObject *_liblvm_lvm_lv_add_tag(lvobject *self, PyObject *args) if (!PyArg_ParseTuple(args, "s", &tag)) return NULL; - if (lvm_lv_add_tag(self->lv, tag) == -1) { - PyErr_SetObject(_LibLVMError, _liblvm_get_last_error()); - return NULL; - } + if (lvm_lv_add_tag(self->lv, tag) == -1) + goto error; + + if (lvm_vg_write(self->parent_vgobj->vg) == -1) + goto error; Py_INCREF(Py_None); return Py_None; + +error: + PyErr_SetObject(_LibLVMError, _liblvm_get_last_error()); + return NULL; } static PyObject *_liblvm_lvm_lv_remove_tag(lvobject *self, PyObject *args) @@ -1462,14 +1467,18 @@ static PyObject *_liblvm_lvm_lv_remove_tag(lvobject *self, PyObject *args) if (!PyArg_ParseTuple(args, "s", &tag)) return NULL; - if (lvm_lv_remove_tag(self->lv, tag) == -1) { - PyErr_SetObject(_LibLVMError, _liblvm_get_last_error()); - return NULL; - } + if (lvm_lv_remove_tag(self->lv, tag) == -1) + goto error; - Py_INCREF(Py_None); + if (lvm_vg_write(self->parent_vgobj->vg) == -1) + goto error; + Py_INCREF(Py_None); return Py_None; + +error: + PyErr_SetObject(_LibLVMError, _liblvm_get_last_error()); + return NULL; } static PyObject *_liblvm_lvm_lv_get_tags(lvobject *self) -- cgit v1.2.1