diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2007-05-29 14:58:27 +0000 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2007-05-29 14:58:27 +0000 |
commit | b599903eb294f14bc2ff3492102d860479ead872 (patch) | |
tree | 2c0adcdff7b393979fa5eda06ecc5de5079582f6 | |
parent | 33af9b643ad0c342bb058453ae50035e8abdbb0e (diff) | |
download | libvirt-python-b599903eb294f14bc2ff3492102d860479ead872.tar.gz |
+Tue May 29 15:56:00 BST 2007 Richard W.M. Jones <rjones@redhat.com>v0.2.3LIVIRT_0_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-x | generator.py | 2 | ||||
-rw-r--r-- | libvir.c | 45 | ||||
-rw-r--r-- | libvir.py | 23 |
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): @@ -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: + */ @@ -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 |