[lvm-devel] [PATCH 09/12] Add support for lvm_pv_get_property

Tony Asleson tasleson at redhat.com
Mon Sep 24 23:29:20 UTC 2012


Signed-off-by: Tony Asleson <tasleson at redhat.com>
---
 liblvm.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/liblvm.c b/liblvm.c
index 1fa13fe..7af81bd 100644
--- a/liblvm.c
+++ b/liblvm.c
@@ -1272,6 +1272,14 @@ liblvm_lvm_lv_resize(lvobject *self, PyObject *args)
 
 /* PV Methods */
 
+#define PV_VALID(pvobject) \
+    do {                   \
+    if (!pvobject->pv || !pvobject->lvm_obj) {                                               \
+        PyErr_SetString(PyExc_UnboundLocalError, "PV object invalid"); \
+        return NULL; \
+        } \
+    } while (0)
+
 static PyObject *
 liblvm_lvm_pv_get_name(pvobject *self)
 {
@@ -1291,6 +1299,21 @@ liblvm_lvm_pv_get_mda_count(pvobject *self)
 }
 
 static PyObject *
+liblvm_lvm_pv_get_property(pvobject *self,  PyObject *args)
+{
+    const char *name;
+    struct lvm_property_value prop_value;
+
+    PV_VALID(self);
+
+     if (!PyArg_ParseTuple(args, "s", &name))
+        return NULL;
+
+    prop_value = lvm_pv_get_property(self->pv, name);
+    return get_property(self->lvm_obj, &prop_value);
+}
+
+static PyObject *
 liblvm_lvm_pv_get_dev_size(pvobject *self)
 {
     return Py_BuildValue("l", lvm_pv_get_dev_size(self->pv));
@@ -1409,6 +1432,7 @@ static PyMethodDef liblvm_pv_methods[] = {
     { "getName",          (PyCFunction)liblvm_lvm_pv_get_name, METH_NOARGS },
     { "getUuid",          (PyCFunction)liblvm_lvm_pv_get_uuid, METH_NOARGS },
     { "getMdaCount",          (PyCFunction)liblvm_lvm_pv_get_mda_count, METH_NOARGS },
+    { "getProperty",        (PyCFunction)liblvm_lvm_pv_get_property, METH_VARARGS },
     { "getSize",          (PyCFunction)liblvm_lvm_pv_get_size, METH_NOARGS },
     { "getDevSize",          (PyCFunction)liblvm_lvm_pv_get_dev_size, METH_NOARGS },
     { "getFree",          (PyCFunction)liblvm_lvm_pv_get_free, METH_NOARGS },
-- 
1.7.11.4




More information about the lvm-devel mailing list