[libvirt] [PATCH 12/12] qemu: Assign device addresses in PostParse

Peter Krempa pkrempa at redhat.com
Fri Jan 8 11:35:20 UTC 2016


On Thu, Jan 07, 2016 at 22:50:06 -0500, Cole Robinson wrote:
> In order to make this work, we need to short circuit the normal
> virDomainDefPostParse ordering, and manually add stock devices
> ourselves, since we need them in the XML before assigning addresses.
> 
> There's a bit of test suite churn due to extra XML output, and validation
> happening at different call sites, but it all looks correct to me.
> 
> There's still quite a few manual callers of qemuDomainAssignAddresses
> that could be dropped too but it would need additional testing.
> ---
>  src/qemu/qemu_domain.c                             | 10 +++++++
>  src/qemu/qemu_driver.c                             |  9 ------
>  .../qemuxml2argvdata/qemuxml2argv-pseries-disk.xml |  4 ++-
>  tests/qemuxml2argvtest.c                           | 12 ++------
>  .../qemuxml2xmlout-channel-virtio-auto.xml         |  9 +++---
>  .../qemuxml2xmlout-disk-scsi-vscsi.xml             | 35 ++++++++++++++++++++++
>  .../qemuxml2xmlout-panic-pseries.xml               | 30 +++++++++++++++++++
>  .../qemuxml2xmlout-pseries-panic-missing.xml       |  4 +--
>  .../qemuxml2xmlout-pseries-panic-no-address.xml    |  4 +--
>  tests/qemuxml2xmltest.c                            | 10 +++++--
>  10 files changed, 97 insertions(+), 30 deletions(-)
>  create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-scsi-vscsi.xml
>  create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-panic-pseries.xml
> 
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index a981310..e0520ab 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -1249,6 +1249,16 @@ qemuDomainDefPostParse(virDomainDefPtr def,
>      if (virSecurityManagerVerify(driver->securityManager, def) < 0)
>          goto cleanup;
>  
> +    /* Device defaults are normally set after calling the driver specific
> +       PostParse routine (this function), but we need them earlier. */
> +    if (virDomainDefPostParseDevices(def, caps, driver->xmlopt) < 0)
> +        goto cleanup;

NACK to this, this would create a possibly dangerous situation by
encouraging others to call the post parse callback handlers from
themeself.

If it's necessary to do two passes of post parse stuff, then please add
a new callback pointer for it.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20160108/cbbf8774/attachment-0001.sig>


More information about the libvir-list mailing list