
On 5/23/19 11:33 AM, Daniel P. Berrangé wrote:
The various steps involved in reconnecting to a domain may cause updates to the virDomainObj struct that need to be reflected in the saved status file.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Laine Stump <laine@laine.org>
--- src/libxl/libxl_driver.c | 3 +++ src/lxc/lxc_process.c | 5 +++++ 2 files changed, 8 insertions(+)
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index e2819eb0cc..2adb604f0f 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -454,6 +454,9 @@ libxlReconnectDomain(virDomainObjPtr vm,
libxlReconnectNotifyNets(vm->def);
+ if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0) + VIR_WARN("Cannot update XML for running Xen guest %s", vm->def->name); + /* now that we know it's reconnected call the hook if present */ if (virHookPresent(VIR_HOOK_DRIVER_LIBXL) && STRNEQ("Domain-0", vm->def->name)) { diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c index b59cbbaba5..714eef20c8 100644 --- a/src/lxc/lxc_process.c +++ b/src/lxc/lxc_process.c @@ -1680,6 +1680,7 @@ virLXCProcessReconnectDomain(virDomainObjPtr vm, { virLXCDriverPtr driver = opaque; virLXCDomainObjPrivatePtr priv; + virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver); int ret = -1;
virObjectLock(vm); @@ -1722,6 +1723,9 @@ virLXCProcessReconnectDomain(virDomainObjPtr vm,
virLXCProcessReconnectNotifyNets(vm->def);
+ if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) + VIR_WARN("Cannot update XML for running LXC guest %s", vm->def->name); + /* now that we know it's reconnected call the hook if present */ if (virHookPresent(VIR_HOOK_DRIVER_LXC)) { char *xml = virDomainDefFormat(vm->def, driver->caps, 0); @@ -1742,6 +1746,7 @@ virLXCProcessReconnectDomain(virDomainObjPtr vm,
ret = 0; cleanup: + virObjectUnref(cfg); virObjectUnlock(vm); return ret;