提交 de51dc9c 编写于 作者: G Giuseppe Scrivano 提交者: Eric Blake

python: add bindings for virConnectGetCPUModelNames

Signed-off-by: NGiuseppe Scrivano <gscrivan@redhat.com>
Signed-off-by: NEric Blake <eblake@redhat.com>
上级 ea45b23c
......@@ -250,6 +250,7 @@ lxc_functions_failed = []
qemu_functions_failed = []
functions_skipped = [
"virConnectListDomains",
"virConnectGetCPUModelNames",
]
lxc_functions_skipped = []
qemu_functions_skipped = []
......@@ -366,7 +367,6 @@ foreign_encoding_args = (
# Class methods which are written by hand in libvirt.c but the Python-level
# code is still automatically generated (so they are not in skip_function()).
skip_impl = (
"virConnectGetCPUModelNames",
'virConnectGetVersion',
'virConnectGetLibVersion',
'virConnectListDomainsID',
......
......@@ -476,6 +476,13 @@
<arg name='xmlCPUs' type='const char **' info='array of XML descriptions of host CPUs'/>
<arg name='flags' type='unsigned int' info='fine-tuning flags, currently unused, pass 0.'/>
</function>
<function name='virConnectGetCPUModelNames' file='python'>
<info>Get the list of supported CPU models.</info>
<return type='char *' info='list of supported CPU models'/>
<arg name='conn' type='virConnectPtr' info='virConnect connection'/>
<arg name='arch' type='const char *' info='arch'/>
<arg name='flags' type='unsigned int' info='fine-tuning flags, currently unused, pass 0.'/>
</function>
<function name='virDomainSnapshotListNames' file='python'>
<info>collect the list of snapshot names for the given domain</info>
<arg name='dom' type='virDomainPtr' info='pointer to the domain'/>
......
......@@ -2276,6 +2276,58 @@ libvirt_virConnectGetVersion(PyObject *self ATTRIBUTE_UNUSED,
return PyInt_FromLong(hvVersion);
}
PyObject *
libvirt_virConnectGetCPUModelNames(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
{
int c_retval;
virConnectPtr conn;
PyObject *rv = NULL, *pyobj_conn;
char **models = NULL;
size_t i;
int flags = 0;
const char *arch = NULL;
if (!PyArg_ParseTuple(args, (char *)"Osi:virConnectGetCPUModelNames",
&pyobj_conn, &arch, &flags))
return NULL;
conn = (virConnectPtr) PyvirConnect_Get(pyobj_conn);
LIBVIRT_BEGIN_ALLOW_THREADS;
c_retval = virConnectGetCPUModelNames(conn, arch, &models, flags);
LIBVIRT_END_ALLOW_THREADS;
if (c_retval == -1)
return VIR_PY_INT_FAIL;
if ((rv = PyList_New(c_retval)) == NULL)
goto error;
for (i = 0; i < c_retval; i++) {
PyObject *str;
if ((str = PyString_FromString(models[i])) == NULL)
goto error;
PyList_SET_ITEM(rv, i, str);
}
done:
if (models) {
for (i = 0; i < c_retval; i++)
VIR_FREE(models[i]);
VIR_FREE(models);
}
return rv;
error:
Py_XDECREF(rv);
rv = VIR_PY_INT_FAIL;
goto done;
}
static PyObject *
libvirt_virConnectGetLibVersion(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args)
......@@ -7171,6 +7223,7 @@ static PyMethodDef libvirtMethods[] = {
#include "libvirt-export.c"
{(char *) "virGetVersion", libvirt_virGetVersion, METH_VARARGS, NULL},
{(char *) "virConnectGetVersion", libvirt_virConnectGetVersion, METH_VARARGS, NULL},
{(char *) "virConnectGetCPUModelNames", libvirt_virConnectGetCPUModelNames, METH_VARARGS, NULL},
{(char *) "virConnectGetLibVersion", libvirt_virConnectGetLibVersion, METH_VARARGS, NULL},
{(char *) "virConnectOpenAuth", libvirt_virConnectOpenAuth, METH_VARARGS, NULL},
{(char *) "virConnectListDomainsID", libvirt_virConnectListDomainsID, METH_VARARGS, NULL},
......
......@@ -207,3 +207,14 @@ def virEventAddTimeout(timeout, cb, opaque):
ret = libvirtmod.virEventAddTimeout(timeout, cbData)
if ret == -1: raise libvirtError ('virEventAddTimeout() failed')
return ret
def getCPUModelNames(conn, arch, flags=0):
"""
get the list of supported CPU models.
@conn: virConnect connection
@arch: Architecture
@flags: extra flags; not used yet, so callers should always pass 0.
"""
ret = libvirtmod.virConnectGetCPUModelNames(conn._o, arch, flags)
if ret == None: raise libvirtError ('virConnectGetCPUModelNames() failed', conn=self)
return ret
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册