" domain was successfully started on destination or not",
vm->def->name);
qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT,
- priv->job.migParams);
+ priv->job.migParams, priv->job.apiFlags);
/* clear the job and let higher levels decide what to do */
qemuDomainObjDiscardAsyncJob(driver, vm);
break;
stopjob:
qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN,
- priv->job.migParams);
+ priv->job.migParams, priv->job.apiFlags);
if (stopProcess) {
unsigned int stopFlags = VIR_QEMU_PROCESS_STOP_MIGRATED;
}
qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT,
- priv->job.migParams);
+ priv->job.migParams, priv->job.apiFlags);
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
VIR_WARN("Failed to save status on vm %s", vm->def->name);
*/
if (!v3proto && ret < 0)
qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT,
- priv->job.migParams);
+ priv->job.migParams, priv->job.apiFlags);
if (qemuMigrationSrcRestoreDomainState(driver, vm)) {
event = virDomainEventLifecycleNewFromObj(vm,
endjob:
if (ret < 0) {
qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT,
- priv->job.migParams);
+ priv->job.migParams, priv->job.apiFlags);
qemuMigrationJobFinish(driver, vm);
} else {
qemuMigrationJobContinue(vm);
}
qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN,
- priv->job.migParams);
+ priv->job.migParams, priv->job.apiFlags);
qemuMigrationJobFinish(driver, vm);
if (!virDomainObjIsActive(vm))
* @driver: pointer to qemu driver
* @vm: domain object
* @asyncJob: migration job to join
+ * @apiFlags: API flags used to start the migration
*
* Deconstruct all the setup possibly done for TLS - delete the TLS and
* security objects, free the secinfo, and reset the migration params to "".
qemuMigrationParamsResetTLS(virQEMUDriverPtr driver,
virDomainObjPtr vm,
int asyncJob,
- qemuMigrationParamsPtr origParams)
+ qemuMigrationParamsPtr origParams,
+ unsigned long apiFlags)
{
char *tlsAlias = NULL;
char *secAlias = NULL;
- /* If QEMU does not support TLS migration we didn't set the aliases. */
- if (!origParams->params[QEMU_MIGRATION_PARAM_TLS_CREDS].set)
+ /* There's nothing to do if QEMU does not support TLS migration or we were
+ * not asked to enable it. */
+ if (!origParams->params[QEMU_MIGRATION_PARAM_TLS_CREDS].set ||
+ !(apiFlags & VIR_MIGRATE_TLS))
return;
/* NB: If either or both fail to allocate memory we can still proceed
qemuMigrationParamsReset(virQEMUDriverPtr driver,
virDomainObjPtr vm,
int asyncJob,
- qemuMigrationParamsPtr origParams)
+ qemuMigrationParamsPtr origParams,
+ unsigned long apiFlags)
{
virErrorPtr err = virSaveLastError();
- VIR_DEBUG("Resetting migration parameters %p", origParams);
+ VIR_DEBUG("Resetting migration parameters %p, flags 0x%lx",
+ origParams, apiFlags);
if (!virDomainObjIsActive(vm) || !origParams)
goto cleanup;
if (qemuMigrationParamsApply(driver, vm, asyncJob, origParams) < 0)
goto cleanup;
- qemuMigrationParamsResetTLS(driver, vm, asyncJob, origParams);
+ qemuMigrationParamsResetTLS(driver, vm, asyncJob, origParams, apiFlags);
cleanup:
if (err) {
qemuMigrationParamsReset(virQEMUDriverPtr driver,
virDomainObjPtr vm,
int asyncJob,
- qemuMigrationParamsPtr origParams);
+ qemuMigrationParamsPtr origParams,
+ unsigned long apiFlags);
void
qemuMigrationParamsFormat(virBufferPtr buf,
break;
}
- qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_NONE, job->migParams);
+ qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_NONE,
+ job->migParams, job->apiFlags);
return 0;
}
}
}
- qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_NONE, job->migParams);
+ qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_NONE,
+ job->migParams, job->apiFlags);
return 0;
}