+Tue May 29 15:56:00 BST 2007 Richard W.M. Jones <rjones@redhat.com>
+
+ * 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.
+
Tue May 29 15:41:00 BST 2007 Richard W.M. Jones <rjones@redhat.com>
* TODO: Added a note about requiring C++ compiler because of a
return 1
if name == "vshRunConsole":
return 1
+ if name == "virGetVersion":
+ return 1
return 0
def print_function_wrapper(name, output, export, include):
* *
************************************************************************/
+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;
************************************************************************/
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},
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:
+ */
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
type = "Xen";
for (i = 0;i < virDriverTabCount;i++) {
if ((virDriverTab[i] != NULL) &&
- (!strcmp(virDriverTab[i]->name, type))) {
+ (!strcasecmp(virDriverTab[i]->name, type))) {
*typeVer = virDriverTab[i]->ver;
break;
}