def = NULL;
vm->persistent = 1;
- if (virDomainSaveConfig(BHYVE_CONFIG_DIR, caps,
- vm->newDef ? vm->newDef : vm->def) < 0) {
+ if (virDomainDefSave(vm->newDef ? vm->newDef : vm->def,
+ privconn->xmlopt, caps, BHYVE_CONFIG_DIR) < 0) {
virDomainObjListRemove(privconn->domains, vm);
goto cleanup;
}
virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, reason);
priv->mon = bhyveMonitorOpen(vm, driver);
- if (virDomainSaveStatus(driver->xmlopt,
- BHYVE_STATE_DIR,
- vm, caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, caps,
+ BHYVE_STATE_DIR) < 0)
goto cleanup;
ret = 0;
vm->def->id = -1;
virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF,
VIR_DOMAIN_SHUTOFF_UNKNOWN);
- ignore_value(virDomainSaveStatus(data->driver->xmlopt,
- BHYVE_STATE_DIR,
- vm, caps));
+ ignore_value(virDomainObjSave(vm, data->driver->xmlopt, caps,
+ BHYVE_STATE_DIR));
}
virObjectUnref(caps);
return 0;
}
-int
-virDomainSaveXML(const char *configDir,
- virDomainDefPtr def,
- const char *xml)
+static int
+virDomainDefSaveXML(virDomainDefPtr def,
+ const char *configDir,
+ const char *xml)
{
char uuidstr[VIR_UUID_STRING_BUFLEN];
g_autofree char *configFile = NULL;
}
int
-virDomainSaveConfig(const char *configDir,
- virCapsPtr caps,
- virDomainDefPtr def)
+virDomainDefSave(virDomainDefPtr def,
+ virDomainXMLOptionPtr xmlopt G_GNUC_UNUSED,
+ virCapsPtr caps,
+ const char *configDir)
{
g_autofree char *xml = NULL;
if (!(xml = virDomainDefFormat(def, caps, VIR_DOMAIN_DEF_FORMAT_SECURE)))
return -1;
- return virDomainSaveXML(configDir, def, xml);
+ return virDomainDefSaveXML(def, configDir, xml);
}
int
-virDomainSaveStatus(virDomainXMLOptionPtr xmlopt,
- const char *statusDir,
- virDomainObjPtr obj,
- virCapsPtr caps)
+virDomainObjSave(virDomainObjPtr obj,
+ virDomainXMLOptionPtr xmlopt,
+ virCapsPtr caps,
+ const char *statusDir)
{
unsigned int flags = (VIR_DOMAIN_DEF_FORMAT_SECURE |
VIR_DOMAIN_DEF_FORMAT_STATUS |
if (!(xml = virDomainObjFormat(xmlopt, obj, caps, flags)))
return -1;
- return virDomainSaveXML(statusDir, obj->def, xml);
+ return virDomainDefSaveXML(obj->def, statusDir, xml);
}
if (virDomainDefSetMetadata(def, type, metadata, key, uri) < 0)
return -1;
- if (virDomainSaveStatus(xmlopt, stateDir, vm, caps) < 0)
+ if (virDomainObjSave(vm, xmlopt, caps, stateDir) < 0)
return -1;
}
uri) < 0)
return -1;
- if (virDomainSaveConfig(configDir, caps, persistentDef) < 0)
+ if (virDomainDefSave(persistentDef, xmlopt, caps, configDir) < 0)
return -1;
}
virDomainRedirdevDefPtr redirdev);
virDomainRedirdevDefPtr virDomainRedirdevDefRemove(virDomainDefPtr def, size_t idx);
-int virDomainSaveXML(const char *configDir,
- virDomainDefPtr def,
- const char *xml);
-
-int virDomainSaveConfig(const char *configDir,
- virCapsPtr caps,
- virDomainDefPtr def);
-int virDomainSaveStatus(virDomainXMLOptionPtr xmlopt,
- const char *statusDir,
- virDomainObjPtr obj,
- virCapsPtr caps) G_GNUC_WARN_UNUSED_RESULT;
+int virDomainDefSave(virDomainDefPtr def,
+ virDomainXMLOptionPtr xmlopt,
+ virCapsPtr caps,
+ const char *configDir)
+ G_GNUC_WARN_UNUSED_RESULT
+ ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2)
+ ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);
+
+int virDomainObjSave(virDomainObjPtr obj,
+ virDomainXMLOptionPtr xmlopt,
+ virCapsPtr caps,
+ const char *statusDir)
+ G_GNUC_WARN_UNUSED_RESULT
+ ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2)
+ ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);
typedef void (*virDomainLoadConfigNotify)(virDomainObjPtr dom,
int newDomain,
virDomainDefParseNode;
virDomainDefParseString;
virDomainDefPostParse;
+virDomainDefSave;
virDomainDefSetMemoryTotal;
virDomainDefSetVcpus;
virDomainDefSetVcpusMax;
virDomainObjParseFile;
virDomainObjParseNode;
virDomainObjRemoveTransientDef;
+virDomainObjSave;
virDomainObjSetDefTransient;
virDomainObjSetMetadata;
virDomainObjSetState;
virDomainRNGRemove;
virDomainRunningReasonTypeFromString;
virDomainRunningReasonTypeToString;
-virDomainSaveConfig;
-virDomainSaveStatus;
-virDomainSaveXML;
virDomainSCSIDriveAddressIsUsed;
virDomainSeclabelTypeFromString;
virDomainSeclabelTypeToString;
virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, VIR_DOMAIN_PAUSED_USER);
}
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir) < 0)
goto destroy_dom;
if (virAtomicIntInc(&driver->nactive) == 1 && driver->inhibitCallback)
libxlReconnectNotifyNets(vm->def);
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir) < 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 */
VIR_DOMAIN_EVENT_SUSPENDED_PAUSED);
}
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir) < 0)
goto endjob;
ret = 0;
VIR_DOMAIN_EVENT_RESUMED_UNPAUSED);
}
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir) < 0)
goto endjob;
ret = 0;
virDomainDefSetMemoryTotal(persistentDef, newmem);
if (persistentDef->mem.cur_balloon > newmem)
persistentDef->mem.cur_balloon = newmem;
- ret = virDomainSaveConfig(cfg->configDir, cfg->caps, persistentDef);
+ ret = virDomainDefSave(persistentDef, driver->xmlopt, cfg->caps, cfg->configDir);
goto endjob;
}
if (flags & VIR_DOMAIN_MEM_CONFIG) {
sa_assert(persistentDef);
persistentDef->mem.cur_balloon = newmem;
- ret = virDomainSaveConfig(cfg->configDir, cfg->caps, persistentDef);
+ ret = virDomainDefSave(persistentDef, driver->xmlopt, cfg->caps, cfg->configDir);
goto endjob;
}
}
ret = 0;
if (flags & VIR_DOMAIN_VCPU_LIVE) {
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0) {
+ if (virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir) < 0) {
VIR_WARN("Unable to save status on vm %s after changing vcpus",
vm->def->name);
}
}
if (flags & VIR_DOMAIN_VCPU_CONFIG) {
- if (virDomainSaveConfig(cfg->configDir, cfg->caps, def) < 0) {
+ if (virDomainDefSave(def, driver->xmlopt, cfg->caps, cfg->configDir) < 0) {
VIR_WARN("Unable to save configuration of vm %s after changing vcpus",
vm->def->name);
}
ret = 0;
if (flags & VIR_DOMAIN_AFFECT_LIVE) {
- ret = virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps);
+ ret = virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir);
} else if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
- ret = virDomainSaveConfig(cfg->configDir, cfg->caps, targetDef);
+ ret = virDomainDefSave(targetDef, driver->xmlopt, cfg->caps, cfg->configDir);
}
endjob:
vm->persistent = 1;
- if (virDomainSaveConfig(cfg->configDir,
- cfg->caps,
- vm->newDef ? vm->newDef : vm->def) < 0) {
+ if (virDomainDefSave(vm->newDef ? vm->newDef : vm->def,
+ driver->xmlopt, cfg->caps, cfg->configDir) < 0) {
virDomainObjListRemove(driver->domains, vm);
goto cleanup;
}
* update domain status forcibly because the domain status may be
* changed even if we attach the device failed.
*/
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir) < 0)
goto endjob;
}
/* Finally, if no error until here, we can save config. */
if (flags & VIR_DOMAIN_DEVICE_MODIFY_CONFIG) {
- ret = virDomainSaveConfig(cfg->configDir, cfg->caps, vmdef);
+ ret = virDomainDefSave(vmdef, driver->xmlopt, cfg->caps, cfg->configDir);
if (!ret) {
virDomainObjAssignDef(vm, vmdef, false, NULL);
vmdef = NULL;
* update domain status forcibly because the domain status may be
* changed even if we attach the device failed.
*/
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir) < 0)
goto endjob;
}
/* Finally, if no error until here, we can save config. */
if (flags & VIR_DOMAIN_DEVICE_MODIFY_CONFIG) {
- ret = virDomainSaveConfig(cfg->configDir, cfg->caps, vmdef);
+ ret = virDomainDefSave(vmdef, driver->xmlopt, cfg->caps, cfg->configDir);
if (!ret) {
virDomainObjAssignDef(vm, vmdef, false, NULL);
vmdef = NULL;
* update domain status forcibly because the domain status may be
* changed even if we attach the device failed.
*/
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir) < 0)
ret = -1;
}
/* Finally, if no error until here, we can save config. */
if (!ret && (flags & VIR_DOMAIN_DEVICE_MODIFY_CONFIG)) {
- ret = virDomainSaveConfig(cfg->configDir, cfg->caps, vmdef);
+ ret = virDomainDefSave(vmdef, driver->xmlopt, cfg->caps, cfg->configDir);
if (!ret) {
virDomainObjAssignDef(vm, vmdef, false, NULL);
vmdef = NULL;
driver->xmlopt, vm, NULL)))
goto cleanup;
- if (virDomainSaveConfig(cfg->configDir, cfg->caps, vmdef) < 0)
+ if (virDomainDefSave(vmdef, driver->xmlopt, cfg->caps, cfg->configDir) < 0)
goto cleanup;
event = virDomainEventLifecycleNewFromObj(vm,
event = NULL;
}
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir) < 0)
goto cleanup;
dom = virGetDomain(dconn, vm->def->name, vm->def->uuid, vm->def->id);
VIR_DOMAIN_PAUSED_MIGRATION);
event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_SUSPENDED,
VIR_DOMAIN_EVENT_SUSPENDED_MIGRATED);
- ignore_value(virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps));
+ ignore_value(virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir));
}
goto cleanup;
}
def = NULL;
vm->persistent = 1;
- if (virDomainSaveConfig(cfg->configDir, driver->caps,
- vm->newDef ? vm->newDef : vm->def) < 0) {
+ if (virDomainDefSave(vm->newDef ? vm->newDef : vm->def,
+ driver->xmlopt, driver->caps, cfg->configDir) < 0) {
virDomainObjListRemove(driver->domains, vm);
goto cleanup;
}
virDomainDefSetMemoryTotal(persistentDef, newmem);
if (persistentDef->mem.cur_balloon > newmem)
persistentDef->mem.cur_balloon = newmem;
- if (virDomainSaveConfig(cfg->configDir, driver->caps,
- persistentDef) < 0)
+ if (virDomainDefSave(persistentDef,
+ driver->xmlopt, driver->caps, cfg->configDir) < 0)
goto endjob;
}
} else {
}
def->mem.cur_balloon = newmem;
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto endjob;
}
if (persistentDef) {
persistentDef->mem.cur_balloon = newmem;
- if (virDomainSaveConfig(cfg->configDir, driver->caps,
- persistentDef) < 0)
+ if (virDomainDefSave(persistentDef,
+ driver->xmlopt, driver->caps, cfg->configDir) < 0)
goto endjob;
}
}
#undef VIR_SET_MEM_PARAMETER
if (def &&
- virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto endjob;
if (persistentDef &&
- virDomainSaveConfig(cfg->configDir, driver->caps, persistentDef) < 0)
+ virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, cfg->configDir) < 0)
goto endjob;
/* QEMU and LXC implementations are identical */
}
}
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto endjob;
if (persistentDef) {
- rc = virDomainSaveConfig(cfg->configDir, driver->caps, persistentDefCopy);
+ rc = virDomainDefSave(persistentDefCopy, driver->xmlopt, driver->caps,
+ cfg->configDir);
if (rc < 0)
goto endjob;
}
}
- if (virDomainSaveConfig(cfg->configDir, driver->caps, persistentDef) < 0)
+ if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, cfg->configDir) < 0)
ret = -1;
}
VIR_DOMAIN_EVENT_SUSPENDED_PAUSED);
}
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto endjob;
ret = 0;
VIR_DOMAIN_EVENT_RESUMED_UNPAUSED);
}
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto endjob;
ret = 0;
* changed even if we failed to attach the device. For example,
* a new controller may be created.
*/
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0) {
ret = -1;
goto endjob;
}
/* Finally, if no error until here, we can save config. */
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
- ret = virDomainSaveConfig(cfg->configDir, driver->caps, vmdef);
+ ret = virDomainDefSave(vmdef, driver->xmlopt, driver->caps, cfg->configDir);
if (!ret) {
virDomainObjAssignDef(vm, vmdef, false, NULL);
vmdef = NULL;
if (lxcDomainUpdateDeviceConfig(vmdef, dev) < 0)
goto endjob;
- if (virDomainSaveConfig(cfg->configDir, driver->caps, vmdef) < 0)
+ if (virDomainDefSave(vmdef, driver->xmlopt, driver->caps, cfg->configDir) < 0)
goto endjob;
virDomainObjAssignDef(vm, vmdef, false, NULL);
* changed even if we failed to attach the device. For example,
* a new controller may be created.
*/
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0) {
ret = -1;
goto endjob;
}
/* Finally, if no error until here, we can save config. */
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
- ret = virDomainSaveConfig(cfg->configDir, driver->caps, vmdef);
+ ret = virDomainDefSave(vmdef, driver->xmlopt, driver->caps, cfg->configDir);
if (!ret) {
virDomainObjAssignDef(vm, vmdef, false, NULL);
vmdef = NULL;
}
virDomainAuditInit(vm, initpid, inode);
- if (virDomainSaveStatus(lxc_driver->xmlopt, cfg->stateDir, vm, lxc_driver->caps) < 0)
+ if (virDomainObjSave(vm, lxc_driver->xmlopt, lxc_driver->caps, cfg->stateDir) < 0)
VIR_WARN("Cannot update XML with PID for LXC %s", vm->def->name);
virObjectUnlock(vm);
/* Write domain status to disk for the controller to
* read when it starts */
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto cleanup;
/* Allow the child to exec the controller */
virLXCProcessReconnectNotifyNets(vm->def);
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 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 */
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
if (virDomainObjIsActive(obj)) {
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, obj, driver->caps) < 0)
+ if (virDomainObjSave(obj, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
VIR_WARN("Failed to save status on vm %s", obj->def->name);
}
cfg = virQEMUDriverGetConfig(driver);
- if (virDomainSaveConfig(cfg->configDir, driver->caps, def) < 0)
+ if (virDomainDefSave(def, driver->xmlopt, driver->caps, cfg->configDir) < 0)
VIR_WARN("Failed to save config of vm %s", obj->def->name);
}
priv->fakeReboot = value;
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
VIR_WARN("Failed to save status on vm %s", vm->def->name);
cleanup:
if (qemuProcessStopCPUs(driver, vm, reason, QEMU_ASYNC_JOB_NONE) < 0)
goto endjob;
}
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto endjob;
ret = 0;
goto endjob;
}
}
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto endjob;
ret = 0;
if (persistentDef->mem.cur_balloon > newmem)
persistentDef->mem.cur_balloon = newmem;
- ret = virDomainSaveConfig(cfg->configDir, driver->caps,
- persistentDef);
+ ret = virDomainDefSave(persistentDef, driver->xmlopt, driver->caps,
+ cfg->configDir);
goto endjob;
}
if (persistentDef) {
persistentDef->mem.cur_balloon = newmem;
- ret = virDomainSaveConfig(cfg->configDir, driver->caps,
- persistentDef);
+ ret = virDomainDefSave(persistentDef, driver->xmlopt, driver->caps,
+ cfg->configDir);
goto endjob;
}
}
}
def->memballoon->period = period;
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto endjob;
}
goto endjob;
}
persistentDef->memballoon->period = period;
- ret = virDomainSaveConfig(cfg->configDir, driver->caps, persistentDef);
+ ret = virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, cfg->configDir);
goto endjob;
}
virObjectEventStateQueue(driver->domainEventState, event);
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0) {
VIR_WARN("Unable to save status on vm %s after state change",
vm->def->name);
}
goto endjob;
}
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
VIR_WARN("unable to save domain status after removing device %s",
devAlias);
dev.data.chr->state = newstate;
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
VIR_WARN("unable to save status of domain %s after updating state of "
"channel %s", vm->def->name, devAlias);
if (virDomainDefSetVcpusMax(persistentDef, nvcpus, driver->xmlopt) < 0)
return -1;
- if (virDomainSaveConfig(cfg->configDir, driver->caps, persistentDef) < 0)
+ if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, cfg->configDir) < 0)
return -1;
return 0;
vcpuinfo->cpumask = tmpmap;
tmpmap = NULL;
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto cleanup;
if (g_snprintf(paramField, VIR_TYPED_PARAM_FIELD_LENGTH,
vcpuinfo->cpumask = pcpumap;
pcpumap = NULL;
- ret = virDomainSaveConfig(cfg->configDir, driver->caps, persistentDef);
+ ret = virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, cfg->configDir);
goto endjob;
}
if (!(def->cputune.emulatorpin = virBitmapNewCopy(pcpumap)))
goto endjob;
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto endjob;
str = virBitmapFormat(pcpumap);
if (!(persistentDef->cputune.emulatorpin = virBitmapNewCopy(pcpumap)))
goto endjob;
- ret = virDomainSaveConfig(cfg->configDir, driver->caps, persistentDef);
+ ret = virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, cfg->configDir);
goto endjob;
}
if (virProcessSetAffinity(iothrid->thread_id, pcpumap) < 0)
goto endjob;
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto endjob;
if (g_snprintf(paramField, VIR_TYPED_PARAM_FIELD_LENGTH,
iothrid->cpumask = cpumask;
iothrid->autofill = false;
- ret = virDomainSaveConfig(cfg->configDir, driver->caps, persistentDef);
+ ret = virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, cfg->configDir);
goto endjob;
}
}
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto endjob;
}
break;
}
- if (virDomainSaveConfig(cfg->configDir, driver->caps,
- persistentDef) < 0)
+ if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps,
+ cfg->configDir) < 0)
goto endjob;
}
"%s", _("failed to resume domain"));
goto cleanup;
}
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0) {
VIR_WARN("Failed to save status on vm %s", vm->def->name);
goto cleanup;
}
vm->persistent = 1;
- if (virDomainSaveConfig(cfg->configDir, driver->caps,
- vm->newDef ? vm->newDef : vm->def) < 0) {
+ if (virDomainDefSave(vm->newDef ? vm->newDef : vm->def,
+ driver->xmlopt, driver->caps, cfg->configDir) < 0) {
if (oldDef) {
/* There is backup so this VM was defined before.
* Just restore the backup. */
* changed even if we failed to attach the device. For example,
* a new controller may be created.
*/
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto cleanup;
}
/* Finally, if no error until here, we can save config. */
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
- if (virDomainSaveConfig(cfg->configDir, driver->caps, vmdef) < 0)
+ if (virDomainDefSave(vmdef, driver->xmlopt, driver->caps, cfg->configDir) < 0)
goto cleanup;
virDomainObjAssignDef(vm, vmdef, false, NULL);
* changed even if we failed to attach the device. For example,
* a new controller may be created.
*/
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0) {
ret = -1;
goto endjob;
}
/* Finally, if no error until here, we can save config. */
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
- ret = virDomainSaveConfig(cfg->configDir, driver->caps, vmdef);
+ ret = virDomainDefSave(vmdef, driver->xmlopt, driver->caps, cfg->configDir);
if (!ret) {
virDomainObjAssignDef(vm, vmdef, false, NULL);
vmdef = NULL;
* changed even if we failed to attach the device. For example,
* a new controller may be created.
*/
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, caps, cfg->stateDir) < 0)
goto cleanup;
}
/* Finally, if no error until here, we can save config. */
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
- if (virDomainSaveConfig(cfg->configDir, caps, vmdef) < 0)
+ if (virDomainDefSave(vmdef, driver->xmlopt, caps, cfg->configDir) < 0)
goto cleanup;
virDomainObjAssignDef(vm, vmdef, false, NULL);
}
if (vmdef) {
- if (virDomainSaveConfig(cfg->configDir, caps, vmdef) < 0)
+ if (virDomainDefSave(vmdef, driver->xmlopt, caps, cfg->configDir) < 0)
goto cleanup;
virDomainObjAssignDef(vm, vmdef, false, NULL);
vmdef = NULL;
}
}
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto endjob;
}
if (ret < 0)
}
}
- if (virDomainSaveConfig(cfg->configDir, driver->caps, persistentDef) < 0)
+ if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, cfg->configDir) < 0)
ret = -1;
}
#undef VIR_SET_MEM_PARAMETER
if (def &&
- virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto endjob;
if (persistentDef &&
- virDomainSaveConfig(cfg->configDir, driver->caps, persistentDef) < 0)
+ virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, cfg->configDir) < 0)
goto endjob;
/* QEMU and LXC implementations are identical */
-1, mode, nodeset) < 0)
goto endjob;
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto endjob;
}
-1, mode, nodeset) < 0)
goto endjob;
- if (virDomainSaveConfig(cfg->configDir, driver->caps, persistentDef) < 0)
+ if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, cfg->configDir) < 0)
goto endjob;
}
VIR_TRISTATE_BOOL_YES : VIR_TRISTATE_BOOL_NO;
}
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto endjob;
}
VIR_TRISTATE_BOOL_YES : VIR_TRISTATE_BOOL_NO;
}
- if (virDomainSaveConfig(cfg->configDir, driver->caps, persistentDef) < 0)
+ if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, cfg->configDir) < 0)
goto endjob;
}
}
}
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, caps, cfg->stateDir) < 0)
goto endjob;
if (eventNparams) {
}
if (persistentDef) {
- rc = virDomainSaveConfig(cfg->configDir, driver->caps, persistentDefCopy);
+ rc = virDomainDefSave(persistentDefCopy, driver->xmlopt, caps,
+ cfg->configDir);
if (rc < 0)
goto endjob;
goto endjob;
}
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto endjob;
}
}
}
- if (virDomainSaveConfig(cfg->configDir, driver->caps, persistentDef) < 0)
+ if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, cfg->configDir) < 0)
goto endjob;
}
defdisk->src = g_steal_pointer(&newsrc);
}
- if (virDomainSaveConfig(cfg->configDir, driver->caps, vm->def) < 0)
+ if (virDomainDefSave(vm->def, driver->xmlopt, driver->caps, cfg->configDir) < 0)
goto cleanup;
ret = 0;
if (rc < 0)
goto cleanup;
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0 ||
- (vm->newDef && virDomainSaveConfig(cfg->configDir, driver->caps,
- vm->newDef) < 0))
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0 ||
+ (vm->newDef && virDomainDefSave(vm->newDef, driver->xmlopt, driver->caps,
+ cfg->configDir) < 0))
goto cleanup;
ret = 0;
}
}
if (ret == 0 && defined && vm->persistent &&
- !(ret = virDomainSaveConfig(cfg->configDir, driver->caps,
- vm->newDef ? vm->newDef : vm->def))) {
+ !(ret = virDomainDefSave(vm->newDef ? vm->newDef : vm->def,
+ driver->xmlopt, driver->caps, cfg->configDir))) {
detail = VIR_DOMAIN_EVENT_DEFINED_FROM_SNAPSHOT;
virObjectEventStateQueue(driver->domainEventState,
virDomainEventLifecycleNewFromObj(vm,
job->state = QEMU_BLOCKJOB_STATE_ABORTING;
}
- ignore_value(virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps));
+ ignore_value(virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir));
if (!async) {
qemuBlockJobUpdate(vm, job, QEMU_ASYNC_JOB_NONE);
if (virDomainDiskSetBlockIOTune(disk, &info) < 0)
goto endjob;
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir,
- vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto endjob;
if (eventNparams) {
if (virDomainDiskSetBlockIOTune(conf_disk, &info) < 0)
goto endjob;
- if (virDomainSaveConfig(cfg->configDir, driver->caps,
- persistentDef) < 0)
+ if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps,
+ cfg->configDir) < 0)
goto endjob;
}
vm->def->name = new_dom_name;
new_dom_name = NULL;
- if (virDomainSaveConfig(cfg->configDir, driver->caps, vm->def) < 0)
+ if (virDomainDefSave(vm->def, driver->xmlopt, driver->caps, cfg->configDir) < 0)
goto rollback;
if (virFileExists(old_dom_cfg_file) &&
qemuDomainModifyLifecycleAction(def, type, action);
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir,
- vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto endjob;
}
if (persistentDef) {
qemuDomainModifyLifecycleAction(persistentDef, type, action);
- if (virDomainSaveConfig(cfg->configDir, driver->caps,
- persistentDef) < 0)
+ if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps,
+ cfg->configDir) < 0)
goto endjob;
}
QEMU_DOMAIN_PRIVATE(vm)->agentTimeout = timeout;
if (virDomainObjIsActive(vm) &&
- virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto cleanup;
ret = 0;
qemuDomainVcpuPersistOrder(vm->def);
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto cleanup;
ret = 0;
qemuDomainVcpuPersistOrder(vm->def);
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto cleanup;
ret = 0;
if (persistentDef) {
qemuDomainSetVcpusConfig(persistentDef, nvcpus, hotpluggable);
- if (virDomainSaveConfig(cfg->configDir, driver->caps, persistentDef) < 0)
+ if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, cfg->configDir) < 0)
goto cleanup;
}
if (persistentDef) {
qemuDomainSetVcpuConfig(persistentDef, map, state);
- if (virDomainSaveConfig(cfg->configDir, driver->caps, persistentDef) < 0)
+ if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, cfg->configDir) < 0)
goto cleanup;
}
tlsAlias, flags) < 0)
return -1;
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0) {
VIR_WARN("Failed to save status on vm %s", vm->def->name);
return -1;
}
qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT,
priv->job.migParams, priv->job.apiFlags);
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
VIR_WARN("Failed to save status on vm %s", vm->def->name);
}
priv->qemuCaps)))
goto error;
- if (virDomainSaveConfig(cfg->configDir, driver->caps, vmdef) < 0 &&
+ if (virDomainDefSave(vmdef, driver->xmlopt, driver->caps, cfg->configDir) < 0 &&
!ignoreSaveError)
goto error;
}
if (virDomainObjIsActive(vm) &&
- virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
VIR_WARN("Failed to save status on vm %s", vm->def->name);
/* Guest is successfully running, so cancel previous auto destroy */
if (priv->agent)
qemuAgentNotifyEvent(priv->agent, QEMU_AGENT_EVENT_RESET);
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
VIR_WARN("Failed to save status on vm %s", vm->def->name);
if (vm->def->onReboot == VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY ||
goto endjob;
}
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0) {
VIR_WARN("Unable to save status on vm %s after state change",
vm->def->name);
}
VIR_DOMAIN_EVENT_SHUTDOWN,
detail);
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0) {
VIR_WARN("Unable to save status on vm %s after state change",
vm->def->name);
}
VIR_WARN("Unable to release lease on %s", vm->def->name);
VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState));
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0) {
VIR_WARN("Unable to save status on vm %s after state change",
vm->def->name);
}
VIR_DOMAIN_EVENT_RESUMED,
eventDetail);
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0) {
VIR_WARN("Unable to save status on vm %s after state change",
vm->def->name);
}
offset += vm->def->clock.data.variable.adjustment0;
vm->def->clock.data.variable.adjustment = offset;
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
VIR_WARN("unable to save domain status with RTC change");
}
VIR_WARN("Unable to release lease on %s", vm->def->name);
VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState));
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0) {
VIR_WARN("Unable to save status on vm %s after watchdog event",
vm->def->name);
}
VIR_WARN("Unable to release lease on %s", vm->def->name);
VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState));
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
VIR_WARN("Unable to save status on vm %s after IO error", vm->def->name);
}
virObjectUnlock(vm);
else if (reason == VIR_DOMAIN_EVENT_TRAY_CHANGE_CLOSE)
disk->tray_status = VIR_DOMAIN_DISK_TRAY_CLOSED;
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0) {
VIR_WARN("Unable to save status on vm %s after tray moved event",
vm->def->name);
}
VIR_DOMAIN_EVENT_STARTED,
VIR_DOMAIN_EVENT_STARTED_WAKEUP);
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0) {
VIR_WARN("Unable to save status on vm %s after wakeup event",
vm->def->name);
}
VIR_DOMAIN_EVENT_PMSUSPENDED,
VIR_DOMAIN_EVENT_PMSUSPENDED_MEMORY);
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0) {
VIR_WARN("Unable to save status on vm %s after suspend event",
vm->def->name);
}
vm->def->mem.cur_balloon, actual);
vm->def->mem.cur_balloon = actual;
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
VIR_WARN("unable to save domain status with balloon change");
virObjectUnlock(vm);
VIR_DOMAIN_EVENT_PMSUSPENDED,
VIR_DOMAIN_EVENT_PMSUSPENDED_DISK);
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0) {
VIR_WARN("Unable to save status on vm %s after suspend event",
vm->def->name);
}
VIR_DOMAIN_EVENT_SUSPENDED,
VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY);
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0) {
VIR_WARN("Unable to save status on vm %s after state change",
vm->def->name);
}
return -1;
cfg = virQEMUDriverGetConfig(driver);
- ret = virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps);
+ ret = virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir);
virObjectUnref(cfg);
return ret;
}
VIR_DEBUG("Writing early domain status to disk");
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto cleanup;
VIR_DEBUG("Waiting for handshake from child");
}
VIR_DEBUG("Writing domain status to disk");
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
+ if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto cleanup;
if (qemuProcessStartHook(driver, vm,
}
/* update domain state XML with possibly updated state in virDomainObj */
- if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, obj, driver->caps) < 0)
+ if (virDomainObjSave(obj, driver->xmlopt, driver->caps, cfg->stateDir) < 0)
goto error;
/* Run an hook to allow admins to do some magic */