mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-02 01:45:17 +00:00
conf: add caps to virDomainObjFormat/SaveStatus
The virDomainObjFormat and virDomainSaveStatus methods both call into virDomainDefFormat, so should be providing a non-NULL virCapsPtr instance. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
parent
02a34d2af4
commit
1036ddadb2
@ -115,11 +115,15 @@ virBhyveProcessStart(virConnectPtr conn,
|
|||||||
bhyveConnPtr privconn = conn->privateData;
|
bhyveConnPtr privconn = conn->privateData;
|
||||||
bhyveDomainObjPrivatePtr priv = vm->privateData;
|
bhyveDomainObjPrivatePtr priv = vm->privateData;
|
||||||
int ret = -1, rc;
|
int ret = -1, rc;
|
||||||
|
virCapsPtr caps = NULL;
|
||||||
|
|
||||||
if (virAsprintf(&logfile, "%s/%s.log",
|
if (virAsprintf(&logfile, "%s/%s.log",
|
||||||
BHYVE_LOG_DIR, vm->def->name) < 0)
|
BHYVE_LOG_DIR, vm->def->name) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
caps = bhyveDriverGetCapabilities(privconn);
|
||||||
|
if (!caps)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
if ((logfd = open(logfile, O_WRONLY | O_APPEND | O_CREAT,
|
if ((logfd = open(logfile, O_WRONLY | O_APPEND | O_CREAT,
|
||||||
S_IRUSR | S_IWUSR)) < 0) {
|
S_IRUSR | S_IWUSR)) < 0) {
|
||||||
@ -215,12 +219,13 @@ virBhyveProcessStart(virConnectPtr conn,
|
|||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt,
|
if (virDomainSaveStatus(driver->xmlopt,
|
||||||
BHYVE_STATE_DIR,
|
BHYVE_STATE_DIR,
|
||||||
vm) < 0)
|
vm, caps) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
|
virObjectUnref(caps);
|
||||||
if (devicemap != NULL) {
|
if (devicemap != NULL) {
|
||||||
rc = unlink(devmap_file);
|
rc = unlink(devmap_file);
|
||||||
if (rc < 0 && errno != ENOENT)
|
if (rc < 0 && errno != ENOENT)
|
||||||
@ -362,6 +367,7 @@ virBhyveProcessReconnect(virDomainObjPtr vm,
|
|||||||
char *expected_proctitle = NULL;
|
char *expected_proctitle = NULL;
|
||||||
bhyveDomainObjPrivatePtr priv = vm->privateData;
|
bhyveDomainObjPrivatePtr priv = vm->privateData;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
virCapsPtr caps = NULL;
|
||||||
|
|
||||||
if (!virDomainObjIsActive(vm))
|
if (!virDomainObjIsActive(vm))
|
||||||
return 0;
|
return 0;
|
||||||
@ -369,6 +375,10 @@ virBhyveProcessReconnect(virDomainObjPtr vm,
|
|||||||
if (!vm->pid)
|
if (!vm->pid)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
caps = bhyveDriverGetCapabilities(privconn);
|
||||||
|
if (!caps)
|
||||||
|
return -1;
|
||||||
|
|
||||||
virObjectLock(vm);
|
virObjectLock(vm);
|
||||||
|
|
||||||
kp = kvm_getprocs(data->kd, KERN_PROC_PID, vm->pid, &nprocs);
|
kp = kvm_getprocs(data->kd, KERN_PROC_PID, vm->pid, &nprocs);
|
||||||
@ -397,9 +407,10 @@ virBhyveProcessReconnect(virDomainObjPtr vm,
|
|||||||
VIR_DOMAIN_SHUTOFF_UNKNOWN);
|
VIR_DOMAIN_SHUTOFF_UNKNOWN);
|
||||||
ignore_value(virDomainSaveStatus(data->driver->xmlopt,
|
ignore_value(virDomainSaveStatus(data->driver->xmlopt,
|
||||||
BHYVE_STATE_DIR,
|
BHYVE_STATE_DIR,
|
||||||
vm));
|
vm, caps));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virObjectUnref(caps);
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
VIR_FREE(expected_proctitle);
|
VIR_FREE(expected_proctitle);
|
||||||
|
|
||||||
|
@ -22516,6 +22516,7 @@ virDomainDefFormat(virDomainDefPtr def, virCapsPtr caps, unsigned int flags)
|
|||||||
char *
|
char *
|
||||||
virDomainObjFormat(virDomainXMLOptionPtr xmlopt,
|
virDomainObjFormat(virDomainXMLOptionPtr xmlopt,
|
||||||
virDomainObjPtr obj,
|
virDomainObjPtr obj,
|
||||||
|
virCapsPtr caps,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||||
@ -22540,7 +22541,7 @@ virDomainObjFormat(virDomainXMLOptionPtr xmlopt,
|
|||||||
xmlopt->privateData.format(&buf, obj) < 0)
|
xmlopt->privateData.format(&buf, obj) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (virDomainDefFormatInternal(obj->def, NULL, flags, &buf) < 0)
|
if (virDomainDefFormatInternal(obj->def, caps, flags, &buf) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
virBufferAdjustIndent(&buf, -2);
|
virBufferAdjustIndent(&buf, -2);
|
||||||
@ -22746,7 +22747,8 @@ virDomainSaveConfig(const char *configDir,
|
|||||||
int
|
int
|
||||||
virDomainSaveStatus(virDomainXMLOptionPtr xmlopt,
|
virDomainSaveStatus(virDomainXMLOptionPtr xmlopt,
|
||||||
const char *statusDir,
|
const char *statusDir,
|
||||||
virDomainObjPtr obj)
|
virDomainObjPtr obj,
|
||||||
|
virCapsPtr caps)
|
||||||
{
|
{
|
||||||
unsigned int flags = (VIR_DOMAIN_DEF_FORMAT_SECURE |
|
unsigned int flags = (VIR_DOMAIN_DEF_FORMAT_SECURE |
|
||||||
VIR_DOMAIN_DEF_FORMAT_STATUS |
|
VIR_DOMAIN_DEF_FORMAT_STATUS |
|
||||||
@ -22757,7 +22759,7 @@ virDomainSaveStatus(virDomainXMLOptionPtr xmlopt,
|
|||||||
int ret = -1;
|
int ret = -1;
|
||||||
char *xml;
|
char *xml;
|
||||||
|
|
||||||
if (!(xml = virDomainObjFormat(xmlopt, obj, flags)))
|
if (!(xml = virDomainObjFormat(xmlopt, obj, caps, flags)))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (virDomainSaveXML(statusDir, obj->def, xml))
|
if (virDomainSaveXML(statusDir, obj->def, xml))
|
||||||
@ -23906,7 +23908,7 @@ virDomainObjSetMetadata(virDomainObjPtr vm,
|
|||||||
if (virDomainDefSetMetadata(vm->def, type, metadata, key, uri) < 0)
|
if (virDomainDefSetMetadata(vm->def, type, metadata, key, uri) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (virDomainSaveStatus(xmlopt, stateDir, vm) < 0)
|
if (virDomainSaveStatus(xmlopt, stateDir, vm, caps) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2738,6 +2738,7 @@ char *virDomainDefFormat(virDomainDefPtr def,
|
|||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
char *virDomainObjFormat(virDomainXMLOptionPtr xmlopt,
|
char *virDomainObjFormat(virDomainXMLOptionPtr xmlopt,
|
||||||
virDomainObjPtr obj,
|
virDomainObjPtr obj,
|
||||||
|
virCapsPtr caps,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
int virDomainDefFormatInternal(virDomainDefPtr def,
|
int virDomainDefFormatInternal(virDomainDefPtr def,
|
||||||
virCapsPtr caps,
|
virCapsPtr caps,
|
||||||
@ -2912,7 +2913,8 @@ int virDomainSaveConfig(const char *configDir,
|
|||||||
virDomainDefPtr def);
|
virDomainDefPtr def);
|
||||||
int virDomainSaveStatus(virDomainXMLOptionPtr xmlopt,
|
int virDomainSaveStatus(virDomainXMLOptionPtr xmlopt,
|
||||||
const char *statusDir,
|
const char *statusDir,
|
||||||
virDomainObjPtr obj) ATTRIBUTE_RETURN_CHECK;
|
virDomainObjPtr obj,
|
||||||
|
virCapsPtr caps) ATTRIBUTE_RETURN_CHECK;
|
||||||
|
|
||||||
typedef void (*virDomainLoadConfigNotify)(virDomainObjPtr dom,
|
typedef void (*virDomainLoadConfigNotify)(virDomainObjPtr dom,
|
||||||
int newDomain,
|
int newDomain,
|
||||||
|
@ -1086,7 +1086,7 @@ libxlDomainStart(libxlDriverPrivatePtr driver, virDomainObjPtr vm,
|
|||||||
virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, VIR_DOMAIN_PAUSED_USER);
|
virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, VIR_DOMAIN_PAUSED_USER);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0)
|
||||||
goto cleanup_dom;
|
goto cleanup_dom;
|
||||||
|
|
||||||
if (virAtomicIntInc(&driver->nactive) == 1 && driver->inhibitCallback)
|
if (virAtomicIntInc(&driver->nactive) == 1 && driver->inhibitCallback)
|
||||||
|
@ -1139,7 +1139,7 @@ libxlDomainSuspend(virDomainPtr dom)
|
|||||||
VIR_DOMAIN_EVENT_SUSPENDED_PAUSED);
|
VIR_DOMAIN_EVENT_SUSPENDED_PAUSED);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
@ -1198,7 +1198,7 @@ libxlDomainResume(virDomainPtr dom)
|
|||||||
VIR_DOMAIN_EVENT_RESUMED_UNPAUSED);
|
VIR_DOMAIN_EVENT_RESUMED_UNPAUSED);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
@ -2231,7 +2231,7 @@ libxlDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
if (flags & VIR_DOMAIN_VCPU_LIVE) {
|
if (flags & VIR_DOMAIN_VCPU_LIVE) {
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0) {
|
||||||
VIR_WARN("Unable to save status on vm %s after changing vcpus",
|
VIR_WARN("Unable to save status on vm %s after changing vcpus",
|
||||||
vm->def->name);
|
vm->def->name);
|
||||||
}
|
}
|
||||||
@ -2392,7 +2392,7 @@ libxlDomainPinVcpuFlags(virDomainPtr dom, unsigned int vcpu,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
if (flags & VIR_DOMAIN_AFFECT_LIVE) {
|
if (flags & VIR_DOMAIN_AFFECT_LIVE) {
|
||||||
ret = virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm);
|
ret = virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps);
|
||||||
} else if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
|
} else if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
|
||||||
ret = virDomainSaveConfig(cfg->configDir, cfg->caps, targetDef);
|
ret = virDomainSaveConfig(cfg->configDir, cfg->caps, targetDef);
|
||||||
}
|
}
|
||||||
@ -3742,7 +3742,7 @@ libxlDomainAttachDeviceFlags(virDomainPtr dom, const char *xml,
|
|||||||
* update domain status forcibly because the domain status may be
|
* update domain status forcibly because the domain status may be
|
||||||
* changed even if we attach the device failed.
|
* changed even if we attach the device failed.
|
||||||
*/
|
*/
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3850,7 +3850,7 @@ libxlDomainDetachDeviceFlags(virDomainPtr dom, const char *xml,
|
|||||||
* update domain status forcibly because the domain status may be
|
* update domain status forcibly because the domain status may be
|
||||||
* changed even if we attach the device failed.
|
* changed even if we attach the device failed.
|
||||||
*/
|
*/
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3957,7 +3957,7 @@ libxlDomainUpdateDeviceFlags(virDomainPtr dom, const char *xml,
|
|||||||
* update domain status forcibly because the domain status may be
|
* update domain status forcibly because the domain status may be
|
||||||
* changed even if we attach the device failed.
|
* changed even if we attach the device failed.
|
||||||
*/
|
*/
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0)
|
||||||
ret = -1;
|
ret = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -564,7 +564,7 @@ libxlDomainMigrationFinish(virConnectPtr dconn,
|
|||||||
event = NULL;
|
event = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
dom = virGetDomain(dconn, vm->def->name, vm->def->uuid);
|
dom = virGetDomain(dconn, vm->def->name, vm->def->uuid);
|
||||||
@ -607,7 +607,7 @@ libxlDomainMigrationConfirm(libxlDriverPrivatePtr driver,
|
|||||||
VIR_DOMAIN_PAUSED_MIGRATION);
|
VIR_DOMAIN_PAUSED_MIGRATION);
|
||||||
event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_SUSPENDED,
|
event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_SUSPENDED,
|
||||||
VIR_DOMAIN_EVENT_SUSPENDED_MIGRATED);
|
VIR_DOMAIN_EVENT_SUSPENDED_MIGRATED);
|
||||||
ignore_value(virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm));
|
ignore_value(virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps));
|
||||||
}
|
}
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
@ -765,7 +765,7 @@ static int lxcDomainSetMemoryFlags(virDomainPtr dom, unsigned long newmem,
|
|||||||
}
|
}
|
||||||
|
|
||||||
vm->def->mem.cur_balloon = newmem;
|
vm->def->mem.cur_balloon = newmem;
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2022,7 +2022,7 @@ lxcDomainSetSchedulerParametersFlags(virDomainPtr dom,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
|
|
||||||
@ -3402,7 +3402,7 @@ static int lxcDomainSuspend(virDomainPtr dom)
|
|||||||
VIR_DOMAIN_EVENT_SUSPENDED_PAUSED);
|
VIR_DOMAIN_EVENT_SUSPENDED_PAUSED);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
@ -3452,7 +3452,7 @@ static int lxcDomainResume(virDomainPtr dom)
|
|||||||
VIR_DOMAIN_EVENT_RESUMED_UNPAUSED);
|
VIR_DOMAIN_EVENT_RESUMED_UNPAUSED);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
@ -5075,7 +5075,7 @@ static int lxcDomainAttachDeviceFlags(virDomainPtr dom,
|
|||||||
* changed even if we failed to attach the device. For example,
|
* changed even if we failed to attach the device. For example,
|
||||||
* a new controller may be created.
|
* a new controller may be created.
|
||||||
*/
|
*/
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
|
||||||
ret = -1;
|
ret = -1;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -5317,7 +5317,7 @@ static int lxcDomainDetachDeviceFlags(virDomainPtr dom,
|
|||||||
* changed even if we failed to attach the device. For example,
|
* changed even if we failed to attach the device. For example,
|
||||||
* a new controller may be created.
|
* a new controller may be created.
|
||||||
*/
|
*/
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
|
||||||
ret = -1;
|
ret = -1;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
@ -767,7 +767,7 @@ static void virLXCProcessMonitorInitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
|
|||||||
}
|
}
|
||||||
virDomainAuditInit(vm, initpid, inode);
|
virDomainAuditInit(vm, initpid, inode);
|
||||||
|
|
||||||
if (virDomainSaveStatus(lxc_driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(lxc_driver->xmlopt, cfg->stateDir, vm, lxc_driver->caps) < 0)
|
||||||
VIR_WARN("Cannot update XML with PID for LXC %s", vm->def->name);
|
VIR_WARN("Cannot update XML with PID for LXC %s", vm->def->name);
|
||||||
|
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
@ -1469,7 +1469,7 @@ int virLXCProcessStart(virConnectPtr conn,
|
|||||||
|
|
||||||
/* Write domain status to disk for the controller to
|
/* Write domain status to disk for the controller to
|
||||||
* read when it starts */
|
* read when it starts */
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
/* Allow the child to exec the controller */
|
/* Allow the child to exec the controller */
|
||||||
|
@ -185,7 +185,7 @@ qemuBlockJobEventProcess(virQEMUDriverPtr driver,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (save) {
|
if (save) {
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
VIR_WARN("Unable to save status on vm %s after block job",
|
VIR_WARN("Unable to save status on vm %s after block job",
|
||||||
vm->def->name);
|
vm->def->name);
|
||||||
if (persistDisk && virDomainSaveConfig(cfg->configDir,
|
if (persistDisk && virDomainSaveConfig(cfg->configDir,
|
||||||
|
@ -1489,7 +1489,7 @@ qemuDomainObjSaveJob(virQEMUDriverPtr driver, virDomainObjPtr obj)
|
|||||||
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
|
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
|
||||||
|
|
||||||
if (virDomainObjIsActive(obj)) {
|
if (virDomainObjIsActive(obj)) {
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, obj) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, obj, driver->caps) < 0)
|
||||||
VIR_WARN("Failed to save status on vm %s", obj->def->name);
|
VIR_WARN("Failed to save status on vm %s", obj->def->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2905,7 +2905,7 @@ qemuDomainSetFakeReboot(virQEMUDriverPtr driver,
|
|||||||
|
|
||||||
priv->fakeReboot = value;
|
priv->fakeReboot = value;
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
VIR_WARN("Failed to save status on vm %s", vm->def->name);
|
VIR_WARN("Failed to save status on vm %s", vm->def->name);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
|
@ -1932,7 +1932,7 @@ static int qemuDomainSuspend(virDomainPtr dom)
|
|||||||
eventDetail);
|
eventDetail);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
@ -1995,7 +1995,7 @@ static int qemuDomainResume(virDomainPtr dom)
|
|||||||
VIR_DOMAIN_EVENT_RESUMED,
|
VIR_DOMAIN_EVENT_RESUMED,
|
||||||
VIR_DOMAIN_EVENT_RESUMED_UNPAUSED);
|
VIR_DOMAIN_EVENT_RESUMED_UNPAUSED);
|
||||||
}
|
}
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
@ -2549,7 +2549,7 @@ static int qemuDomainSetMemoryStatsPeriod(virDomainPtr dom, int period,
|
|||||||
}
|
}
|
||||||
|
|
||||||
def->memballoon->period = period;
|
def->memballoon->period = period;
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4143,7 +4143,7 @@ processGuestPanicEvent(virQEMUDriverPtr driver,
|
|||||||
}
|
}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
|
||||||
VIR_WARN("Unable to save status on vm %s after state change",
|
VIR_WARN("Unable to save status on vm %s after state change",
|
||||||
vm->def->name);
|
vm->def->name);
|
||||||
}
|
}
|
||||||
@ -4177,7 +4177,7 @@ processDeviceDeletedEvent(virQEMUDriverPtr driver,
|
|||||||
if (qemuDomainRemoveDevice(driver, vm, &dev) < 0)
|
if (qemuDomainRemoveDevice(driver, vm, &dev) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
VIR_WARN("unable to save domain status after removing device %s",
|
VIR_WARN("unable to save domain status after removing device %s",
|
||||||
devAlias);
|
devAlias);
|
||||||
|
|
||||||
@ -4545,7 +4545,7 @@ processSerialChangedEvent(virQEMUDriverPtr driver,
|
|||||||
|
|
||||||
dev.data.chr->state = newstate;
|
dev.data.chr->state = newstate;
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
VIR_WARN("unable to save status of domain %s after updating state of "
|
VIR_WARN("unable to save status of domain %s after updating state of "
|
||||||
"channel %s", vm->def->name, devAlias);
|
"channel %s", vm->def->name, devAlias);
|
||||||
|
|
||||||
@ -5084,7 +5084,7 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5263,7 +5263,7 @@ qemuDomainPinVcpuFlags(virDomainPtr dom,
|
|||||||
def->cputune.nvcpupin = newVcpuPinNum;
|
def->cputune.nvcpupin = newVcpuPinNum;
|
||||||
newVcpuPin = NULL;
|
newVcpuPin = NULL;
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
|
|
||||||
if (snprintf(paramField, VIR_TYPED_PARAM_FIELD_LENGTH,
|
if (snprintf(paramField, VIR_TYPED_PARAM_FIELD_LENGTH,
|
||||||
@ -5480,7 +5480,7 @@ qemuDomainPinEmulator(virDomainPtr dom,
|
|||||||
if (!(def->cputune.emulatorpin = virBitmapNewCopy(pcpumap)))
|
if (!(def->cputune.emulatorpin = virBitmapNewCopy(pcpumap)))
|
||||||
goto endjob;
|
goto endjob;
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
|
|
||||||
str = virBitmapFormat(pcpumap);
|
str = virBitmapFormat(pcpumap);
|
||||||
@ -5967,7 +5967,7 @@ qemuDomainPinIOThread(virDomainPtr dom,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
|
|
||||||
if (snprintf(paramField, VIR_TYPED_PARAM_FIELD_LENGTH,
|
if (snprintf(paramField, VIR_TYPED_PARAM_FIELD_LENGTH,
|
||||||
@ -6277,7 +6277,7 @@ qemuDomainChgIOThread(virQEMUDriverPtr driver,
|
|||||||
goto endjob;
|
goto endjob;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6835,7 +6835,7 @@ qemuDomainSaveImageStartVM(virConnectPtr conn,
|
|||||||
"%s", _("failed to resume domain"));
|
"%s", _("failed to resume domain"));
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
|
||||||
VIR_WARN("Failed to save status on vm %s", vm->def->name);
|
VIR_WARN("Failed to save status on vm %s", vm->def->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -8610,7 +8610,7 @@ static int qemuDomainAttachDeviceFlags(virDomainPtr dom, const char *xml,
|
|||||||
* changed even if we failed to attach the device. For example,
|
* changed even if we failed to attach the device. For example,
|
||||||
* a new controller may be created.
|
* a new controller may be created.
|
||||||
*/
|
*/
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
|
||||||
ret = -1;
|
ret = -1;
|
||||||
goto endjob;
|
goto endjob;
|
||||||
}
|
}
|
||||||
@ -8736,7 +8736,7 @@ static int qemuDomainUpdateDeviceFlags(virDomainPtr dom,
|
|||||||
* changed even if we failed to attach the device. For example,
|
* changed even if we failed to attach the device. For example,
|
||||||
* a new controller may be created.
|
* a new controller may be created.
|
||||||
*/
|
*/
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
|
||||||
ret = -1;
|
ret = -1;
|
||||||
goto endjob;
|
goto endjob;
|
||||||
}
|
}
|
||||||
@ -8856,7 +8856,7 @@ static int qemuDomainDetachDeviceFlags(virDomainPtr dom, const char *xml,
|
|||||||
* changed even if we failed to attach the device. For example,
|
* changed even if we failed to attach the device. For example,
|
||||||
* a new controller may be created.
|
* a new controller may be created.
|
||||||
*/
|
*/
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
|
||||||
ret = -1;
|
ret = -1;
|
||||||
goto endjob;
|
goto endjob;
|
||||||
}
|
}
|
||||||
@ -9387,7 +9387,7 @@ qemuDomainSetBlkioParameters(virDomainPtr dom,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
}
|
}
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
@ -9975,7 +9975,7 @@ qemuDomainSetMemoryParameters(virDomainPtr dom,
|
|||||||
#undef QEMU_SET_MEM_PARAMETER
|
#undef QEMU_SET_MEM_PARAMETER
|
||||||
|
|
||||||
if (flags & VIR_DOMAIN_AFFECT_LIVE &&
|
if (flags & VIR_DOMAIN_AFFECT_LIVE &&
|
||||||
virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
|
|
||||||
if (flags & VIR_DOMAIN_AFFECT_CONFIG &&
|
if (flags & VIR_DOMAIN_AFFECT_CONFIG &&
|
||||||
@ -10244,7 +10244,7 @@ qemuDomainSetNumaParameters(virDomainPtr dom,
|
|||||||
-1, mode, nodeset) < 0)
|
-1, mode, nodeset) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10607,7 +10607,7 @@ qemuDomainSetSchedulerParametersFlags(virDomainPtr dom,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
|
|
||||||
if (eventNparams) {
|
if (eventNparams) {
|
||||||
@ -11389,7 +11389,7 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom,
|
|||||||
goto endjob;
|
goto endjob;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto endjob;
|
goto endjob;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -14521,7 +14521,7 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ret == 0 || !virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_TRANSACTION)) {
|
if (ret == 0 || !virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_TRANSACTION)) {
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0 ||
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0 ||
|
||||||
(persist && virDomainSaveConfig(cfg->configDir, driver->caps,
|
(persist && virDomainSaveConfig(cfg->configDir, driver->caps,
|
||||||
vm->newDef) < 0))
|
vm->newDef) < 0))
|
||||||
ret = -1;
|
ret = -1;
|
||||||
@ -16527,7 +16527,7 @@ qemuDomainBlockJobAbort(virDomainPtr dom,
|
|||||||
* effort to save it now. But we can ignore failure, since there
|
* effort to save it now. But we can ignore failure, since there
|
||||||
* will be further changes when the event marks completion. */
|
* will be further changes when the event marks completion. */
|
||||||
if (save)
|
if (save)
|
||||||
ignore_value(virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm));
|
ignore_value(virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps));
|
||||||
|
|
||||||
/* With synchronous block cancel, we must synthesize an event, and
|
/* With synchronous block cancel, we must synthesize an event, and
|
||||||
* we silently ignore the ABORT_ASYNC flag. With asynchronous
|
* we silently ignore the ABORT_ASYNC flag. With asynchronous
|
||||||
@ -16649,7 +16649,7 @@ qemuDomainGetBlockJobInfo(virDomainPtr dom,
|
|||||||
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
|
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
|
||||||
|
|
||||||
disk->mirrorState = VIR_DOMAIN_DISK_MIRROR_STATE_READY;
|
disk->mirrorState = VIR_DOMAIN_DISK_MIRROR_STATE_READY;
|
||||||
ignore_value(virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm));
|
ignore_value(virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps));
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
}
|
}
|
||||||
endjob:
|
endjob:
|
||||||
@ -16902,7 +16902,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm,
|
|||||||
disk->mirrorJob = VIR_DOMAIN_BLOCK_JOB_TYPE_COPY;
|
disk->mirrorJob = VIR_DOMAIN_BLOCK_JOB_TYPE_COPY;
|
||||||
QEMU_DOMAIN_DISK_PRIVATE(disk)->blockjob = true;
|
QEMU_DOMAIN_DISK_PRIVATE(disk)->blockjob = true;
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
VIR_WARN("Unable to save status on vm %s after state change",
|
VIR_WARN("Unable to save status on vm %s after state change",
|
||||||
vm->def->name);
|
vm->def->name);
|
||||||
|
|
||||||
@ -17301,7 +17301,7 @@ qemuDomainBlockCommit(virDomainPtr dom,
|
|||||||
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
|
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
|
||||||
|
|
||||||
mirror = NULL;
|
mirror = NULL;
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
VIR_WARN("Unable to save status on vm %s after block job",
|
VIR_WARN("Unable to save status on vm %s after block job",
|
||||||
vm->def->name);
|
vm->def->name);
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
@ -17789,7 +17789,7 @@ qemuDomainSetBlockIoTune(virDomainPtr dom,
|
|||||||
goto endjob;
|
goto endjob;
|
||||||
vm->def->disks[idx]->blkdeviotune = info;
|
vm->def->disks[idx]->blkdeviotune = info;
|
||||||
|
|
||||||
ret = virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm);
|
ret = virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
|
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
|
||||||
_("Saving live XML config failed"));
|
_("Saving live XML config failed"));
|
||||||
|
@ -2128,7 +2128,7 @@ qemuMigrationDriveMirror(virQEMUDriverPtr driver,
|
|||||||
}
|
}
|
||||||
diskPriv->migrating = true;
|
diskPriv->migrating = true;
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
|
||||||
VIR_WARN("Failed to save status on vm %s", vm->def->name);
|
VIR_WARN("Failed to save status on vm %s", vm->def->name);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@ -3924,7 +3924,7 @@ qemuMigrationConfirmPhase(virQEMUDriverPtr driver,
|
|||||||
VIR_DOMAIN_EVENT_RESUMED_MIGRATED);
|
VIR_DOMAIN_EVENT_RESUMED_MIGRATED);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
VIR_WARN("Failed to save status on vm %s", vm->def->name);
|
VIR_WARN("Failed to save status on vm %s", vm->def->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5869,7 +5869,7 @@ qemuMigrationFinish(virQEMUDriverPtr driver,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (virDomainObjIsActive(vm) &&
|
if (virDomainObjIsActive(vm) &&
|
||||||
virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
VIR_WARN("Failed to save status on vm %s", vm->def->name);
|
VIR_WARN("Failed to save status on vm %s", vm->def->name);
|
||||||
|
|
||||||
/* Guest is successfully running, so cancel previous auto destroy */
|
/* Guest is successfully running, so cancel previous auto destroy */
|
||||||
|
@ -504,7 +504,7 @@ qemuProcessHandleReset(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
|
|||||||
if (priv->agent)
|
if (priv->agent)
|
||||||
qemuAgentNotifyEvent(priv->agent, QEMU_AGENT_EVENT_RESET);
|
qemuAgentNotifyEvent(priv->agent, QEMU_AGENT_EVENT_RESET);
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
VIR_WARN("Failed to save status on vm %s", vm->def->name);
|
VIR_WARN("Failed to save status on vm %s", vm->def->name);
|
||||||
|
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
@ -571,7 +571,7 @@ qemuProcessFakeReboot(void *opaque)
|
|||||||
VIR_DOMAIN_EVENT_RESUMED,
|
VIR_DOMAIN_EVENT_RESUMED,
|
||||||
VIR_DOMAIN_EVENT_RESUMED_UNPAUSED);
|
VIR_DOMAIN_EVENT_RESUMED_UNPAUSED);
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
|
||||||
VIR_WARN("Unable to save status on vm %s after state change",
|
VIR_WARN("Unable to save status on vm %s after state change",
|
||||||
vm->def->name);
|
vm->def->name);
|
||||||
}
|
}
|
||||||
@ -675,7 +675,7 @@ qemuProcessHandleShutdown(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
|
|||||||
VIR_DOMAIN_EVENT_SHUTDOWN,
|
VIR_DOMAIN_EVENT_SHUTDOWN,
|
||||||
VIR_DOMAIN_EVENT_SHUTDOWN_FINISHED);
|
VIR_DOMAIN_EVENT_SHUTDOWN_FINISHED);
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
|
||||||
VIR_WARN("Unable to save status on vm %s after state change",
|
VIR_WARN("Unable to save status on vm %s after state change",
|
||||||
vm->def->name);
|
vm->def->name);
|
||||||
}
|
}
|
||||||
@ -728,7 +728,7 @@ qemuProcessHandleStop(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
|
|||||||
VIR_WARN("Unable to release lease on %s", vm->def->name);
|
VIR_WARN("Unable to release lease on %s", vm->def->name);
|
||||||
VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState));
|
VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState));
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
|
||||||
VIR_WARN("Unable to save status on vm %s after state change",
|
VIR_WARN("Unable to save status on vm %s after state change",
|
||||||
vm->def->name);
|
vm->def->name);
|
||||||
}
|
}
|
||||||
@ -781,7 +781,7 @@ qemuProcessHandleResume(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
|
|||||||
}
|
}
|
||||||
VIR_FREE(priv->lockState);
|
VIR_FREE(priv->lockState);
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
|
||||||
VIR_WARN("Unable to save status on vm %s after state change",
|
VIR_WARN("Unable to save status on vm %s after state change",
|
||||||
vm->def->name);
|
vm->def->name);
|
||||||
}
|
}
|
||||||
@ -825,7 +825,7 @@ qemuProcessHandleRTCChange(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
|
|||||||
offset += vm->def->clock.data.variable.adjustment0;
|
offset += vm->def->clock.data.variable.adjustment0;
|
||||||
vm->def->clock.data.variable.adjustment = offset;
|
vm->def->clock.data.variable.adjustment = offset;
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
VIR_WARN("unable to save domain status with RTC change");
|
VIR_WARN("unable to save domain status with RTC change");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -868,7 +868,7 @@ qemuProcessHandleWatchdog(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
|
|||||||
VIR_WARN("Unable to release lease on %s", vm->def->name);
|
VIR_WARN("Unable to release lease on %s", vm->def->name);
|
||||||
VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState));
|
VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState));
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
|
||||||
VIR_WARN("Unable to save status on vm %s after watchdog event",
|
VIR_WARN("Unable to save status on vm %s after watchdog event",
|
||||||
vm->def->name);
|
vm->def->name);
|
||||||
}
|
}
|
||||||
@ -951,7 +951,7 @@ qemuProcessHandleIOError(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
|
|||||||
VIR_WARN("Unable to release lease on %s", vm->def->name);
|
VIR_WARN("Unable to release lease on %s", vm->def->name);
|
||||||
VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState));
|
VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState));
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
VIR_WARN("Unable to save status on vm %s after IO error", vm->def->name);
|
VIR_WARN("Unable to save status on vm %s after IO error", vm->def->name);
|
||||||
}
|
}
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
@ -1133,7 +1133,7 @@ qemuProcessHandleTrayChange(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
|
|||||||
else if (reason == VIR_DOMAIN_EVENT_TRAY_CHANGE_CLOSE)
|
else if (reason == VIR_DOMAIN_EVENT_TRAY_CHANGE_CLOSE)
|
||||||
disk->tray_status = VIR_DOMAIN_DISK_TRAY_CLOSED;
|
disk->tray_status = VIR_DOMAIN_DISK_TRAY_CLOSED;
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
|
||||||
VIR_WARN("Unable to save status on vm %s after tray moved event",
|
VIR_WARN("Unable to save status on vm %s after tray moved event",
|
||||||
vm->def->name);
|
vm->def->name);
|
||||||
}
|
}
|
||||||
@ -1173,7 +1173,7 @@ qemuProcessHandlePMWakeup(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
|
|||||||
VIR_DOMAIN_EVENT_STARTED,
|
VIR_DOMAIN_EVENT_STARTED,
|
||||||
VIR_DOMAIN_EVENT_STARTED_WAKEUP);
|
VIR_DOMAIN_EVENT_STARTED_WAKEUP);
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
|
||||||
VIR_WARN("Unable to save status on vm %s after wakeup event",
|
VIR_WARN("Unable to save status on vm %s after wakeup event",
|
||||||
vm->def->name);
|
vm->def->name);
|
||||||
}
|
}
|
||||||
@ -1211,7 +1211,7 @@ qemuProcessHandlePMSuspend(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
|
|||||||
VIR_DOMAIN_EVENT_PMSUSPENDED,
|
VIR_DOMAIN_EVENT_PMSUSPENDED,
|
||||||
VIR_DOMAIN_EVENT_PMSUSPENDED_MEMORY);
|
VIR_DOMAIN_EVENT_PMSUSPENDED_MEMORY);
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
|
||||||
VIR_WARN("Unable to save status on vm %s after suspend event",
|
VIR_WARN("Unable to save status on vm %s after suspend event",
|
||||||
vm->def->name);
|
vm->def->name);
|
||||||
}
|
}
|
||||||
@ -1245,7 +1245,7 @@ qemuProcessHandleBalloonChange(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
|
|||||||
vm->def->mem.cur_balloon, actual);
|
vm->def->mem.cur_balloon, actual);
|
||||||
vm->def->mem.cur_balloon = actual;
|
vm->def->mem.cur_balloon = actual;
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
VIR_WARN("unable to save domain status with balloon change");
|
VIR_WARN("unable to save domain status with balloon change");
|
||||||
|
|
||||||
virObjectUnlock(vm);
|
virObjectUnlock(vm);
|
||||||
@ -1280,7 +1280,7 @@ qemuProcessHandlePMSuspendDisk(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
|
|||||||
VIR_DOMAIN_EVENT_PMSUSPENDED,
|
VIR_DOMAIN_EVENT_PMSUSPENDED,
|
||||||
VIR_DOMAIN_EVENT_PMSUSPENDED_DISK);
|
VIR_DOMAIN_EVENT_PMSUSPENDED_DISK);
|
||||||
|
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0) {
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
|
||||||
VIR_WARN("Unable to save status on vm %s after suspend event",
|
VIR_WARN("Unable to save status on vm %s after suspend event",
|
||||||
vm->def->name);
|
vm->def->name);
|
||||||
}
|
}
|
||||||
@ -2901,7 +2901,7 @@ qemuProcessUpdateVideoRamSize(virQEMUDriverPtr driver,
|
|||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
cfg = virQEMUDriverGetConfig(driver);
|
cfg = virQEMUDriverGetConfig(driver);
|
||||||
ret = virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm);
|
ret = virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps);
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -3605,7 +3605,7 @@ qemuProcessReconnect(void *opaque)
|
|||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
/* update domain state XML with possibly updated state in virDomainObj */
|
/* update domain state XML with possibly updated state in virDomainObj */
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, obj) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, obj, driver->caps) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
/* Run an hook to allow admins to do some magic */
|
/* Run an hook to allow admins to do some magic */
|
||||||
@ -4854,7 +4854,7 @@ qemuProcessLaunch(virConnectPtr conn,
|
|||||||
}
|
}
|
||||||
|
|
||||||
VIR_DEBUG("Writing early domain status to disk");
|
VIR_DEBUG("Writing early domain status to disk");
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
VIR_DEBUG("Waiting for handshake from child");
|
VIR_DEBUG("Waiting for handshake from child");
|
||||||
@ -5066,7 +5066,7 @@ qemuProcessFinishStartup(virConnectPtr conn,
|
|||||||
}
|
}
|
||||||
|
|
||||||
VIR_DEBUG("Writing domain status to disk");
|
VIR_DEBUG("Writing domain status to disk");
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (qemuProcessStartHook(driver, vm,
|
if (qemuProcessStartHook(driver, vm,
|
||||||
@ -5699,7 +5699,7 @@ int qemuProcessAttach(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||||||
}
|
}
|
||||||
|
|
||||||
VIR_DEBUG("Writing domain status to disk");
|
VIR_DEBUG("Writing domain status to disk");
|
||||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
/* Run an hook to allow admins to do some magic */
|
/* Run an hook to allow admins to do some magic */
|
||||||
|
@ -137,7 +137,7 @@ testCompareStatusXMLToXMLFiles(const void *opaque)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* format it back */
|
/* format it back */
|
||||||
if (!(actual = virDomainObjFormat(driver.xmlopt, obj,
|
if (!(actual = virDomainObjFormat(driver.xmlopt, obj, NULL,
|
||||||
VIR_DOMAIN_DEF_FORMAT_SECURE))) {
|
VIR_DOMAIN_DEF_FORMAT_SECURE))) {
|
||||||
VIR_TEST_DEBUG("Failed to format domain status XML");
|
VIR_TEST_DEBUG("Failed to format domain status XML");
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user