diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index b56a5620c924520e5f4dd57273ddfe3d8fad7fa1..56a82df0503cdc9166e793b793498d5ef11b5012 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -7259,6 +7259,28 @@ qemuDomainSaveStatus(virDomainObjPtr obj) } +void +qemuDomainSaveConfig(virDomainObjPtr obj) +{ + virQEMUDriverPtr driver = QEMU_DOMAIN_PRIVATE(obj)->driver; + VIR_AUTOUNREF(virQEMUDriverConfigPtr) cfg = NULL; + virDomainDefPtr def = NULL; + + if (virDomainObjIsActive(obj)) + def = obj->newDef; + else + def = obj->def; + + if (!def) + return; + + cfg = virQEMUDriverGetConfig(driver); + + if (virDomainSaveConfig(cfg->configDir, driver->caps, def) < 0) + VIR_WARN("Failed to save config of vm %s", obj->def->name); +} + + void qemuDomainObjSetJobPhase(virQEMUDriverPtr driver, virDomainObjPtr obj, diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 43f5dd9a7b1b74388630e6b739b805f29733766b..5a4188ab651136a1854a0d445a14b9929eb7cf42 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -207,6 +207,7 @@ typedef void (*qemuDomainCleanupCallback)(virQEMUDriverPtr driver, #define QEMU_DOMAIN_MASTER_KEY_LEN 32 /* 32 bytes for 256 bit random key */ void qemuDomainSaveStatus(virDomainObjPtr obj); +void qemuDomainSaveConfig(virDomainObjPtr obj); /* helper data types for async device unplug */