]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Add virConnectGetVersion Python API
authorTaizo ITO <taizo.ito@hde.co.jp>
Fri, 22 Jan 2010 10:01:09 +0000 (11:01 +0100)
committerDaniel Veillard <veillard@redhat.com>
Fri, 22 Jan 2010 10:01:09 +0000 (11:01 +0100)
adds a new python API call for retrieving the running
hypervisor version used by a connection: virConnectGetVersion

* python/generator.py: skip virConnectGetVersion from autogenerated
* python/libvirt-override-api.xml python/libvirt-override.c: define
  direct native bindings

python/generator.py
python/libvirt-override-api.xml
python/libvirt-override.c

index 56f89251ed29a616bebb8a5d2e1dc4b765fe586e..41822197817bddacfdff171bef22c83e3778b32e 100755 (executable)
@@ -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',
index 6ae2742e7996002972870bac9066426eb8aa44d6..3d8f46cf30300e4697deb229e0478be126852560 100644 (file)
@@ -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'/>
index db4c0e10c139571305e6db1f1dd6c24317e49d16..d90a763e6cd5808ebc56f4b38348408b9ea1afa1 100644 (file)
@@ -820,6 +820,32 @@ libvirt_virGetVersion (PyObject *self ATTRIBUTE_UNUSED, PyObject *args)
         return Py_BuildValue ((char *) "kk", libVer, typeVer);
 }
 
+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},