mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-04-26 15:14:42 +00:00
* python/generator.py python/libvir.c python/libvirt-python-api.xml:
add a python binding for virNodeGetCellsFreeMemory Daniel
This commit is contained in:
parent
7ff9eebeba
commit
a56281c0a8
@ -1,3 +1,8 @@
|
|||||||
|
Fri Dec 7 09:39:41 CET 2007 Daniel Veillard <veillard@redhat.com>
|
||||||
|
|
||||||
|
* python/generator.py python/libvir.c python/libvirt-python-api.xml:
|
||||||
|
add a python binding for virNodeGetCellsFreeMemory
|
||||||
|
|
||||||
Thu Dec 6 12:41:18 CET 2007 Jim Meyering <meyering@redhat.com>
|
Thu Dec 6 12:41:18 CET 2007 Jim Meyering <meyering@redhat.com>
|
||||||
|
|
||||||
* qemud/qemud.c (qemudInitPaths): Remove unused code.
|
* qemud/qemud.c (qemudInitPaths): Remove unused code.
|
||||||
|
@ -278,6 +278,7 @@ skip_impl = (
|
|||||||
'virNetworkLookupByUUID',
|
'virNetworkLookupByUUID',
|
||||||
'virDomainBlockStats',
|
'virDomainBlockStats',
|
||||||
'virDomainInterfaceStats',
|
'virDomainInterfaceStats',
|
||||||
|
'virNodeGetCellsFreeMemory',
|
||||||
)
|
)
|
||||||
|
|
||||||
def skip_function(name):
|
def skip_function(name):
|
||||||
|
@ -27,6 +27,7 @@ PyObject *libvirt_virGetLastError(PyObject *self ATTRIBUTE_UNUSED, PyObject *arg
|
|||||||
PyObject *libvirt_virConnGetLastError(PyObject *self ATTRIBUTE_UNUSED, PyObject *args);
|
PyObject *libvirt_virConnGetLastError(PyObject *self ATTRIBUTE_UNUSED, PyObject *args);
|
||||||
PyObject * libvirt_virDomainBlockStats(PyObject *self ATTRIBUTE_UNUSED, PyObject *args);
|
PyObject * libvirt_virDomainBlockStats(PyObject *self ATTRIBUTE_UNUSED, PyObject *args);
|
||||||
PyObject * libvirt_virDomainInterfaceStats(PyObject *self ATTRIBUTE_UNUSED, PyObject *args);
|
PyObject * libvirt_virDomainInterfaceStats(PyObject *self ATTRIBUTE_UNUSED, PyObject *args);
|
||||||
|
PyObject * libvirt_virNodeGetCellsFreeMemory(PyObject *self ATTRIBUTE_UNUSED, PyObject *args);
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
* *
|
* *
|
||||||
@ -844,7 +845,45 @@ libvirt_virNetworkGetAutostart(PyObject *self ATTRIBUTE_UNUSED, PyObject *args)
|
|||||||
return(py_retval);
|
return(py_retval);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PyObject * libvirt_virNodeGetCellsFreeMemory(PyObject *self ATTRIBUTE_UNUSED,
|
||||||
|
PyObject *args)
|
||||||
|
{
|
||||||
|
PyObject *py_retval;
|
||||||
|
PyObject *pyobj_conn;
|
||||||
|
int startCell, maxCells, c_retval, i;
|
||||||
|
virConnectPtr conn;
|
||||||
|
unsigned long long *freeMems;
|
||||||
|
|
||||||
|
if (!PyArg_ParseTuple(args, (char *)"Oii:virNodeGetCellsFreeMemory", &pyobj_conn, &startCell, &maxCells))
|
||||||
|
return(NULL);
|
||||||
|
|
||||||
|
if ((startCell < 0) || (maxCells <= 0) || (startCell + maxCells > 10000))
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn);
|
||||||
|
freeMems = (unsigned long long *)
|
||||||
|
malloc(maxCells * sizeof(unsigned long long));
|
||||||
|
if (freeMems == NULL)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
LIBVIRT_BEGIN_ALLOW_THREADS;
|
||||||
|
c_retval = virNodeGetCellsFreeMemory(conn, freeMems, startCell, maxCells);
|
||||||
|
LIBVIRT_END_ALLOW_THREADS;
|
||||||
|
|
||||||
|
if (c_retval < 0) {
|
||||||
|
free(freeMems);
|
||||||
|
error:
|
||||||
|
Py_INCREF(Py_None);
|
||||||
|
return Py_None;
|
||||||
|
}
|
||||||
|
py_retval = PyList_New(c_retval);
|
||||||
|
for (i = 0;i < c_retval;i++) {
|
||||||
|
PyList_SetItem(py_retval, i,
|
||||||
|
libvirt_longlongWrap((long long) freeMems[i]));
|
||||||
|
}
|
||||||
|
free(freeMems);
|
||||||
|
return(py_retval);
|
||||||
|
}
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
* *
|
* *
|
||||||
@ -875,6 +914,7 @@ static PyMethodDef libvirtMethods[] = {
|
|||||||
{(char *) "virNetworkGetAutostart", libvirt_virNetworkGetAutostart, METH_VARARGS, NULL},
|
{(char *) "virNetworkGetAutostart", libvirt_virNetworkGetAutostart, METH_VARARGS, NULL},
|
||||||
{(char *) "virDomainBlockStats", libvirt_virDomainBlockStats, METH_VARARGS, NULL},
|
{(char *) "virDomainBlockStats", libvirt_virDomainBlockStats, METH_VARARGS, NULL},
|
||||||
{(char *) "virDomainInterfaceStats", libvirt_virDomainInterfaceStats, METH_VARARGS, NULL},
|
{(char *) "virDomainInterfaceStats", libvirt_virDomainInterfaceStats, METH_VARARGS, NULL},
|
||||||
|
{(char *) "virNodeGetCellsFreeMemory", libvirt_virNodeGetCellsFreeMemory, METH_VARARGS, NULL},
|
||||||
{NULL, NULL, 0, NULL}
|
{NULL, NULL, 0, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -75,5 +75,12 @@
|
|||||||
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
<arg name='domain' type='virDomainPtr' info='a domain object'/>
|
||||||
<arg name='path' type='char *' info='the path for the interface device'/>
|
<arg name='path' type='char *' info='the path for the interface device'/>
|
||||||
</function>
|
</function>
|
||||||
|
<function name="virNodeGetCellsFreeMemory" file='python'>
|
||||||
|
<info>Returns the availbale memory for a list of cells</info>
|
||||||
|
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
|
||||||
|
<arg name='startCell' type='int' info='first cell in the list'/>
|
||||||
|
<arg name='maxCells' type='int' info='number of cell in the list'/>
|
||||||
|
<return type='int *' info="the list available memory in the cells"/>
|
||||||
|
</function>
|
||||||
</symbols>
|
</symbols>
|
||||||
</api>
|
</api>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user