* @return 0 on success, -1 on failure
*/
int
-virDomainObjSetDefTransient(virCapsPtr caps,
- virDomainXMLOptionPtr xmlopt,
+virDomainObjSetDefTransient(virDomainXMLOptionPtr xmlopt,
virDomainObjPtr domain,
void *parseOpaque)
{
if (domain->newDef)
return 0;
- if (!(domain->newDef = virDomainDefCopy(domain->def, caps, xmlopt,
+ if (!(domain->newDef = virDomainDefCopy(domain->def, xmlopt,
parseOpaque, false)))
goto out;
* @return NULL on error, virDOmainDefPtr on success
*/
virDomainDefPtr
-virDomainObjGetPersistentDef(virCapsPtr caps,
- virDomainXMLOptionPtr xmlopt,
+virDomainObjGetPersistentDef(virDomainXMLOptionPtr xmlopt,
virDomainObjPtr domain,
void *parseOpaque)
{
if (virDomainObjIsActive(domain) &&
- virDomainObjSetDefTransient(caps, xmlopt, domain, parseOpaque) < 0)
+ virDomainObjSetDefTransient(xmlopt, domain, parseOpaque) < 0)
return NULL;
if (domain->newDef)
* snapshots). */
virDomainDefPtr
virDomainDefCopy(virDomainDefPtr src,
- virCapsPtr caps G_GNUC_UNUSED,
virDomainXMLOptionPtr xmlopt,
void *parseOpaque,
bool migratable)
virDomainDefPtr
virDomainObjCopyPersistentDef(virDomainObjPtr dom,
- virCapsPtr caps,
virDomainXMLOptionPtr xmlopt,
void *parseOpaque)
{
virDomainDefPtr cur;
- cur = virDomainObjGetPersistentDef(caps, xmlopt, dom, parseOpaque);
- return virDomainDefCopy(cur, caps, xmlopt, parseOpaque, false);
+ cur = virDomainObjGetPersistentDef(xmlopt, dom, parseOpaque);
+ return virDomainDefCopy(cur, xmlopt, parseOpaque, false);
}
virDomainDeviceDefPtr
virDomainDeviceDefCopy(virDomainDeviceDefPtr src,
const virDomainDef *def,
- virCapsPtr caps G_GNUC_UNUSED,
virDomainXMLOptionPtr xmlopt,
void *parseOpaque)
{
void virDomainDeviceDefFree(virDomainDeviceDefPtr def);
virDomainDeviceDefPtr virDomainDeviceDefCopy(virDomainDeviceDefPtr src,
const virDomainDef *def,
- virCapsPtr caps,
virDomainXMLOptionPtr xmlopt,
void *parseOpaque);
virDomainDeviceInfoPtr virDomainDeviceGetInfo(virDomainDeviceDefPtr device);
virDomainDefPtr def,
bool live,
virDomainDefPtr *oldDef);
-int virDomainObjSetDefTransient(virCapsPtr caps,
- virDomainXMLOptionPtr xmlopt,
+int virDomainObjSetDefTransient(virDomainXMLOptionPtr xmlopt,
virDomainObjPtr domain,
void *parseOpaque);
void virDomainObjRemoveTransientDef(virDomainObjPtr domain);
virDomainDefPtr
-virDomainObjGetPersistentDef(virCapsPtr caps,
- virDomainXMLOptionPtr xmlopt,
+virDomainObjGetPersistentDef(virDomainXMLOptionPtr xmlopt,
virDomainObjPtr domain,
void *parseOpaque);
virDomainDefPtr virDomainObjGetOneDef(virDomainObjPtr vm, unsigned int flags);
virDomainDefPtr virDomainDefCopy(virDomainDefPtr src,
- virCapsPtr caps,
virDomainXMLOptionPtr xmlopt,
void *parseOpaque,
bool migratable);
virDomainDefPtr virDomainObjCopyPersistentDef(virDomainObjPtr dom,
- virCapsPtr caps,
virDomainXMLOptionPtr xmlopt,
void *parseOpaque);
VIR_FREE(managed_save_path);
}
- if (virDomainObjSetDefTransient(cfg->caps, driver->xmlopt, vm, NULL) < 0)
+ if (virDomainObjSetDefTransient(driver->xmlopt, vm, NULL) < 0)
goto cleanup;
/* Run an early hook to set-up missing devices */
g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
bool ret = false;
- if (!(migratableDefSrc = virDomainDefCopy(src, cfg->caps, driver->xmlopt, NULL, true)) ||
- !(migratableDefDst = virDomainDefCopy(dst, cfg->caps, driver->xmlopt, NULL, true)))
+ if (!(migratableDefSrc = virDomainDefCopy(src, driver->xmlopt, NULL, true)) ||
+ !(migratableDefDst = virDomainDefCopy(dst, driver->xmlopt, NULL, true)))
goto cleanup;
ret = virDomainDefCheckABIStability(migratableDefSrc,
* domain configuration if needed. Return -1 on error.
*/
static int
-virDomainLiveConfigHelperMethod(virCapsPtr caps,
+virDomainLiveConfigHelperMethod(virCapsPtr caps G_GNUC_UNUSED,
virDomainXMLOptionPtr xmlopt,
virDomainObjPtr dom,
unsigned int *flags,
return -1;
if (*flags & VIR_DOMAIN_AFFECT_CONFIG) {
- if (!(*persistentDef = virDomainObjGetPersistentDef(caps, xmlopt, dom, NULL))) {
+ if (!(*persistentDef = virDomainObjGetPersistentDef(xmlopt, dom, NULL))) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Get persistent config failed"));
return -1;
goto endjob;
}
- if (!(def = virDomainObjGetPersistentDef(cfg->caps, driver->xmlopt, vm, NULL)))
+ if (!(def = virDomainObjGetPersistentDef(driver->xmlopt, vm, NULL)))
goto endjob;
maplen = VIR_CPU_MAPLEN(nvcpus);
goto endjob;
/* Make a copy for updated domain. */
- if (!(vmdef = virDomainObjCopyPersistentDef(vm, cfg->caps,
- driver->xmlopt, NULL)))
+ if (!(vmdef = virDomainObjCopyPersistentDef(vm, driver->xmlopt, NULL)))
goto endjob;
if (libxlDomainAttachDeviceConfig(vmdef, dev) < 0)
goto endjob;
/* Make a copy for updated domain. */
- if (!(vmdef = virDomainObjCopyPersistentDef(vm, cfg->caps,
- driver->xmlopt, NULL)))
+ if (!(vmdef = virDomainObjCopyPersistentDef(vm, driver->xmlopt, NULL)))
goto endjob;
if (libxlDomainDetachDeviceConfig(vmdef, dev) < 0)
goto cleanup;
/* Make a copy for updated domain. */
- if (!(vmdef = virDomainObjCopyPersistentDef(vm, cfg->caps,
- driver->xmlopt, NULL)))
+ if (!(vmdef = virDomainObjCopyPersistentDef(vm, driver->xmlopt, NULL)))
goto cleanup;
if ((ret = libxlDomainUpdateDeviceConfig(vmdef, dev)) < 0)
virDomainDefPtr vmdef;
vm->persistent = 1;
- if (!(vmdef = virDomainObjGetPersistentDef(cfg->caps,
- driver->xmlopt, vm, NULL)))
+ if (!(vmdef = virDomainObjGetPersistentDef(driver->xmlopt, vm, NULL)))
goto cleanup;
if (virDomainDefSave(vmdef, driver->xmlopt, cfg->caps, cfg->configDir) < 0)
if (persistentDef) {
/* Make a copy for updated domain. */
- persistentDefCopy = virDomainObjCopyPersistentDef(vm, caps, driver->xmlopt, NULL);
+ persistentDefCopy = virDomainObjCopyPersistentDef(vm, driver->xmlopt, NULL);
if (!persistentDefCopy)
goto endjob;
}
unsigned int flags)
{
virLXCDriverPtr driver = dom->conn->privateData;
- virCapsPtr caps = NULL;
virDomainObjPtr vm = NULL;
virDomainDefPtr vmdef = NULL;
virDomainDeviceDefPtr dev = NULL, dev_copy = NULL;
if (virLXCDomainObjBeginJob(driver, vm, LXC_JOB_MODIFY) < 0)
goto cleanup;
- if (!(caps = virLXCDriverGetCapabilities(driver, false)))
- goto endjob;
-
if (virDomainObjUpdateModificationImpact(vm, &flags) < 0)
goto endjob;
* to CONFIG takes one instance.
*/
dev_copy = virDomainDeviceDefCopy(dev, vm->def,
- caps, driver->xmlopt, NULL);
+ driver->xmlopt, NULL);
if (!dev_copy)
goto endjob;
}
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
/* Make a copy for updated domain. */
- vmdef = virDomainObjCopyPersistentDef(vm, caps, driver->xmlopt, NULL);
+ vmdef = virDomainObjCopyPersistentDef(vm, driver->xmlopt, NULL);
if (!vmdef)
goto endjob;
virDomainDeviceDefFree(dev_copy);
virDomainDeviceDefFree(dev);
virDomainObjEndAPI(&vm);
- virObjectUnref(caps);
virObjectUnref(cfg);
return ret;
}
unsigned int flags)
{
virLXCDriverPtr driver = dom->conn->privateData;
- virCapsPtr caps = NULL;
virDomainObjPtr vm = NULL;
virDomainDefPtr vmdef = NULL;
virDomainDeviceDefPtr dev = NULL;
goto endjob;
}
- if (!(caps = virLXCDriverGetCapabilities(driver, false)))
- goto endjob;
-
if (!(dev = virDomainDeviceDefParse(xml, vm->def, driver->xmlopt, NULL,
VIR_DOMAIN_DEF_PARSE_INACTIVE)))
goto endjob;
/* Make a copy for updated domain. */
- if (!(vmdef = virDomainObjCopyPersistentDef(vm, caps, driver->xmlopt, NULL)))
+ if (!(vmdef = virDomainObjCopyPersistentDef(vm, driver->xmlopt, NULL)))
goto endjob;
/* virDomainDefCompatibleDevice call is delayed until we know the
virDomainDefFree(vmdef);
virDomainDeviceDefFree(dev);
virDomainObjEndAPI(&vm);
- virObjectUnref(caps);
virObjectUnref(cfg);
return ret;
}
* to CONFIG takes one instance.
*/
dev_copy = virDomainDeviceDefCopy(dev, vm->def,
- caps, driver->xmlopt, NULL);
+ driver->xmlopt, NULL);
if (!dev_copy)
goto endjob;
}
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
/* Make a copy for updated domain. */
- vmdef = virDomainObjCopyPersistentDef(vm, caps, driver->xmlopt, NULL);
+ vmdef = virDomainObjCopyPersistentDef(vm, driver->xmlopt, NULL);
if (!vmdef)
goto endjob;
* report implicit runtime defaults in the XML, like vnc listen/socket
*/
VIR_DEBUG("Setting current domain def as transient");
- if (virDomainObjSetDefTransient(caps, driver->xmlopt, vm, NULL) < 0)
+ if (virDomainObjSetDefTransient(driver->xmlopt, vm, NULL) < 0)
goto cleanup;
/* Run an early hook to set-up missing devices */
{
int ret = -1;
virDomainDefPtr copy = NULL;
- virCapsPtr caps = NULL;
virCheckFlags(VIR_DOMAIN_XML_COMMON_FLAGS | VIR_DOMAIN_XML_UPDATE_CPU, -1);
- if (!(caps = virQEMUDriverGetCapabilities(driver, false)))
- goto cleanup;
-
if (!(flags & (VIR_DOMAIN_XML_UPDATE_CPU | VIR_DOMAIN_XML_MIGRATABLE)))
goto format;
- if (!(copy = virDomainDefCopy(def, caps, driver->xmlopt, qemuCaps,
+ if (!(copy = virDomainDefCopy(def, driver->xmlopt, qemuCaps,
flags & VIR_DOMAIN_XML_MIGRATABLE)))
goto cleanup;
cleanup:
virDomainDefFree(copy);
- virObjectUnref(caps);
return ret;
}
* rely on the correct vm->def or vm->newDef being passed, so call the
* device parse based on which definition is in use */
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
- vmdef = virDomainObjCopyPersistentDef(vm, caps, driver->xmlopt,
+ vmdef = virDomainObjCopyPersistentDef(vm, driver->xmlopt,
priv->qemuCaps);
if (!vmdef)
goto cleanup;
* create a deep copy of device as adding
* to CONFIG takes one instance.
*/
- dev_copy = virDomainDeviceDefCopy(dev, vm->def, caps,
+ dev_copy = virDomainDeviceDefCopy(dev, vm->def,
driver->xmlopt, priv->qemuCaps);
if (!dev_copy)
goto endjob;
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
/* Make a copy for updated domain. */
- vmdef = virDomainObjCopyPersistentDef(vm, caps, driver->xmlopt,
+ vmdef = virDomainObjCopyPersistentDef(vm, driver->xmlopt,
priv->qemuCaps);
if (!vmdef)
goto endjob;
* create a deep copy of device as adding
* to CONFIG takes one instance.
*/
- dev_copy = virDomainDeviceDefCopy(dev, vm->def, caps,
+ dev_copy = virDomainDeviceDefCopy(dev, vm->def,
driver->xmlopt, priv->qemuCaps);
if (!dev_copy)
goto cleanup;
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
/* Make a copy for updated domain. */
- vmdef = virDomainObjCopyPersistentDef(vm, caps, driver->xmlopt, priv->qemuCaps);
+ vmdef = virDomainObjCopyPersistentDef(vm, driver->xmlopt, priv->qemuCaps);
if (!vmdef)
goto cleanup;
if (persistentDef) {
virDomainDeviceDef dev;
- if (!(vmdef = virDomainObjCopyPersistentDef(vm, caps, driver->xmlopt,
+ if (!(vmdef = virDomainObjCopyPersistentDef(vm, driver->xmlopt,
priv->qemuCaps)))
goto cleanup;
if (persistentDef) {
/* Make a copy for updated domain. */
- if (!(persistentDefCopy = virDomainObjCopyPersistentDef(vm, caps,
+ if (!(persistentDefCopy = virDomainObjCopyPersistentDef(vm,
driver->xmlopt,
priv->qemuCaps)))
goto endjob;
goto endjob;
if (vm->newDef) {
- def->parent.inactiveDom = virDomainDefCopy(vm->newDef, caps,
+ def->parent.inactiveDom = virDomainDefCopy(vm->newDef,
driver->xmlopt, priv->qemuCaps, true);
if (!def->parent.inactiveDom)
goto endjob;
virDomainDefPtr config = NULL;
virDomainDefPtr inactiveConfig = NULL;
g_autoptr(virQEMUDriverConfig) cfg = NULL;
- g_autoptr(virCaps) caps = NULL;
bool was_stopped = false;
qemuDomainSaveCookiePtr cookie;
virCPUDefPtr origCPU = NULL;
if (virDomainRevertToSnapshotEnsureACL(snapshot->domain->conn, vm->def) < 0)
goto cleanup;
- if (!(caps = virQEMUDriverGetCapabilities(driver, false)))
- goto cleanup;
-
if (qemuDomainHasBlockjob(vm, false)) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
_("domain has active block job"));
}
if (snap->def->dom) {
- config = virDomainDefCopy(snap->def->dom, caps,
+ config = virDomainDefCopy(snap->def->dom,
driver->xmlopt, priv->qemuCaps, true);
if (!config)
goto endjob;
}
if (snap->def->inactiveDom) {
- inactiveConfig = virDomainDefCopy(snap->def->inactiveDom, caps,
+ inactiveConfig = virDomainDefCopy(snap->def->inactiveDom,
driver->xmlopt, priv->qemuCaps, true);
if (!inactiveConfig)
goto endjob;
*/
if (snapdef->state == VIR_DOMAIN_SNAPSHOT_RUNNING ||
snapdef->state == VIR_DOMAIN_SNAPSHOT_PAUSED) {
- inactiveConfig = virDomainDefCopy(snap->def->dom, caps,
+ inactiveConfig = virDomainDefCopy(snap->def->dom,
driver->xmlopt, priv->qemuCaps, true);
if (!inactiveConfig)
goto endjob;
oldDef = vm->newDef;
vm->newDef = qemuMigrationCookieGetPersistent(mig);
- if (!(vmdef = virDomainObjGetPersistentDef(caps, driver->xmlopt, vm,
+ if (!(vmdef = virDomainObjGetPersistentDef(driver->xmlopt, vm,
priv->qemuCaps)))
goto error;
* report implicit runtime defaults in the XML, like vnc listen/socket
*/
VIR_DEBUG("Setting current domain def as transient");
- if (virDomainObjSetDefTransient(caps, driver->xmlopt, vm, priv->qemuCaps) < 0)
+ if (virDomainObjSetDefTransient(driver->xmlopt, vm, priv->qemuCaps) < 0)
goto cleanup;
if (flags & VIR_QEMU_PROCESS_START_PRETEND) {
virDomainObjSetState(dom, VIR_DOMAIN_RUNNING, reason);
dom->def->id = virAtomicIntAdd(&privconn->nextDomID, 1);
- if (virDomainObjSetDefTransient(privconn->caps,
- privconn->xmlopt,
+ if (virDomainObjSetDefTransient(privconn->xmlopt,
dom, NULL) < 0) {
goto cleanup;
}
goto cleanup;
} else {
if (!(def->parent.dom = virDomainDefCopy(vm->def,
- privconn->caps,
privconn->xmlopt,
NULL,
true)))
virDomainSnapshotSetCurrent(vm->snapshots, NULL);
- config = virDomainDefCopy(snap->def->dom, privconn->caps,
+ config = virDomainDefCopy(snap->def->dom,
privconn->xmlopt, NULL, true);
if (!config)
goto cleanup;
goto cleanup;
} else {
if (!(def->parent.dom = virDomainDefCopy(vm->def,
- privconn->caps,
privconn->xmlopt,
NULL,
true)))
/* create vm->newDef */
data->vm->persistent = true;
- if (virDomainObjSetDefTransient(caps, driver.xmlopt, data->vm, NULL) < 0)
+ if (virDomainObjSetDefTransient(driver.xmlopt, data->vm, NULL) < 0)
goto error;
priv = data->vm->privateData;