diff options
author | Daniel P. Berrange <berrange@redhat.com> | 2010-04-20 11:49:27 +0200 |
---|---|---|
committer | Daniel Veillard <veillard@redhat.com> | 2010-04-20 11:49:27 +0200 |
commit | 37f24b06c0f96539f8964e0b41010f4ebe514f5f (patch) | |
tree | aff148090f9c563bfcb63e203d9d0414ae40ab00 /libvirt-override.c | |
parent | 73d5ccb8d2792ddf11c58e337039dd27f65923e2 (diff) | |
download | libvirt-python-split-37f24b06c0f96539f8964e0b41010f4ebe514f5f.tar.gz libvirt-python-split-37f24b06c0f96539f8964e0b41010f4ebe514f5f.tar.xz libvirt-python-split-37f24b06c0f96539f8964e0b41010f4ebe514f5f.zip |
Fixup python binding for virDomainSnapshot APIs
The generator code was totally wrong for the virDomainSnapshot
APIs, not generating the wrapper class, and giving methods the
wrong names
* generator.py: Set metadata for virDomainSnapshot type & APIs
* libvirt-override-api.xml, libvirt-override.c: Hand-code the
virDomainSnapshotListNames glue layer
Diffstat (limited to 'libvirt-override.c')
-rw-r--r-- | libvirt-override.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/libvirt-override.c b/libvirt-override.c index 02bc313..ce21f60 100644 --- a/libvirt-override.c +++ b/libvirt-override.c @@ -943,6 +943,51 @@ libvirt_virConnectListDefinedDomains(PyObject *self ATTRIBUTE_UNUSED, } static PyObject * +libvirt_virDomainSnapshotListNames(PyObject *self ATTRIBUTE_UNUSED, + PyObject *args) { + PyObject *py_retval; + char **names = NULL; + int c_retval, i; + virDomainPtr dom; + PyObject *pyobj_dom; + int flags; + + if (!PyArg_ParseTuple(args, (char *)"Oi:virDomainSnapshotListNames", &pyobj_dom, &flags)) + return(NULL); + dom = (virDomainPtr) PyvirDomain_Get(pyobj_dom); + + LIBVIRT_BEGIN_ALLOW_THREADS; + c_retval = virDomainSnapshotNum(dom, flags); + LIBVIRT_END_ALLOW_THREADS; + if (c_retval < 0) + return VIR_PY_NONE; + + if (c_retval) { + names = malloc(sizeof(*names) * c_retval); + if (!names) + return VIR_PY_NONE; + LIBVIRT_BEGIN_ALLOW_THREADS; + c_retval = virDomainSnapshotListNames(dom, names, c_retval, flags); + LIBVIRT_END_ALLOW_THREADS; + if (c_retval < 0) { + free(names); + return VIR_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; int c_retval; @@ -3275,6 +3320,7 @@ static PyMethodDef libvirtMethods[] = { {(char *) "virConnectListDefinedInterfaces", libvirt_virConnectListDefinedInterfaces, METH_VARARGS, NULL}, {(char *) "virConnectBaselineCPU", libvirt_virConnectBaselineCPU, METH_VARARGS, NULL}, {(char *) "virDomainGetJobInfo", libvirt_virDomainGetJobInfo, METH_VARARGS, NULL}, + {(char *) "virDomainSnapshotListNames", libvirt_virDomainSnapshotListNames, METH_VARARGS, NULL}, {NULL, NULL, 0, NULL} }; |