[libvirt] [PATCH 3/3] qemu: Emit event on lease attach/detach

Michal Privoznik mprivozn at redhat.com
Fri Apr 5 07:57:38 UTC 2019


https://bugzilla.redhat.com/show_bug.cgi?id=1639228

Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
---
 src/qemu/qemu_driver.c  | 7 ++++++-
 src/qemu/qemu_hotplug.c | 7 +++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 6eabcfce18..dad5fff6a8 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -7862,8 +7862,13 @@ qemuDomainAttachDeviceLive(virDomainObjPtr vm,
     case VIR_DOMAIN_DEVICE_LEASE:
         ret = qemuDomainAttachLease(driver, vm,
                                     dev->data.lease);
-        if (ret == 0)
+        if (ret == 0) {
+            event = virDomainEventLeaseChangeNewFromObj(vm,
+                                                        VIR_CONNECT_DOMAIN_EVENT_LEASE_ACTION_ATTACH,
+                                                        dev->data.lease->lockspace,
+                                                        dev->data.lease->key);
             dev->data.lease = NULL;
+        }
         break;
 
     case VIR_DOMAIN_DEVICE_NET:
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 34249bd030..10dee24724 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -5934,6 +5934,7 @@ qemuDomainDetachDeviceLease(virQEMUDriverPtr driver,
                             virDomainLeaseDefPtr lease)
 {
     virDomainLeaseDefPtr det_lease;
+    virObjectEventPtr event = NULL;
     int idx;
 
     if ((idx = virDomainLeaseIndex(vm->def, lease)) < 0) {
@@ -5946,6 +5947,12 @@ qemuDomainDetachDeviceLease(virQEMUDriverPtr driver,
     if (virDomainLockLeaseDetach(driver->lockManager, vm, lease) < 0)
         return -1;
 
+    event = virDomainEventLeaseChangeNewFromObj(vm,
+                                                VIR_CONNECT_DOMAIN_EVENT_LEASE_ACTION_DETACH,
+                                                lease->lockspace,
+                                                lease->key);
+    virObjectEventStateQueue(driver->domainEventState, event);
+
     det_lease = virDomainLeaseRemoveAt(vm->def, idx);
     virDomainLeaseDefFree(det_lease);
     return 0;
-- 
2.21.0




More information about the libvir-list mailing list