Re: [libvirt] [PATCH 4/5] Add virDomainQemuAgentCommand() support function to python module

2012-08-09 Thread Eric Blake
On 08/07/2012 06:05 PM, MATSUDA, Daiki wrote:
> Add virDomainQemuAgentCommand() support function to python module.
> 
>  generator.py  |1 +
>  libvirt-qemu-override-api.xml |8 
>  libvirt-qemu-override.c   |   31 +++
>  3 files changed, 40 insertions(+)

Normally, the diffstat should occur after a '---' line.  It does not
need to be part of the commit message (since git will regenerate it
correctly on the fly when browsing history).  I'm not sure why it is
showing up without '---', unless your 'git send-email' settings are off.

> 
> diff --git a/python/generator.py b/python/generator.py
> index 6559ece..3cec12b 100755
> --- a/python/generator.py
> +++ b/python/generator.py
> @@ -431,6 +431,7 @@ skip_impl = (
> 
>  qemu_skip_impl = (
>  'virDomainQemuMonitorCommand',
> +'virDomainQemuAgentCommand',

This hunk belongs in an earlier patch (right now, 3/5, but in reality
whenever you first document the function in libvirt-qemu.h), so that
'make check' can get past the python generation at each commit.

> +++ b/python/libvirt-qemu-override-api.xml
> @@ -8,5 +8,13 @@
>  
>  
>
> +  
> +Send a Guest Agent command to domain
> +

What should this return when the user didn't request output?

> +
> +
> +

Unlike the C code, you don't have a 'result' parameter that can be NULL
when you don't care about waiting for output.  But I guess timeout of 0
serves the same purpose, so we should be okay.

> +static PyObject *
> +libvirt_qemu_virDomainQemuAgentCommand(PyObject *self ATTRIBUTE_UNUSED,
> +   PyObject *args)
> +{
> +PyObject *py_retval;
> +char *result = NULL;
> +virDomainPtr domain;
> +PyObject *pyobj_domain;
> +int timeout;
> +unsigned int flags;
> +char *cmd;
> +int c_retval;
> +
> +if (!PyArg_ParseTuple(args, (char *)"Ozii:virDomainQemuAgentCommand",
> +  &pyobj_domain, &cmd, &timeout, &flags))
> +return NULL;
> +domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain);
> +
> +if (domain == NULL)
> +return VIR_PY_NONE;
> +LIBVIRT_BEGIN_ALLOW_THREADS;
> +c_retval = virDomainQemuAgentCommand(domain, cmd, &result, timeout, 
> flags);

The third arg needs to be 'timeout ? &result : NULL', when requesting no
timeout.

-- 
Eric Blake   ebl...@redhat.com+1-919-301-3266
Libvirt virtualization library http://libvirt.org



signature.asc
Description: OpenPGP digital signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

[libvirt] [PATCH 4/5] Add virDomainQemuAgentCommand() support function to python module

2012-08-07 Thread MATSUDA, Daiki
Add virDomainQemuAgentCommand() support function to python module.

 generator.py  |1 +
 libvirt-qemu-override-api.xml |8 
 libvirt-qemu-override.c   |   31 +++
 3 files changed, 40 insertions(+)

diff --git a/python/generator.py b/python/generator.py
index 6559ece..3cec12b 100755
--- a/python/generator.py
+++ b/python/generator.py
@@ -431,6 +431,7 @@ skip_impl = (

 qemu_skip_impl = (
 'virDomainQemuMonitorCommand',
+'virDomainQemuAgentCommand',
 )


diff --git a/python/libvirt-qemu-override-api.xml 
b/python/libvirt-qemu-override-api.xml
index d69acea..37759d0 100644
--- a/python/libvirt-qemu-override-api.xml
+++ b/python/libvirt-qemu-override-api.xml
@@ -8,5 +8,13 @@
 
 
   
+  
+Send a Guest Agent command to domain
+
+
+
+
+
+  
   
 
diff --git a/python/libvirt-qemu-override.c b/python/libvirt-qemu-override.c
index e532416..195aadc 100644
--- a/python/libvirt-qemu-override.c
+++ b/python/libvirt-qemu-override.c
@@ -82,6 +82,36 @@ libvirt_qemu_virDomainQemuMonitorCommand(PyObject *self 
ATTRIBUTE_UNUSED,
 return py_retval;
 }

+static PyObject *
+libvirt_qemu_virDomainQemuAgentCommand(PyObject *self ATTRIBUTE_UNUSED,
+   PyObject *args)
+{
+PyObject *py_retval;
+char *result = NULL;
+virDomainPtr domain;
+PyObject *pyobj_domain;
+int timeout;
+unsigned int flags;
+char *cmd;
+int c_retval;
+
+if (!PyArg_ParseTuple(args, (char *)"Ozii:virDomainQemuAgentCommand",
+  &pyobj_domain, &cmd, &timeout, &flags))
+return NULL;
+domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain);
+
+if (domain == NULL)
+return VIR_PY_NONE;
+LIBVIRT_BEGIN_ALLOW_THREADS;
+c_retval = virDomainQemuAgentCommand(domain, cmd, &result, timeout, flags);
+LIBVIRT_END_ALLOW_THREADS;
+
+if (c_retval < 0)
+return VIR_PY_NONE;
+
+py_retval = PyString_FromString(result);
+return py_retval;
+}
 /
  * *
  * The registration stuff  *
@@ -90,6 +120,7 @@ libvirt_qemu_virDomainQemuMonitorCommand(PyObject *self 
ATTRIBUTE_UNUSED,
 static PyMethodDef libvirtQemuMethods[] = {
 #include "libvirt-qemu-export.c"
 {(char *) "virDomainQemuMonitorCommand", 
libvirt_qemu_virDomainQemuMonitorCommand, METH_VARARGS, NULL},
+{(char *) "virDomainQemuAgentCommand", 
libvirt_qemu_virDomainQemuAgentCommand, METH_VARARGS, NULL},
 {NULL, NULL, 0, NULL}
 };

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list