]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
Added binding for virConnectListDefinedDomains api
authorDaniel P. Berrange <berrange@redhat.com>
Thu, 16 Nov 2006 00:17:10 +0000 (00:17 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Thu, 16 Nov 2006 00:17:10 +0000 (00:17 +0000)
ChangeLog
python/generator.py
python/libvir.c
python/libvirt-python-api.xml

index b03ea386d7f80f756adbce7431e612275ea33ba8..362f3765bb29294ce7ce96bf724d8039e6806063 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Nov 15 18:23:13 EST 2006 Daniel Berrange <berrange@redhat.com>
+
+       * python/generator.py, python/libvir.c, python/libvirt-python-api.xml:
+       Added binding for virConnectListDefinedDomains API.
+
 Wed Nov 15 15:08:13 EST 2006 Daniel Berrange <berrange@redhat.com>
 
        * src/xen_internal.c, src/xs_internal.c, src/xend_internal.c,
index d921f9807f1eae40562835aaabff567a8a2357a4..48cd3ee3a9f4d86a210e746c397338f805e4d2ba 100755 (executable)
@@ -260,6 +260,7 @@ foreign_encoding_args = (
 # code is still automatically generated (so they are not in skip_function()).
 skip_impl = (
     'virConnectListDomainsID',
+    'virConnectListDefinedDomains',
     'virConnGetLastError',
     'virGetLastError',
     'virDomainGetInfo',
index 6d14fb2fe87ab4f22876ede5a09f9b2d228431ee..1d8e422f2ff75b699f46733b5514a9c66cf5f094 100644 (file)
@@ -240,6 +240,52 @@ libvirt_virConnectListDomainsID(PyObject *self ATTRIBUTE_UNUSED,
     return(py_retval);
 }
 
+static PyObject *
+libvirt_virConnectListDefinedDomains(PyObject *self ATTRIBUTE_UNUSED,
+                                    PyObject *args) {
+    PyObject *py_retval;
+    char **names = NULL;
+    int c_retval, i;
+    virConnectPtr conn;
+    PyObject *pyobj_conn;
+
+
+    if (!PyArg_ParseTuple(args, (char *)"O:virConnectListDomains", &pyobj_conn))
+        return(NULL);
+    conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn);
+
+    c_retval = virConnectNumOfDefinedDomains(conn);
+    if (c_retval < 0) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    
+    if (c_retval) {
+        names = malloc(sizeof(char *) * c_retval);
+        if (!names) {
+            Py_INCREF(Py_None);
+            return (Py_None);
+        }
+        c_retval = virConnectListDefinedDomains(conn, (const char **)names, c_retval);
+        if (c_retval < 0) {
+            free(names);
+            Py_INCREF(Py_None);
+            return(Py_None);
+        }
+    }
+    py_retval = PyList_New(c_retval);
+
+    if (names) {
+        for (i = 0;i < c_retval;i++) {
+            PyList_SetItem(py_retval, i, libvirt_constcharPtrWrap(names[i]));
+            free(names[i]);
+        }
+        free(names);
+    }
+
+    return(py_retval);
+}
+
 static PyObject *
 libvirt_virDomainGetInfo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
     PyObject *py_retval;
@@ -364,6 +410,7 @@ static PyMethodDef libvirtMethods[] = {
     {(char *) "virDomainFree", libvirt_virDomainFree, METH_VARARGS, NULL},
     {(char *) "virConnectClose", libvirt_virConnectClose, METH_VARARGS, NULL},
     {(char *) "virConnectListDomainsID", libvirt_virConnectListDomainsID, METH_VARARGS, NULL},
+    {(char *) "virConnectListDefinedDomains", libvirt_virConnectListDefinedDomains, METH_VARARGS, NULL},
     {(char *) "virDomainGetInfo", libvirt_virDomainGetInfo, METH_VARARGS, NULL},
     {(char *) "virNodeGetInfo", libvirt_virNodeGetInfo, METH_VARARGS, NULL},
     {(char *) "virDomainGetUUID", libvirt_virDomainGetUUID, METH_VARARGS, NULL},
index 302ba023b73099ff27b52f1fbc063fd794491652..1a658a34ac9ca56692fea907b065965a88783853 100644 (file)
@@ -6,6 +6,11 @@
       <arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
       <return type='int *' info="the list of ID or None in case of error"/>
     </function>
+    <function name='virConnectListDefinedDomains' file='python'>
+      <info>list the defined domains, stores the pointers to the names in @names</info>
+      <arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
+      <return type='str *' info='the list of Names of None in case of error'/>
+    </function>
     <function name='virDomainLookupByUUID' file='python'>
       <info>Try to lookup a domain on the given hypervisor based on its UUID.</info>
       <return type='virDomainPtr' info='a new domain object or NULL in case of failure'/>