summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2007-05-29 14:58:27 +0000
committerRichard W.M. Jones <rjones@redhat.com>2007-05-29 14:58:27 +0000
commitb599903eb294f14bc2ff3492102d860479ead872 (patch)
tree2c0adcdff7b393979fa5eda06ecc5de5079582f6
parent33af9b643ad0c342bb058453ae50035e8abdbb0e (diff)
downloadlibvirt-python-split-0.2.3.tar.gz
libvirt-python-split-0.2.3.tar.xz
libvirt-python-split-0.2.3.zip
+Tue May 29 15:56:00 BST 2007 Richard W.M. Jones <rjones@redhat.com>v0.2.3
+ + * python/generator.py, python/libvir.c, python/libvir.py: + Wrap the virGetVersion call as Python libvirt.getVersion. + + * src/libvirt.c: Change virGetVersion so that the driver name + is case insensitive. +
-rwxr-xr-xgenerator.py2
-rw-r--r--libvir.c45
-rw-r--r--libvir.py23
3 files changed, 70 insertions, 0 deletions
diff --git a/generator.py b/generator.py
index c3c79dc..3dc3212 100755
--- a/generator.py
+++ b/generator.py
@@ -287,6 +287,8 @@ def skip_function(name):
return 1
if name == "vshRunConsole":
return 1
+ if name == "virGetVersion":
+ return 1
return 0
def print_function_wrapper(name, output, export, include):
diff --git a/libvir.c b/libvir.c
index 82341b8..f1281f1 100644
--- a/libvir.c
+++ b/libvir.c
@@ -179,6 +179,36 @@ libvirt_virRegisterErrorHandler(ATTRIBUTE_UNUSED PyObject * self,
************************************************************************/
static PyObject *
+libvirt_virGetVersion (PyObject *self ATTRIBUTE_UNUSED, PyObject *args)
+{
+ char *type = NULL;
+ unsigned long libVer, typeVer = 0;
+ int c_retval;
+
+ if (!PyArg_ParseTuple (args, (char *) "|s", &type))
+ return NULL;
+
+ LIBVIRT_BEGIN_ALLOW_THREADS;
+
+ if (type == NULL)
+ c_retval = virGetVersion (&libVer, NULL, NULL);
+ else
+ c_retval = virGetVersion (&libVer, type, &typeVer);
+
+ LIBVIRT_END_ALLOW_THREADS;
+
+ if (c_retval == -1) {
+ Py_INCREF(Py_None);
+ return (Py_None);
+ }
+
+ if (type == NULL)
+ return PyInt_FromLong (libVer);
+ else
+ return Py_BuildValue ((char *) "kk", libVer, typeVer);
+}
+
+static PyObject *
libvirt_virDomainFree(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
int c_retval;
@@ -628,6 +658,7 @@ libvirt_virNetworkGetAutostart(PyObject *self ATTRIBUTE_UNUSED, PyObject *args)
************************************************************************/
static PyMethodDef libvirtMethods[] = {
#include "libvirt-export.c"
+ {(char *) "virGetVersion", libvirt_virGetVersion, METH_VARARGS, NULL},
{(char *) "virDomainFree", libvirt_virDomainFree, METH_VARARGS, NULL},
{(char *) "virConnectClose", libvirt_virConnectClose, METH_VARARGS, NULL},
{(char *) "virConnectListDomainsID", libvirt_virConnectListDomainsID, METH_VARARGS, NULL},
@@ -664,3 +695,17 @@ initlibvirtmod(void)
initialized = 1;
}
+
+/*
+ * vim: set tabstop=4:
+ * vim: set shiftwidth=4:
+ * vim: set expandtab:
+ */
+/*
+ * Local variables:
+ * indent-tabs-mode: nil
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * tab-width: 4
+ * End:
+ */
diff --git a/libvir.py b/libvir.py
index e1c4ff3..e108b3a 100644
--- a/libvir.py
+++ b/libvir.py
@@ -83,6 +83,29 @@ def registerErrorHandler(f, ctx):
Returns 1 in case of success."""
return libvirtmod.virRegisterErrorHandler(f,ctx)
+#
+# Return library version.
+#
+def getVersion (name = None):
+ """If no name parameter is passed (or name is None) then the
+ version of the libvirt library is returned as an integer.
+
+ If a name is passed and it refers to a driver linked to the
+ libvirt library, then this returns a tuple of (library version,
+ driver version).
+
+ If the name passed refers to a non-existent driver, then you
+ will get the exception 'no support for hypervisor'.
+
+ Versions numbers are integers: 1000000*major + 1000*minor + release."""
+ if name is None:
+ ret = libvirtmod.virGetVersion ();
+ else:
+ ret = libvirtmod.virGetVersion (name);
+ if ret is None: raise libvirtError ("virGetVersion() failed")
+ return ret
+
+
# WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
#
# Everything before this line comes from libvir.py