Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
generator.py | 1 +
libvirt-override-api.xml | 6 ++++++
libvirt-override.c | 43 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 50 insertions(+)
Pushed as a build fix patch
diff --git a/generator.py b/generator.py
index 2c3b667..afb1d34 100755
--- a/generator.py
+++ b/generator.py
@@ -455,6 +455,7 @@ skip_impl = (
'virStoragePoolLookupByUUID',
'virStoragePoolGetInfo',
'virStorageVolGetInfo',
+ 'virStorageVolGetInfoFlags',
'virStoragePoolGetAutostart',
'virStoragePoolListVolumes',
'virDomainBlockPeek',
diff --git a/libvirt-override-api.xml b/libvirt-override-api.xml
index 50250bc..c96e83e 100644
--- a/libvirt-override-api.xml
+++ b/libvirt-override-api.xml
@@ -410,6 +410,12 @@
<return type='char *' info='the list of information or None in case
of error'/>
<arg name='vol' type='virStorageVolPtr' info='a storage vol
object'/>
</function>
+ <function name='virStorageVolGetInfoFlags' file='python'>
+ <info>Extract information about a storage volume. Note that if the connection
used to get the domain is limited only a partial set of the information can be
extracted.</info>
+ <return type='char *' info='the list of information or None in case
of error'/>
+ <arg name='vol' type='virStorageVolPtr' info='a storage vol
object'/>
+ <arg name='flags' type='unsigned int' info='bitwise-OR of
virStorageVolInfoFlags'/>
+ </function>
<function name='virNodeListDevices' file='python'>
<info>list the node devices</info>
<arg name='conn' type='virConnectPtr' info='pointer to the
hypervisor connection'/>
diff --git a/libvirt-override.c b/libvirt-override.c
index be299d4..db14244 100644
--- a/libvirt-override.c
+++ b/libvirt-override.c
@@ -3681,6 +3681,46 @@ libvirt_virStorageVolGetInfo(PyObject *self ATTRIBUTE_UNUSED,
return NULL;
}
+#if LIBVIR_CHECK_VERSION(3, 0, 0)
+static PyObject *
+libvirt_virStorageVolGetInfoFlags(PyObject *self ATTRIBUTE_UNUSED,
+ PyObject *args)
+{
+ PyObject *py_retval;
+ int c_retval;
+ virStorageVolPtr pool;
+ PyObject *pyobj_pool;
+ virStorageVolInfo info;
+ unsigned int flags;
+
+ if (!PyArg_ParseTuple(args, (char *)"OI:virStorageVolGetInfoFlags",
&pyobj_pool, &flags))
+ return NULL;
+ pool = (virStorageVolPtr) PyvirStorageVol_Get(pyobj_pool);
+
+ LIBVIRT_BEGIN_ALLOW_THREADS;
+ c_retval = virStorageVolGetInfoFlags(pool, &info, flags);
+ LIBVIRT_END_ALLOW_THREADS;
+ if (c_retval < 0)
+ return VIR_PY_NONE;
+
+ if ((py_retval = PyList_New(3)) == NULL)
+ return NULL;
+
+ VIR_PY_LIST_SET_GOTO(py_retval, 0,
+ libvirt_intWrap((int) info.type), error);
+ VIR_PY_LIST_SET_GOTO(py_retval, 1,
+ libvirt_ulonglongWrap(info.capacity), error);
+ VIR_PY_LIST_SET_GOTO(py_retval, 2,
+ libvirt_ulonglongWrap(info.allocation), error);
+
+ return py_retval;
+
+ error:
+ Py_DECREF(py_retval);
+ return NULL;
+}
+#endif
+
static PyObject *
libvirt_virStoragePoolGetUUID(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
@@ -9203,6 +9243,9 @@ static PyMethodDef libvirtMethods[] = {
#endif /* LIBVIR_CHECK_VERSION(0, 10, 2) */
{(char *) "virStoragePoolGetInfo", libvirt_virStoragePoolGetInfo,
METH_VARARGS, NULL},
{(char *) "virStorageVolGetInfo", libvirt_virStorageVolGetInfo,
METH_VARARGS, NULL},
+#if LIBVIR_CHECK_VERSION(3, 0, 0)
+ {(char *) "virStorageVolGetInfoFlags", libvirt_virStorageVolGetInfoFlags,
METH_VARARGS, NULL},
+#endif /* LIBVIR_CHECK_VERSION(3, 0, 0) */
{(char *) "virStoragePoolGetUUID", libvirt_virStoragePoolGetUUID,
METH_VARARGS, NULL},
{(char *) "virStoragePoolGetUUIDString",
libvirt_virStoragePoolGetUUIDString, METH_VARARGS, NULL},
{(char *) "virStoragePoolLookupByUUID", libvirt_virStoragePoolLookupByUUID,
METH_VARARGS, NULL},
--
2.9.3