On Wed, Jun 13, 2018 at 09:02:12AM +0200, Ján Tomko wrote:
On Tue, Jun 12, 2018 at 04:23:37PM +0200, Erik Skultety wrote:
> Libvirt recently introduced support for getting launch security
> parameters, most notably AMD SEV VM memory measurement. This API can't
> be generated as it's using typed parameters which we need to allocate.
>
> Signed-off-by: Erik Skultety <eskultet(a)redhat.com>
> ---
> generator.py | 1 +
> libvirt-override-api.xml | 6 ++++++
> libvirt-override.c | 39 +++++++++++++++++++++++++++++++++++++++
> 3 files changed, 46 insertions(+)
>
> diff --git a/generator.py b/generator.py
> index b7d96a1..643d1b4 100755
> --- a/generator.py
> +++ b/generator.py
> @@ -489,6 +489,7 @@ skip_impl = (
> 'virDomainSetPerfEvents',
> 'virDomainGetGuestVcpus',
> 'virConnectBaselineHypervisorCPU',
> + 'virDomainGetLaunchSecurityInfo',
> )
>
> lxc_skip_impl = (
> diff --git a/libvirt-override-api.xml b/libvirt-override-api.xml
> index 36d3577..7137237 100644
> --- a/libvirt-override-api.xml
> +++ b/libvirt-override-api.xml
> @@ -728,5 +728,11 @@
> <arg name='xmlCPUs' type='const char **' info='array of
XML descriptions of CPUs'/>
> <arg name='flags' type='unsigned int' info='bitwise-OR
of virConnectBaselineCPUFlags'/>
> </function>
> + <function name='virDomainGetLaunchSecurityInfo'
file='python'>
> + <info>Get launch security info for a domain</info>
> + <return type='char *' info='None in case of error, returns a
dictionary of params'/>
Indentation is off.
> + <arg name='domain' type='virDomainPtr' info='pointer
to domain object'/>
> + <arg name='flags' type='int' info='unused, always pass
0'/>
Here too.
> + </function>
> </symbols>
> </api>
> diff --git a/libvirt-override.c b/libvirt-override.c
> index 2f2c4ff..5de8693 100644
> --- a/libvirt-override.c
> +++ b/libvirt-override.c
> @@ -9763,6 +9763,42 @@ libvirt_virConnectBaselineHypervisorCPU(PyObject *self
ATTRIBUTE_UNUSED,
> #endif /* LIBVIR_CHECK_VERSION(4, 4, 0) */
>
>
> +#if LIBVIR_CHECK_VERSION(4, 5, 0)
> +static PyObject *
> +libvirt_virDomainGetLaunchSecurityInfo(PyObject *self ATTRIBUTE_UNUSED,
> + PyObject *args)
> +{
> + PyObject *pyobj_dom = NULL;
> + PyObject *ret = NULL;
> +
> + virDomainPtr dom = NULL;
> + virTypedParameterPtr params = NULL;
> + int nparams = 0;
> + unsigned int flags = 0;
> + int i_retval;
> +
> + if (!PyArg_ParseTuple(args, (char
*)"OI:virDomainGetLaunchSecurityInfo",
> + &pyobj_dom, &flags))
> + return NULL;
> + dom = (virDomainPtr) PyvirDomain_Get(pyobj_dom);
> +
> + LIBVIRT_BEGIN_ALLOW_THREADS;
> + i_retval = virDomainGetLaunchSecurityInfo(dom, params, nparams, flags);
libvirt-override.c:9786:52: warning: passing argument 2 of
‘virDomainGetLaunchSecurityInfo’ from incompatible pointer type
[-Wincompatible-pointer-types]
i_retval = virDomainGetLaunchSecurityInfo(dom, params, nparams, flags);
^~~~~~
Are you sure you tried bulding it against git libvirt?
Sigh...I didn't have a freshly generated libvirt-api.xml in libvirt repo, so
python ignored it, I'll respin shortly
Erik