[libvirt] [PATCH v3 4/6] qemuhotplug: Use a more generic function to update devices

Tomasz Flendrich t.flendrich at gmail.com
Thu Jul 28 19:53:59 UTC 2016


Previously, specific functions had to be used to test updating devices,
different for every device type. It was too much trouble and noone
bothered with it.
qemuDomainUpdateDeviceLiveAndConfig is now being used instead.
---
 src/qemu/qemu_driver.c     |  2 +-
 src/qemu/qemu_driverpriv.h |  7 +++++++
 tests/qemuhotplugtest.c    | 10 +++++++---
 3 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index f650766..b10efd4 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -8202,7 +8202,7 @@ static int qemuDomainAttachDevice(virDomainPtr dom, const char *xml)
                                        VIR_DOMAIN_AFFECT_LIVE);
 }
 
-static int
+int
 qemuDomainUpdateDeviceLiveAndConfig(virConnectPtr conn,
                                     virDomainObjPtr vm,
                                     virQEMUDriverPtr driver,
diff --git a/src/qemu/qemu_driverpriv.h b/src/qemu/qemu_driverpriv.h
index 943f0da..2a71a00 100644
--- a/src/qemu/qemu_driverpriv.h
+++ b/src/qemu/qemu_driverpriv.h
@@ -37,4 +37,11 @@ int qemuDomainDetachDeviceLiveAndConfig(virQEMUDriverPtr driver,
                                         const char *xml,
                                         unsigned int flags);
 
+int
+qemuDomainUpdateDeviceLiveAndConfig(virConnectPtr conn,
+                                    virDomainObjPtr vm,
+                                    virQEMUDriverPtr driver,
+                                    const char *xml,
+                                    unsigned int flags);
+
 #endif /* __QEMU_DRIVERPRIV_H__ */
diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c
index 13d2bdc..115dc1e 100644
--- a/tests/qemuhotplugtest.c
+++ b/tests/qemuhotplugtest.c
@@ -158,7 +158,9 @@ testQemuHotplugDetach(virDomainObjPtr vm,
 
 static int
 testQemuHotplugUpdate(virDomainObjPtr vm,
-                      virDomainDeviceDefPtr dev)
+                      virDomainDeviceDefPtr dev,
+                      const char *device_xml,
+                      virDomainModificationImpact impact)
 {
     int ret = -1;
 
@@ -169,7 +171,9 @@ testQemuHotplugUpdate(virDomainObjPtr vm,
      * required object, we can replace this code then. */
     switch (dev->type) {
     case VIR_DOMAIN_DEVICE_GRAPHICS:
-        ret = qemuDomainChangeGraphics(&driver, vm, dev->data.graphics);
+        /* conn is only used for storage lookup, so passing NULL should be safe. */
+        ret = qemuDomainUpdateDeviceLiveAndConfig(NULL, vm, &driver,
+                                                  device_xml, impact);
         break;
     default:
         VIR_TEST_VERBOSE("device type '%s' cannot be updated\n",
@@ -350,7 +354,7 @@ testQemuHotplug(const void *data)
         break;
 
     case UPDATE:
-        ret = testQemuHotplugUpdate(vm, dev);
+        ret = testQemuHotplugUpdate(vm, dev, device_xml, impact);
     }
 
  cleanup:
-- 
1.9.1




More information about the libvir-list mailing list