'unsigned char *': ('z', None, "charPtr", "char *"),
'char *': ('z', None, "charPtr", "char *"),
'const char *': ('z', None, "charPtrConst", "const char *"),
+
'virDomainPtr': ('O', "virDomain", "virDomainPtr", "virDomainPtr"),
'const virDomainPtr': ('O', "virDomain", "virDomainPtr", "virDomainPtr"),
'virDomain *': ('O', "virDomain", "virDomainPtr", "virDomainPtr"),
'const virDomain *': ('O', "virDomain", "virDomainPtr", "virDomainPtr"),
+
'virNetworkPtr': ('O', "virNetwork", "virNetworkPtr", "virNetworkPtr"),
'const virNetworkPtr': ('O', "virNetwork", "virNetworkPtr", "virNetworkPtr"),
'virNetwork *': ('O', "virNetwork", "virNetworkPtr", "virNetworkPtr"),
'const virNetwork *': ('O', "virNetwork", "virNetworkPtr", "virNetworkPtr"),
+
+ 'virStoragePoolPtr': ('O', "virStoragePool", "virStoragePoolPtr", "virStoragePoolPtr"),
+ 'const virStoragePoolPtr': ('O', "virStoragePool", "virStoragePoolPtr", "virStoragePoolPtr"),
+ 'virStoragePool *': ('O', "virStoragePool", "virStoragePoolPtr", "virStoragePoolPtr"),
+ 'const virStoragePool *': ('O', "virStoragePool", "virStoragePoolPtr", "virStoragePoolPtr"),
+
+ 'virStorageVolPtr': ('O', "virStorageVol", "virStorageVolPtr", "virStorageVolPtr"),
+ 'const virStorageVolPtr': ('O', "virStorageVol", "virStorageVolPtr", "virStorageVolPtr"),
+ 'virStorageVol *': ('O', "virStorageVol", "virStorageVolPtr", "virStorageVolPtr"),
+ 'const virStorageVol *': ('O', "virStorageVol", "virStorageVolPtr", "virStorageVolPtr"),
+
'virConnectPtr': ('O', "virConnect", "virConnectPtr", "virConnectPtr"),
'const virConnectPtr': ('O', "virConnect", "virConnectPtr", "virConnectPtr"),
'virConnect *': ('O', "virConnect", "virConnectPtr", "virConnectPtr"),
'virConnectListDefinedDomains',
'virConnectListNetworks',
'virConnectListDefinedNetworks',
+ 'virConnectListStoragePools',
+ 'virConnectListDefinedStoragePools',
+ 'virConnectListStorageVols',
+ 'virConnectListDefinedStorageVols',
'virConnGetLastError',
'virGetLastError',
'virDomainGetInfo',
'virDomainSetSchedulerParameters',
'virDomainGetVcpus',
'virDomainPinVcpu',
+ 'virStoragePoolGetUUID',
+ 'virStoragePoolLookupByUUID',
+ 'virStorageVolGetUUID',
+ 'virStorageVolLookupByUUID',
+ 'virStoragePoolGetInfo',
+ 'virStorageVolGetInfo',
+ 'virStoragePoolGetAutostart',
+ 'virStoragePoolListVolumes',
)
"virDomain *": ("._o", "virDomain(self, _obj=%s)", "virDomain"),
"virNetworkPtr": ("._o", "virNetwork(self, _obj=%s)", "virNetwork"),
"virNetwork *": ("._o", "virNetwork(self, _obj=%s)", "virNetwork"),
+ "virStoragePoolPtr": ("._o", "virStoragePool(self, _obj=%s)", "virStoragePool"),
+ "virStoragePool *": ("._o", "virStoragePool(self, _obj=%s)", "virStoragePool"),
+ "virStorageVolPtr": ("._o", "virStorageVol(self, _obj=%s)", "virStorageVol"),
+ "virStorageVol *": ("._o", "virStorageVol(self, _obj=%s)", "virStorageVol"),
"virConnectPtr": ("._o", "virConnect(_obj=%s)", "virConnect"),
"virConnect *": ("._o", "virConnect(_obj=%s)", "virConnect"),
}
converter_type = {
}
-primary_classes = ["virDomain", "virNetwork", "virConnect"]
+primary_classes = ["virDomain", "virNetwork", "virStoragePool", "virStorageVol", "virConnect"]
classes_ancestor = {
}
classes_destructors = {
"virDomain": "virDomainFree",
"virNetwork": "virNetworkFree",
+ "virStoragePool": "virStoragePoolFree",
+ "virStorageVol": "virStorageVolFree",
"virConnect": "virConnectClose",
}
functions_noexcept = {
'virDomainGetID': True,
'virDomainGetName': True,
+ 'virNetworkGetName': True,
+ 'virStoragePoolGetName': True,
+ 'virStorageVolGetName': True,
+ 'virStorageVolGetkey': True,
}
reference_keepers = {
function_post = {
'virDomainDestroy': "self._o = None",
'virNetworkDestroy': "self._o = None",
+ 'virStoragePoolDestroy': "self._o = None",
+ 'virStorageVolDestroy': "self._o = None",
}
# Functions returning an integral type which need special rules to
elif name[0:16] == "virNetworkLookup":
func = name[3:]
func = string.lower(func[0:1]) + func[1:]
+ elif name[0:20] == "virStoragePoolDefine":
+ func = name[3:]
+ func = string.lower(func[0:1]) + func[1:]
+ elif name[0:20] == "virStoragePoolLookup":
+ func = name[3:]
+ func = string.lower(func[0:1]) + func[1:]
+ elif name[0:19] == "virStorageVolDefine":
+ func = name[3:]
+ func = string.lower(func[0:1]) + func[1:]
+ elif name[0:19] == "virStorageVolLookup":
+ func = name[3:]
+ func = string.lower(func[0:1]) + func[1:]
elif name[0:12] == "virDomainGet":
func = name[12:]
func = string.lower(func[0:1]) + func[1:]
elif name[0:10] == "virNetwork":
func = name[10:]
func = string.lower(func[0:1]) + func[1:]
+ elif name[0:17] == "virStoragePoolGet":
+ func = name[17:]
+ func = string.lower(func[0:1]) + func[1:]
+ elif name[0:14] == "virStoragePool":
+ func = name[14:]
+ func = string.lower(func[0:1]) + func[1:]
+ elif name[0:16] == "virStorageVolGet":
+ func = name[16:]
+ func = string.lower(func[0:1]) + func[1:]
+ elif name[0:13] == "virStorageVol":
+ func = name[13:]
+ func = string.lower(func[0:1]) + func[1:]
elif name[0:7] == "virNode":
func = name[7:]
func = string.lower(func[0:1]) + func[1:]
else:
txt.write("Class %s()\n" % (classname))
classes.write("class %s:\n" % (classname))
- if classname == "virDomain" or classname == "virNetwork":
+ if classname in [ "virDomain", "virNetwork", "virStoragePool", "virStorageVol" ]:
classes.write(" def __init__(self, conn, _obj=None):\n")
else:
classes.write(" def __init__(self, _obj=None):\n")
list = reference_keepers[classname]
for ref in list:
classes.write(" self.%s = None\n" % ref[1])
- if classname == "virDomain" or classname == "virNetwork":
+ if classname in [ "virDomain", "virNetwork", "virStoragePool", "virStorageVol" ]:
classes.write(" self._conn = conn\n")
classes.write(" if _obj != None:self._o = _obj;return\n")
classes.write(" self._o = None\n\n");
classes.write(
" if ret is None:raise libvirtError('%s() failed', net=self)\n" %
(name))
+ elif classname == "virStoragePool":
+ classes.write(
+ " if ret is None:raise libvirtError('%s() failed', pool=self)\n" %
+ (name))
+ elif classname == "virStorageVol":
+ classes.write(
+ " if ret is None:raise libvirtError('%s() failed', vol=self)\n" %
+ (name))
else:
classes.write(
" if ret is None:raise libvirtError('%s() failed')\n" %
classes.write ((" if " + test +
": raise libvirtError ('%s() failed', net=self)\n") %
("ret", name))
+ elif classname == "virStoragePool":
+ classes.write ((" if " + test +
+ ": raise libvirtError ('%s() failed', pool=self)\n") %
+ ("ret", name))
+ elif classname == "virStorageVol":
+ classes.write ((" if " + test +
+ ": raise libvirtError ('%s() failed', vol=self)\n") %
+ ("ret", name))
else:
classes.write ((" if " + test +
": raise libvirtError ('%s() failed')\n") %
classes.write ((" if " + test +
": raise libvirtError ('%s() failed', net=self)\n") %
("ret", name))
+ elif classname == "virStoragePool":
+ classes.write ((" if " + test +
+ ": raise libvirtError ('%s() failed', pool=self)\n") %
+ ("ret", name))
+ elif classname == "virStorageVol":
+ classes.write ((" if " + test +
+ ": raise libvirtError ('%s() failed', vol=self)\n") %
+ ("ret", name))
else:
classes.write ((" if " + test +
": raise libvirtError ('%s() failed')\n") %
return(py_retval);
}
+
+static PyObject *
+libvirt_virConnectListStoragePools(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:virConnectListStoragePools", &pyobj_conn))
+ return(NULL);
+ conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn);
+
+ c_retval = virConnectNumOfStoragePools(conn);
+ if (c_retval < 0)
+ return VIR_PY_NONE;
+
+ if (c_retval) {
+ names = malloc(sizeof(*names) * c_retval);
+ if (!names)
+ return VIR_PY_NONE;
+ c_retval = virConnectListStoragePools(conn, names, c_retval);
+ if (c_retval < 0) {
+ free(names);
+ return VIR_PY_NONE;
+ }
+ }
+ py_retval = PyList_New(c_retval);
+ if (py_retval == NULL) {
+ if (names) {
+ for (i = 0;i < c_retval;i++)
+ free(names[i]);
+ free(names);
+ }
+ return VIR_PY_NONE;
+ }
+
+ 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_virConnectListDefinedStoragePools(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:virConnectListDefinedStoragePools", &pyobj_conn))
+ return(NULL);
+ conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn);
+
+ c_retval = virConnectNumOfDefinedStoragePools(conn);
+ if (c_retval < 0)
+ return VIR_PY_NONE;
+
+ if (c_retval) {
+ names = malloc(sizeof(*names) * c_retval);
+ if (!names)
+ return VIR_PY_NONE;
+ c_retval = virConnectListDefinedStoragePools(conn, names, c_retval);
+ if (c_retval < 0) {
+ free(names);
+ return VIR_PY_NONE;
+ }
+ }
+ py_retval = PyList_New(c_retval);
+ if (py_retval == NULL) {
+ if (names) {
+ for (i = 0;i < c_retval;i++)
+ free(names[i]);
+ free(names);
+ }
+ return VIR_PY_NONE;
+ }
+
+ 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_virStoragePoolListVolumes(PyObject *self ATTRIBUTE_UNUSED,
+ PyObject *args) {
+ PyObject *py_retval;
+ char **names = NULL;
+ int c_retval, i;
+ virStoragePoolPtr pool;
+ PyObject *pyobj_pool;
+
+
+ if (!PyArg_ParseTuple(args, (char *)"O:virStoragePoolListVolumes", &pyobj_pool))
+ return(NULL);
+ pool = (virStoragePoolPtr) PyvirStoragePool_Get(pyobj_pool);
+
+ c_retval = virStoragePoolNumOfVolumes(pool);
+ if (c_retval < 0)
+ return VIR_PY_NONE;
+
+ if (c_retval) {
+ names = malloc(sizeof(*names) * c_retval);
+ if (!names)
+ return VIR_PY_NONE;
+ c_retval = virStoragePoolListVolumes(pool, names, c_retval);
+ if (c_retval < 0) {
+ free(names);
+ return VIR_PY_NONE;
+ }
+ }
+ py_retval = PyList_New(c_retval);
+ if (py_retval == NULL) {
+ if (names) {
+ for (i = 0;i < c_retval;i++)
+ free(names[i]);
+ free(names);
+ }
+ return VIR_PY_NONE;
+ }
+
+ 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_virStoragePoolGetAutostart(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ PyObject *py_retval;
+ int c_retval, autostart;
+ virStoragePoolPtr pool;
+ PyObject *pyobj_pool;
+
+ if (!PyArg_ParseTuple(args, (char *)"O:virStoragePoolGetAutostart", &pyobj_pool))
+ return(NULL);
+
+ pool = (virStoragePoolPtr) PyvirStoragePool_Get(pyobj_pool);
+
+ LIBVIRT_BEGIN_ALLOW_THREADS;
+ c_retval = virStoragePoolGetAutostart(pool, &autostart);
+ LIBVIRT_END_ALLOW_THREADS;
+
+ if (c_retval < 0)
+ return VIR_PY_NONE;
+
+ py_retval = libvirt_intWrap(autostart);
+ return(py_retval);
+}
+
+static PyObject *
+libvirt_virStoragePoolGetInfo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ PyObject *py_retval;
+ int c_retval;
+ virStoragePoolPtr pool;
+ PyObject *pyobj_pool;
+ virStoragePoolInfo info;
+
+ if (!PyArg_ParseTuple(args, (char *)"O:virStoragePoolGetInfo", &pyobj_pool))
+ return(NULL);
+ pool = (virStoragePoolPtr) PyvirStoragePool_Get(pyobj_pool);
+
+ LIBVIRT_BEGIN_ALLOW_THREADS;
+ c_retval = virStoragePoolGetInfo(pool, &info);
+ LIBVIRT_END_ALLOW_THREADS;
+ if (c_retval < 0)
+ return VIR_PY_NONE;
+
+ if ((py_retval = PyList_New(4)) == NULL)
+ return VIR_PY_NONE;
+
+ PyList_SetItem(py_retval, 0, libvirt_intWrap((int) info.state));
+ PyList_SetItem(py_retval, 1,
+ libvirt_longlongWrap((unsigned long long) info.capacity));
+ PyList_SetItem(py_retval, 2,
+ libvirt_longlongWrap((unsigned long long) info.allocation));
+ PyList_SetItem(py_retval, 3,
+ libvirt_longlongWrap((unsigned long long) info.available));
+ return(py_retval);
+}
+
+
+static PyObject *
+libvirt_virStorageVolGetInfo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ PyObject *py_retval;
+ int c_retval;
+ virStorageVolPtr pool;
+ PyObject *pyobj_pool;
+ virStorageVolInfo info;
+
+ if (!PyArg_ParseTuple(args, (char *)"O:virStorageVolGetInfo", &pyobj_pool))
+ return(NULL);
+ pool = (virStorageVolPtr) PyvirStorageVol_Get(pyobj_pool);
+
+ LIBVIRT_BEGIN_ALLOW_THREADS;
+ c_retval = virStorageVolGetInfo(pool, &info);
+ LIBVIRT_END_ALLOW_THREADS;
+ if (c_retval < 0)
+ return VIR_PY_NONE;
+
+ if ((py_retval = PyList_New(3)) == NULL)
+ return VIR_PY_NONE;
+ PyList_SetItem(py_retval, 0, libvirt_intWrap((int) info.type));
+ PyList_SetItem(py_retval, 1,
+ libvirt_longlongWrap((unsigned long long) info.capacity));
+ PyList_SetItem(py_retval, 2,
+ libvirt_longlongWrap((unsigned long long) info.allocation));
+ return(py_retval);
+}
+
+static PyObject *
+libvirt_virStoragePoolGetUUID(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ PyObject *py_retval;
+ unsigned char uuid[VIR_UUID_BUFLEN];
+ virStoragePoolPtr pool;
+ PyObject *pyobj_pool;
+ int c_retval;
+
+ if (!PyArg_ParseTuple(args, (char *)"O:virStoragePoolGetUUID", &pyobj_pool))
+ return(NULL);
+ pool = (virStoragePoolPtr) PyvirStoragePool_Get(pyobj_pool);
+
+ if (pool == NULL)
+ return VIR_PY_NONE;
+ LIBVIRT_BEGIN_ALLOW_THREADS;
+ c_retval = virStoragePoolGetUUID(pool, &uuid[0]);
+ LIBVIRT_END_ALLOW_THREADS;
+
+ if (c_retval < 0)
+ return VIR_PY_NONE;
+
+ py_retval = PyString_FromStringAndSize((char *) &uuid[0], VIR_UUID_BUFLEN);
+
+ return(py_retval);
+}
+
+
+static PyObject *
+libvirt_virStoragePoolLookupByUUID(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ PyObject *py_retval;
+ virStoragePoolPtr c_retval;
+ virConnectPtr conn;
+ PyObject *pyobj_conn;
+ unsigned char * uuid;
+ int len;
+
+ if (!PyArg_ParseTuple(args, (char *)"Oz#:virStoragePoolLookupByUUID", &pyobj_conn, &uuid, &len))
+ return(NULL);
+ conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn);
+
+ if ((uuid == NULL) || (len != VIR_UUID_BUFLEN))
+ return VIR_PY_NONE;
+
+ LIBVIRT_BEGIN_ALLOW_THREADS;
+ c_retval = virStoragePoolLookupByUUID(conn, uuid);
+ LIBVIRT_END_ALLOW_THREADS;
+ py_retval = libvirt_virStoragePoolPtrWrap((virStoragePoolPtr) c_retval);
+ return(py_retval);
+}
+
+
+
/************************************************************************
* *
* The registration stuff *
{(char *) "virDomainSetSchedulerParameters", libvirt_virDomainSetSchedulerParameters, METH_VARARGS, NULL},
{(char *) "virDomainGetVcpus", libvirt_virDomainGetVcpus, METH_VARARGS, NULL},
{(char *) "virDomainPinVcpu", libvirt_virDomainPinVcpu, METH_VARARGS, NULL},
+ {(char *) "virConnectListStoragePools", libvirt_virConnectListStoragePools, METH_VARARGS, NULL},
+ {(char *) "virConnectListDefinedStoragePools", libvirt_virConnectListDefinedStoragePools, METH_VARARGS, NULL},
+ {(char *) "virStoragePoolGetAutostart", libvirt_virStoragePoolGetAutostart, METH_VARARGS, NULL},
+ {(char *) "virStoragePoolListVolumes", libvirt_virStoragePoolListVolumes, METH_VARARGS, NULL},
+ {(char *) "virStoragePoolGetInfo", libvirt_virStoragePoolGetInfo, METH_VARARGS, NULL},
+ {(char *) "virStorageVolGetInfo", libvirt_virStorageVolGetInfo, METH_VARARGS, NULL},
+ {(char *) "virStoragePoolGetUUID", libvirt_virStoragePoolGetUUID, METH_VARARGS, NULL},
+ {(char *) "virStoragePoolLookupByUUID", libvirt_virStoragePoolLookupByUUID, METH_VARARGS, NULL},
{NULL, NULL, 0, NULL}
};