From 912f5e58846af97fa758fa036b4ad2f62c124662 Mon Sep 17 00:00:00 2001 From: Taizo ITO Date: Fri, 22 Jan 2010 11:01:09 +0100 Subject: [PATCH] Add virConnectGetVersion Python API 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 | 1 + python/libvirt-override-api.xml | 5 +++++ python/libvirt-override.c | 27 +++++++++++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/python/generator.py b/python/generator.py index 56f89251ed..4182219781 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 6ae2742e79..3d8f46cf30 100644 --- a/python/libvirt-override-api.xml +++ b/python/libvirt-override-api.xml @@ -1,6 +1,11 @@ + + Returns the running hypervisor version of the connection host + + + Returns the libvirt version of the connection host diff --git a/python/libvirt-override.c b/python/libvirt-override.c index db4c0e10c1..d90a763e6c 100644 --- a/python/libvirt-override.c +++ b/python/libvirt-override.c @@ -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}, -- GitLab