Do not check for domain liveness in virDomainObjSetDefTransient

Remove the live attribute and mark the definition as transient
whether the domain is runing or not.

There were only two callers left calling with live=false:
* testDomainStartState, where the domain already is active
  because we assigned vm->def->id just a few lines above the call
* virDomainObjGetPersistentDef, which now only calls
  virDomainObjSetDefTransient for an active domain
This commit is contained in:
Ján Tomko 2016-05-27 14:00:34 +02:00
parent 1dcb1dc0f9
commit 8c40ede4a4
7 changed files with 10 additions and 21 deletions

View File

@ -2885,29 +2885,21 @@ virDomainObjWaitUntil(virDomainObjPtr vm,
/*
* Mark the running VM config as transient. Ensures transient hotplug
* Mark the current VM config as transient. Ensures transient hotplug
* operations do not persist past shutdown.
*
* @param caps pointer to capabilities info
* @param xmlopt pointer to XML parser configuration object
* @param domain domain object pointer
* @param live if true, run this operation even for an inactive domain.
* this allows freely updated domain->def with runtime defaults before
* starting the VM, which will be discarded on VM shutdown. Any cleanup
* paths need to be sure to handle newDef if the domain is never started.
* @return 0 on success, -1 on failure
*/
int
virDomainObjSetDefTransient(virCapsPtr caps,
virDomainXMLOptionPtr xmlopt,
virDomainObjPtr domain,
bool live)
virDomainObjPtr domain)
{
int ret = -1;
if (!virDomainObjIsActive(domain) && !live)
return 0;
if (!domain->persistent)
return 0;
@ -2937,7 +2929,7 @@ virDomainObjGetPersistentDef(virCapsPtr caps,
virDomainObjPtr domain)
{
if (virDomainObjIsActive(domain) &&
virDomainObjSetDefTransient(caps, xmlopt, domain, false) < 0)
virDomainObjSetDefTransient(caps, xmlopt, domain) < 0)
return NULL;
if (domain->newDef)

View File

@ -2525,8 +2525,7 @@ void virDomainObjAssignDef(virDomainObjPtr domain,
virDomainDefPtr *oldDef);
int virDomainObjSetDefTransient(virCapsPtr caps,
virDomainXMLOptionPtr xmlopt,
virDomainObjPtr domain,
bool live);
virDomainObjPtr domain);
virDomainDefPtr
virDomainObjGetPersistentDef(virCapsPtr caps,
virDomainXMLOptionPtr xmlopt,

View File

@ -1096,8 +1096,7 @@ libxlDomainStart(libxlDriverPrivatePtr driver,
VIR_FREE(managed_save_path);
}
if (virDomainObjSetDefTransient(cfg->caps, driver->xmlopt,
vm, true) < 0)
if (virDomainObjSetDefTransient(cfg->caps, driver->xmlopt, vm) < 0)
goto cleanup;
if (virDomainLockProcessStart(driver->lockManager,

View File

@ -1286,7 +1286,7 @@ int virLXCProcessStart(virConnectPtr conn,
* 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, true) < 0)
if (virDomainObjSetDefTransient(caps, driver->xmlopt, vm) < 0)
goto cleanup;
/* Run an early hook to set-up missing devices */

View File

@ -4447,7 +4447,7 @@ qemuProcessInit(virQEMUDriverPtr driver,
* 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, true) < 0)
if (virDomainObjSetDefTransient(caps, driver->xmlopt, vm) < 0)
goto stop;
if (!(flags & VIR_QEMU_PROCESS_START_PRETEND)) {
@ -5944,7 +5944,7 @@ int qemuProcessAttach(virConnectPtr conn ATTRIBUTE_UNUSED,
* 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, true) < 0)
if (virDomainObjSetDefTransient(caps, driver->xmlopt, vm) < 0)
goto error;
vm->def->id = qemuDriverAllocateID(driver);

View File

@ -601,7 +601,7 @@ testDomainStartState(testDriverPtr privconn,
if (virDomainObjSetDefTransient(privconn->caps,
privconn->xmlopt,
dom, false) < 0) {
dom) < 0) {
goto cleanup;
}

View File

@ -1099,8 +1099,7 @@ static int umlStartVMDaemon(virConnectPtr conn,
* report implicit runtime defaults in the XML, like vnc listen/socket
*/
VIR_DEBUG("Setting current domain def as transient");
if (virDomainObjSetDefTransient(driver->caps, driver->xmlopt,
vm, true) < 0) {
if (virDomainObjSetDefTransient(driver->caps, driver->xmlopt, vm) < 0) {
VIR_FORCE_CLOSE(logfd);
return -1;
}