diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 20c9c51883..c77ee599e5 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -808,6 +808,26 @@ static virDomainObjPtr virDomainObjNew(virCapsPtr caps) return domain; } +void virDomainObjAssignDef(virDomainObjPtr domain, + const virDomainDefPtr def, + bool live) +{ + if (!virDomainObjIsActive(domain)) { + if (live) { + /* save current configuration to be restored on domain shutdown */ + if (!domain->newDef) + domain->newDef = domain->def; + domain->def = def; + } else { + virDomainDefFree(domain->def); + domain->def = def; + } + } else { + virDomainDefFree(domain->newDef); + domain->newDef = def; + } +} + virDomainObjPtr virDomainAssignDef(virCapsPtr caps, virDomainObjListPtr doms, const virDomainDefPtr def, @@ -817,21 +837,7 @@ virDomainObjPtr virDomainAssignDef(virCapsPtr caps, char uuidstr[VIR_UUID_STRING_BUFLEN]; if ((domain = virDomainFindByUUID(doms, def->uuid))) { - if (!virDomainObjIsActive(domain)) { - if (live) { - /* save current configuration to be restored on domain shutdown */ - if (!domain->newDef) - domain->newDef = domain->def; - domain->def = def; - } else { - virDomainDefFree(domain->def); - domain->def = def; - } - } else { - virDomainDefFree(domain->newDef); - domain->newDef = def; - } - + virDomainObjAssignDef(domain, def, live); return domain; } diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index a7206d33ba..9f87fc514a 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -954,6 +954,9 @@ virDomainObjPtr virDomainAssignDef(virCapsPtr caps, virDomainObjListPtr doms, const virDomainDefPtr def, bool live); +void virDomainObjAssignDef(virDomainObjPtr domain, + const virDomainDefPtr def, + bool live); void virDomainRemoveInactive(virDomainObjListPtr doms, virDomainObjPtr dom); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index bdeab0f56a..1594a0859b 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -215,6 +215,7 @@ virDomainSnapshotObjUnref; virDomainSnapshotDefParseString; virDomainSnapshotDefFormat; virDomainSnapshotAssignDef; +virDomainObjAssignDef; # domain_event.h