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. * operations do not persist past shutdown.
* *
* @param caps pointer to capabilities info * @param caps pointer to capabilities info
* @param xmlopt pointer to XML parser configuration object * @param xmlopt pointer to XML parser configuration object
* @param domain domain object pointer * @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 * @return 0 on success, -1 on failure
*/ */
int int
virDomainObjSetDefTransient(virCapsPtr caps, virDomainObjSetDefTransient(virCapsPtr caps,
virDomainXMLOptionPtr xmlopt, virDomainXMLOptionPtr xmlopt,
virDomainObjPtr domain, virDomainObjPtr domain)
bool live)
{ {
int ret = -1; int ret = -1;
if (!virDomainObjIsActive(domain) && !live)
return 0;
if (!domain->persistent) if (!domain->persistent)
return 0; return 0;
@ -2937,7 +2929,7 @@ virDomainObjGetPersistentDef(virCapsPtr caps,
virDomainObjPtr domain) virDomainObjPtr domain)
{ {
if (virDomainObjIsActive(domain) && if (virDomainObjIsActive(domain) &&
virDomainObjSetDefTransient(caps, xmlopt, domain, false) < 0) virDomainObjSetDefTransient(caps, xmlopt, domain) < 0)
return NULL; return NULL;
if (domain->newDef) if (domain->newDef)

View File

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

View File

@ -1096,8 +1096,7 @@ libxlDomainStart(libxlDriverPrivatePtr driver,
VIR_FREE(managed_save_path); VIR_FREE(managed_save_path);
} }
if (virDomainObjSetDefTransient(cfg->caps, driver->xmlopt, if (virDomainObjSetDefTransient(cfg->caps, driver->xmlopt, vm) < 0)
vm, true) < 0)
goto cleanup; goto cleanup;
if (virDomainLockProcessStart(driver->lockManager, 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 * report implicit runtime defaults in the XML, like vnc listen/socket
*/ */
VIR_DEBUG("Setting current domain def as transient"); 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; goto cleanup;
/* Run an early hook to set-up missing devices */ /* 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 * report implicit runtime defaults in the XML, like vnc listen/socket
*/ */
VIR_DEBUG("Setting current domain def as transient"); 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; goto stop;
if (!(flags & VIR_QEMU_PROCESS_START_PRETEND)) { 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 * report implicit runtime defaults in the XML, like vnc listen/socket
*/ */
VIR_DEBUG("Setting current domain def as transient"); 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; goto error;
vm->def->id = qemuDriverAllocateID(driver); vm->def->id = qemuDriverAllocateID(driver);

View File

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

View File

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