On 03/12/2016 10:39 AM, Dmitry Andreev wrote:
Reverting to a snapshot may change domain configuration. New
configuration should be saved if domain has persistent flag.
VIR_DOMAIN_EVENT_DEFINED_FROM_SNAPSHOT is emitted in case of
configuration update.
---
src/qemu/qemu_driver.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index a0d6596..edf39d9 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -15546,6 +15546,15 @@ qemuDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
} else if (snap) {
snap->def->current = false;
}
+ if (ret == 0 && config && vm->persistent &&
+ !(ret = virDomainSaveConfig(cfg->configDir, driver->caps,
+ vm->newDef ? vm->newDef : vm->def))) {
+ detail = VIR_DOMAIN_EVENT_DEFINED_FROM_SNAPSHOT;
+ qemuDomainEventQueue(driver,
+ virDomainEventLifecycleNewFromObj(vm,
+ VIR_DOMAIN_EVENT_DEFINED,
+ detail));
+ }
if (event) {
qemuDomainEventQueue(driver, event);
qemuDomainEventQueue(driver, event2);
I was a bit confused by this at first, since you are conditionalizing on
'config' and I thought we only AssignDef'd it for certain code paths... but
indeed if config is present we always assign it to some part of the VM. I
tested briefly with virt-manager too and this seems to fix things.
ACK and pushed. Thanks!
- Cole