[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] [PATCH] Add virConnectGetVersion Python API



Hi all,

The attached patch adds a new python API call for retrieving the running
hypervisor version used by a connection: virConnectGetVersion.

-- 
Taizo ITO

diff --git a/python/generator.py b/python/generator.py
index 56f8925..4182219 100755
--- a/python/generator.py
+++ b/python/generator.py
@@ -255,6 +255,7 @@ foreign_encoding_args = (
 # Class methods which are written by hand in libvir.c but the Python-level
 # code is still automatically generated (so they are not in skip_function()).
 skip_impl = (
+    'virConnectGetVersion',
     'virConnectGetLibVersion',
     'virConnectListDomainsID',
     'virConnectListDefinedDomains',
diff --git a/python/libvirt-override-api.xml b/python/libvirt-override-api.xml
index 6ae2742..3d8f46c 100644
--- a/python/libvirt-override-api.xml
+++ b/python/libvirt-override-api.xml
@@ -1,6 +1,11 @@
 <?xml version="1.0"?>
 <api name='libvir-python'>
   <symbols>
+    <function name="virConnectGetVersion" file='python'>
+      <info>Returns the running hypervisor version of the connection host</info>
+      <arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
+      <return type='int' info="0 on success, -1 on error"/>
+    </function>
     <function name="virConnectGetLibVersion" file='python'>
       <info>Returns the libvirt version of the connection host</info>
       <arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
diff --git a/python/libvirt-override.c b/python/libvirt-override.c
index db4c0e1..d90a763 100644
--- a/python/libvirt-override.c
+++ b/python/libvirt-override.c
@@ -821,6 +821,32 @@ libvirt_virGetVersion (PyObject *self ATTRIBUTE_UNUSED, PyObject *args)
 }
 
 static PyObject *
+libvirt_virConnectGetVersion (PyObject *self ATTRIBUTE_UNUSED,
+                                     PyObject *args)
+{
+    unsigned long hvVersion;
+    int c_retval;
+    virConnectPtr conn;
+    PyObject *pyobj_conn;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:virConnectGetVersion",
+                          &pyobj_conn))
+        return(NULL);
+    conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn);
+
+    LIBVIRT_BEGIN_ALLOW_THREADS;
+
+    c_retval = virConnectGetVersion(conn, &hvVersion);
+
+    LIBVIRT_END_ALLOW_THREADS;
+
+    if (c_retval == -1)
+        return VIR_PY_INT_FAIL;
+
+    return PyInt_FromLong (hvVersion);
+}
+
+static PyObject *
 libvirt_virConnectGetLibVersion (PyObject *self ATTRIBUTE_UNUSED,
                                      PyObject *args)
 {
@@ -2655,6 +2681,7 @@ libvirt_virEventInvokeTimeoutCallback(PyObject *self ATTRIBUTE_UNUSED,
 static PyMethodDef libvirtMethods[] = {
 #include "libvirt-export.c"
     {(char *) "virGetVersion", libvirt_virGetVersion, METH_VARARGS, NULL},
+    {(char *) "virConnectGetVersion", libvirt_virConnectGetVersion, METH_VARARGS, NULL},
     {(char *) "virConnectGetLibVersion", libvirt_virConnectGetLibVersion, METH_VARARGS, NULL},
     {(char *) "virConnectOpenAuth", libvirt_virConnectOpenAuth, METH_VARARGS, NULL},
     {(char *) "virConnectListDomainsID", libvirt_virConnectListDomainsID, METH_VARARGS, NULL},

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]