summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLai Jiangshan <laijs@cn.fujitsu.com>2011-07-21 17:21:10 +0800
committerEric Blake <eblake@redhat.com>2011-07-27 10:45:16 -0600
commit9032bdf0984ede108a6399b94707ad1ecb1e0b5b (patch)
treef8094f2e4e21bdfe447188bef4ca5f0be36281f8
parent4dea450820ff3616a0a4e8f14e43e48d31a75f77 (diff)
downloadlibvirt-python-split-9032bdf0984ede108a6399b94707ad1ecb1e0b5b.tar.gz
libvirt-python-split-9032bdf0984ede108a6399b94707ad1ecb1e0b5b.tar.xz
libvirt-python-split-9032bdf0984ede108a6399b94707ad1ecb1e0b5b.zip
send-key: Implement Python API
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
-rw-r--r--libvirt-override.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/libvirt-override.c b/libvirt-override.c
index bdff0e9..48b4697 100644
--- a/libvirt-override.c
+++ b/libvirt-override.c
@@ -4174,6 +4174,53 @@ libvirt_virStreamSend(PyObject *self ATTRIBUTE_UNUSED,
return py_retval;
}
+static PyObject *
+libvirt_virDomainSendKey(PyObject *self ATTRIBUTE_UNUSED,
+ PyObject *args)
+{
+ PyObject *py_retval;
+ virDomainPtr domain;
+ PyObject *pyobj_domain;
+ PyObject *pyobj_list;
+ int codeset;
+ int holdtime;
+ unsigned int flags;
+ int ret;
+ int i;
+ unsigned int keycodes[VIR_DOMAIN_SEND_KEY_MAX_KEYS];
+ unsigned int nkeycodes;
+
+ if (!PyArg_ParseTuple(args, (char *)"OiiOii:virDomainSendKey",
+ &pyobj_domain, &codeset, &holdtime, &pyobj_list,
+ &nkeycodes, &flags)) {
+ DEBUG("%s failed to parse tuple\n", __FUNCTION__);
+ return VIR_PY_INT_FAIL;
+ }
+ domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain);
+
+ if (!PyList_Check(pyobj_list)) {
+ return VIR_PY_INT_FAIL;
+ }
+
+ if (nkeycodes != PyList_Size(pyobj_list) ||
+ nkeycodes > VIR_DOMAIN_SEND_KEY_MAX_KEYS) {
+ return VIR_PY_INT_FAIL;
+ }
+
+ for (i = 0; i < nkeycodes; i++) {
+ keycodes[i] = (int)PyInt_AsLong(PyList_GetItem(pyobj_list, i));
+ }
+
+ LIBVIRT_BEGIN_ALLOW_THREADS;
+ ret = virDomainSendKey(domain, codeset, holdtime, keycodes, nkeycodes, flags);
+ LIBVIRT_END_ALLOW_THREADS;
+
+ DEBUG("virDomainSendKey ret=%d\n", ret);
+
+ py_retval = libvirt_intWrap(ret);
+ return py_retval;
+}
+
/************************************************************************
* *
* The registration stuff *
@@ -4262,6 +4309,7 @@ static PyMethodDef libvirtMethods[] = {
{(char *) "virDomainSnapshotListNames", libvirt_virDomainSnapshotListNames, METH_VARARGS, NULL},
{(char *) "virDomainRevertToSnapshot", libvirt_virDomainRevertToSnapshot, METH_VARARGS, NULL},
{(char *) "virDomainGetBlockJobInfo", libvirt_virDomainGetBlockJobInfo, METH_VARARGS, NULL},
+ {(char *) "virDomainSendKey", libvirt_virDomainSendKey, METH_VARARGS, NULL},
{NULL, NULL, 0, NULL}
};