priv->qemuDevices = aliases;
return 0;
}
+
+bool
+qemuDomainDefCheckABIStability(virQEMUDriverPtr driver,
+ virDomainDefPtr src,
+ virDomainDefPtr dst)
+{
+ virDomainDefPtr migratableDefSrc = NULL;
+ virDomainDefPtr migratableDefDst = NULL;
+ const int flags = VIR_DOMAIN_XML_SECURE | VIR_DOMAIN_XML_UPDATE_CPU | VIR_DOMAIN_XML_MIGRATABLE;
+ bool ret = false;
+
+ if (!(migratableDefSrc = qemuDomainDefCopy(driver, src, flags)) ||
+ !(migratableDefDst = qemuDomainDefCopy(driver, dst, flags)))
+ goto cleanup;
+
+ ret = virDomainDefCheckABIStability(migratableDefSrc, migratableDefDst);
+
+cleanup:
+ virDomainDefFree(migratableDefSrc);
+ virDomainDefFree(migratableDefDst);
+ return ret;
+}
int qemuDomainUpdateDeviceList(virQEMUDriverPtr driver,
virDomainObjPtr vm);
+bool qemuDomainDefCheckABIStability(virQEMUDriverPtr driver,
+ virDomainDefPtr src,
+ virDomainDefPtr dst);
#endif /* __QEMU_DOMAIN_H__ */
VIR_DOMAIN_XML_INACTIVE))) {
goto endjob;
}
- if (!virDomainDefCheckABIStability(vm->def, def)) {
+ if (!qemuDomainDefCheckABIStability(driver, vm->def, def)) {
virDomainDefFree(def);
goto endjob;
}
qemuDomainObjPrivatePtr priv;
int rc;
virDomainDefPtr config = NULL;
- virDomainDefPtr migratableDef = NULL;
virQEMUDriverConfigPtr cfg = NULL;
virCapsPtr caps = NULL;
/* Transitions 5, 6, 8, 9 */
/* Check for ABI compatibility. We need to do this check against
* the migratable XML or it will always fail otherwise */
- if (!(migratableDef = qemuDomainDefCopy(driver, vm->def,
- VIR_DOMAIN_XML_MIGRATABLE)))
- goto cleanup;
-
- if (config && !virDomainDefCheckABIStability(migratableDef, config)) {
+ if (config && !qemuDomainDefCheckABIStability(driver, vm->def, config)) {
virErrorPtr err = virGetLastError();
if (!(flags & VIR_DOMAIN_SNAPSHOT_REVERT_FORCE)) {
}
if (vm)
virObjectUnlock(vm);
- virDomainDefFree(migratableDef);
virObjectUnref(caps);
virObjectUnref(cfg);
VIR_DOMAIN_XML_INACTIVE)))
goto cleanup;
- if (!virDomainDefCheckABIStability(vm->def, def))
+ if (!qemuDomainDefCheckABIStability(driver, vm->def, def))
goto cleanup;
rv = qemuDomainDefFormatLive(driver, def, false, true);
if (!newdef)
goto cleanup;
- if (!virDomainDefCheckABIStability(*def, newdef)) {
+ if (!qemuDomainDefCheckABIStability(driver, *def, newdef)) {
virDomainDefFree(newdef);
goto cleanup;
}