1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

qemu: refactor functions with removed driver if possible

Signed-off-by: Kristina Hanicova <khanicov@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Kristina Hanicova 2022-08-10 14:57:03 +02:00 committed by Ján Tomko
parent 203e74ff42
commit 42543a083a
5 changed files with 37 additions and 72 deletions

View File

@ -6081,8 +6081,7 @@ qemuDomainObjExitMonitor(virDomainObj *obj)
void qemuDomainObjEnterMonitor(virDomainObj *obj) void qemuDomainObjEnterMonitor(virDomainObj *obj)
{ {
ignore_value(qemuDomainObjEnterMonitorInternal(obj, ignore_value(qemuDomainObjEnterMonitorInternal(obj, VIR_ASYNC_JOB_NONE));
VIR_ASYNC_JOB_NONE));
} }
/* /*

View File

@ -184,8 +184,8 @@ qemuAutostartDomain(virDomainObj *vm,
virResetLastError(); virResetLastError();
if (vm->autostart && if (vm->autostart &&
!virDomainObjIsActive(vm)) { !virDomainObjIsActive(vm)) {
if (qemuProcessBeginJob(vm, if (qemuProcessBeginJob(vm, VIR_DOMAIN_JOB_OPERATION_START,
VIR_DOMAIN_JOB_OPERATION_START, flags) < 0) { flags) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to start job on VM '%s': %s"), _("Failed to start job on VM '%s': %s"),
vm->def->name, virGetLastErrorMessage()); vm->def->name, virGetLastErrorMessage());
@ -1623,8 +1623,7 @@ static virDomainPtr qemuDomainCreateXML(virConnectPtr conn,
NULL))) NULL)))
goto cleanup; goto cleanup;
if (qemuProcessBeginJob(vm, VIR_DOMAIN_JOB_OPERATION_START, if (qemuProcessBeginJob(vm, VIR_DOMAIN_JOB_OPERATION_START, flags) < 0) {
flags) < 0) {
qemuDomainRemoveInactive(driver, vm); qemuDomainRemoveInactive(driver, vm);
goto cleanup; goto cleanup;
} }
@ -1784,8 +1783,7 @@ qemuDomainShutdownFlagsAgent(virDomainObj *vm,
int agentFlag = isReboot ? QEMU_AGENT_SHUTDOWN_REBOOT : int agentFlag = isReboot ? QEMU_AGENT_SHUTDOWN_REBOOT :
QEMU_AGENT_SHUTDOWN_POWERDOWN; QEMU_AGENT_SHUTDOWN_POWERDOWN;
if (qemuDomainObjBeginAgentJob(vm, if (qemuDomainObjBeginAgentJob(vm, VIR_AGENT_JOB_MODIFY) < 0)
VIR_AGENT_JOB_MODIFY) < 0)
return -1; return -1;
if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_RUNNING) { if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_RUNNING) {
@ -1913,8 +1911,7 @@ qemuDomainRebootAgent(virDomainObj *vm,
if (!isReboot) if (!isReboot)
agentFlag = QEMU_AGENT_SHUTDOWN_POWERDOWN; agentFlag = QEMU_AGENT_SHUTDOWN_POWERDOWN;
if (qemuDomainObjBeginAgentJob(vm, if (qemuDomainObjBeginAgentJob(vm, VIR_AGENT_JOB_MODIFY) < 0)
VIR_AGENT_JOB_MODIFY) < 0)
return -1; return -1;
if (!qemuDomainAgentAvailable(vm, agentForced)) if (!qemuDomainAgentAvailable(vm, agentForced))
@ -1941,8 +1938,7 @@ qemuDomainRebootMonitor(virDomainObj *vm,
qemuDomainObjPrivate *priv = vm->privateData; qemuDomainObjPrivate *priv = vm->privateData;
int ret = -1; int ret = -1;
if (qemuDomainObjBeginJob(vm, if (qemuDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
VIR_JOB_MODIFY) < 0)
return -1; return -1;
if (virDomainObjCheckActive(vm) < 0) if (virDomainObjCheckActive(vm) < 0)
@ -3221,8 +3217,7 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom,
if (virDomainCoreDumpWithFormatEnsureACL(dom->conn, vm->def) < 0) if (virDomainCoreDumpWithFormatEnsureACL(dom->conn, vm->def) < 0)
goto cleanup; goto cleanup;
if (qemuDomainObjBeginAsyncJob(vm, if (qemuDomainObjBeginAsyncJob(vm, VIR_ASYNC_JOB_DUMP,
VIR_ASYNC_JOB_DUMP,
VIR_DOMAIN_JOB_OPERATION_DUMP, VIR_DOMAIN_JOB_OPERATION_DUMP,
flags) < 0) flags) < 0)
goto cleanup; goto cleanup;
@ -3460,8 +3455,7 @@ processWatchdogEvent(virQEMUDriver *driver,
switch (action) { switch (action) {
case VIR_DOMAIN_WATCHDOG_ACTION_DUMP: case VIR_DOMAIN_WATCHDOG_ACTION_DUMP:
if (qemuDomainObjBeginAsyncJob(vm, if (qemuDomainObjBeginAsyncJob(vm, VIR_ASYNC_JOB_DUMP,
VIR_ASYNC_JOB_DUMP,
VIR_DOMAIN_JOB_OPERATION_DUMP, VIR_DOMAIN_JOB_OPERATION_DUMP,
flags) < 0) { flags) < 0) {
return; return;
@ -4268,8 +4262,7 @@ static void qemuProcessEventHandler(void *data, void *opaque)
processEvent->action); processEvent->action);
break; break;
case QEMU_PROCESS_EVENT_BLOCK_JOB: case QEMU_PROCESS_EVENT_BLOCK_JOB:
processBlockJobEvent(vm, processBlockJobEvent(vm, processEvent->data,
processEvent->data,
processEvent->action, processEvent->action,
processEvent->status); processEvent->status);
break; break;
@ -6040,8 +6033,7 @@ qemuDomainRestoreInternal(virConnectPtr conn,
priv->hookRun = true; priv->hookRun = true;
} }
if (qemuProcessBeginJob(vm, VIR_DOMAIN_JOB_OPERATION_RESTORE, if (qemuProcessBeginJob(vm, VIR_DOMAIN_JOB_OPERATION_RESTORE, flags) < 0)
flags) < 0)
goto cleanup; goto cleanup;
ret = qemuSaveImageStartVM(conn, driver, vm, &fd, data, path, ret = qemuSaveImageStartVM(conn, driver, vm, &fd, data, path,
@ -6650,8 +6642,7 @@ qemuDomainCreateWithFlags(virDomainPtr dom, unsigned int flags)
if (virDomainCreateWithFlagsEnsureACL(dom->conn, vm->def) < 0) if (virDomainCreateWithFlagsEnsureACL(dom->conn, vm->def) < 0)
goto cleanup; goto cleanup;
if (qemuProcessBeginJob(vm, VIR_DOMAIN_JOB_OPERATION_START, if (qemuProcessBeginJob(vm, VIR_DOMAIN_JOB_OPERATION_START, flags) < 0)
flags) < 0)
goto cleanup; goto cleanup;
if (virDomainObjIsActive(vm)) { if (virDomainObjIsActive(vm)) {
@ -7001,8 +6992,7 @@ qemuDomainAttachDeviceLive(virDomainObj *vm,
break; break;
case VIR_DOMAIN_DEVICE_SHMEM: case VIR_DOMAIN_DEVICE_SHMEM:
ret = qemuDomainAttachShmemDevice(vm, ret = qemuDomainAttachShmemDevice(vm, dev->data.shmem);
dev->data.shmem);
if (!ret) { if (!ret) {
alias = dev->data.shmem->info.alias; alias = dev->data.shmem->info.alias;
dev->data.shmem = NULL; dev->data.shmem = NULL;
@ -7010,8 +7000,7 @@ qemuDomainAttachDeviceLive(virDomainObj *vm,
break; break;
case VIR_DOMAIN_DEVICE_WATCHDOG: case VIR_DOMAIN_DEVICE_WATCHDOG:
ret = qemuDomainAttachWatchdog(vm, ret = qemuDomainAttachWatchdog(vm, dev->data.watchdog);
dev->data.watchdog);
if (!ret) { if (!ret) {
alias = dev->data.watchdog->info.alias; alias = dev->data.watchdog->info.alias;
dev->data.watchdog = NULL; dev->data.watchdog = NULL;
@ -7293,8 +7282,7 @@ qemuDomainChangeMemoryLive(virQEMUDriver *driver G_GNUC_UNUSED,
if (!qemuDomainChangeMemoryLiveValidateChange(oldDef, newDef)) if (!qemuDomainChangeMemoryLiveValidateChange(oldDef, newDef))
return -1; return -1;
if (qemuDomainChangeMemoryRequestedSize(vm, if (qemuDomainChangeMemoryRequestedSize(vm, newDef->info.alias,
newDef->info.alias,
newDef->requestedsize) < 0) newDef->requestedsize) < 0)
return -1; return -1;
@ -13092,8 +13080,7 @@ qemuDomainMigrateGetMaxDowntime(virDomainPtr dom,
if (virDomainObjCheckActive(vm) < 0) if (virDomainObjCheckActive(vm) < 0)
goto endjob; goto endjob;
if (qemuMigrationParamsFetch(vm, VIR_ASYNC_JOB_NONE, if (qemuMigrationParamsFetch(vm, VIR_ASYNC_JOB_NONE, &migParams) < 0)
&migParams) < 0)
goto endjob; goto endjob;
if ((rc = qemuMigrationParamsGetULL(migParams, if ((rc = qemuMigrationParamsGetULL(migParams,
@ -13316,8 +13303,7 @@ qemuDomainMigrationGetPostcopyBandwidth(virDomainObj *vm,
if (virDomainObjCheckActive(vm) < 0) if (virDomainObjCheckActive(vm) < 0)
goto cleanup; goto cleanup;
if (qemuMigrationParamsFetch(vm, VIR_ASYNC_JOB_NONE, if (qemuMigrationParamsFetch(vm, VIR_ASYNC_JOB_NONE, &migParams) < 0)
&migParams) < 0)
goto cleanup; goto cleanup;
if ((rc = qemuMigrationParamsGetULL(migParams, if ((rc = qemuMigrationParamsGetULL(migParams,
@ -19065,8 +19051,7 @@ qemuDomainGetFSInfoAgent(virDomainObj *vm,
int ret = -1; int ret = -1;
qemuAgent *agent; qemuAgent *agent;
if (qemuDomainObjBeginAgentJob(vm, if (qemuDomainObjBeginAgentJob(vm, VIR_AGENT_JOB_QUERY) < 0)
VIR_AGENT_JOB_QUERY) < 0)
return ret; return ret;
if (virDomainObjCheckActive(vm) < 0) if (virDomainObjCheckActive(vm) < 0)
@ -20616,8 +20601,7 @@ qemuDomainGetGuestInfo(virDomainPtr dom,
if (virDomainGetGuestInfoEnsureACL(dom->conn, vm->def) < 0) if (virDomainGetGuestInfoEnsureACL(dom->conn, vm->def) < 0)
goto cleanup; goto cleanup;
if (qemuDomainObjBeginAgentJob(vm, if (qemuDomainObjBeginAgentJob(vm, VIR_AGENT_JOB_QUERY) < 0)
VIR_AGENT_JOB_QUERY) < 0)
goto cleanup; goto cleanup;
if (!qemuDomainAgentAvailable(vm, true)) if (!qemuDomainAgentAvailable(vm, true))

View File

@ -1904,8 +1904,7 @@ int qemuDomainAttachRedirdevDevice(virQEMUDriver *driver,
ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias)); ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias));
qemuDomainObjExitMonitor(vm); qemuDomainObjExitMonitor(vm);
virErrorRestore(&orig_err); virErrorRestore(&orig_err);
qemuDomainDelTLSObjects(vm, VIR_ASYNC_JOB_NONE, qemuDomainDelTLSObjects(vm, VIR_ASYNC_JOB_NONE, secAlias, tlsAlias);
secAlias, tlsAlias);
goto audit; goto audit;
} }
@ -2197,8 +2196,7 @@ qemuDomainAttachChrDevice(virQEMUDriver *driver,
qemuDomainObjExitMonitor(vm); qemuDomainObjExitMonitor(vm);
virErrorRestore(&orig_err); virErrorRestore(&orig_err);
qemuDomainDelTLSObjects(vm, VIR_ASYNC_JOB_NONE, qemuDomainDelTLSObjects(vm, VIR_ASYNC_JOB_NONE, secAlias, tlsAlias);
secAlias, tlsAlias);
goto audit; goto audit;
} }
@ -2303,8 +2301,7 @@ qemuDomainAttachRNGDevice(virQEMUDriver *driver,
qemuDomainObjExitMonitor(vm); qemuDomainObjExitMonitor(vm);
virErrorRestore(&orig_err); virErrorRestore(&orig_err);
qemuDomainDelTLSObjects(vm, VIR_ASYNC_JOB_NONE, qemuDomainDelTLSObjects(vm, VIR_ASYNC_JOB_NONE, secAlias, tlsAlias);
secAlias, tlsAlias);
goto audit; goto audit;
} }
@ -2405,8 +2402,7 @@ qemuDomainAttachMemory(virQEMUDriver *driver,
mem = NULL; mem = NULL;
/* this step is best effort, removing the device would be so much trouble */ /* this step is best effort, removing the device would be so much trouble */
ignore_value(qemuDomainUpdateMemoryDeviceInfo(vm, ignore_value(qemuDomainUpdateMemoryDeviceInfo(vm, VIR_ASYNC_JOB_NONE));
VIR_ASYNC_JOB_NONE));
ret = 0; ret = 0;

View File

@ -603,8 +603,7 @@ qemuMigrationDstStartNBDServer(virQEMUDriver *driver,
} }
} }
if (qemuDomainObjEnterMonitorAsync(vm, if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_MIGRATION_IN) < 0)
VIR_ASYNC_JOB_MIGRATION_IN) < 0)
goto cleanup; goto cleanup;
if (!server_started) { if (!server_started) {
@ -643,8 +642,7 @@ qemuMigrationDstStopNBDServer(virDomainObj *vm,
if (!mig->nbd) if (!mig->nbd)
return 0; return 0;
if (qemuDomainObjEnterMonitorAsync(vm, if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_MIGRATION_IN) < 0)
VIR_ASYNC_JOB_MIGRATION_IN) < 0)
return -1; return -1;
if (qemuMonitorNBDServerStop(priv->mon) < 0) if (qemuMonitorNBDServerStop(priv->mon) < 0)
@ -1049,8 +1047,7 @@ qemuMigrationSrcNBDStorageCopyBlockdev(virDomainObj *vm,
false))) false)))
return -1; return -1;
if (qemuDomainObjEnterMonitorAsync(vm, if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_MIGRATION_OUT) < 0)
VIR_ASYNC_JOB_MIGRATION_OUT) < 0)
return -1; return -1;
mon_ret = qemuBlockStorageSourceAttachApply(qemuDomainGetMonitor(vm), data); mon_ret = qemuBlockStorageSourceAttachApply(qemuDomainGetMonitor(vm), data);
@ -1097,8 +1094,7 @@ qemuMigrationSrcNBDStorageCopyDriveMirror(virDomainObj *vm,
diskAlias); diskAlias);
} }
if (qemuDomainObjEnterMonitorAsync(vm, if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_MIGRATION_OUT) < 0)
VIR_ASYNC_JOB_MIGRATION_OUT) < 0)
return -1; return -1;
mon_ret = qemuMonitorDriveMirror(qemuDomainGetMonitor(vm), mon_ret = qemuMonitorDriveMirror(qemuDomainGetMonitor(vm),
@ -1156,8 +1152,7 @@ qemuMigrationSrcNBDStorageCopyOne(virDomainObj *vm,
if (flags & VIR_MIGRATE_TLS || if (flags & VIR_MIGRATE_TLS ||
virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV)) { virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV)) {
rc = qemuMigrationSrcNBDStorageCopyBlockdev(vm, rc = qemuMigrationSrcNBDStorageCopyBlockdev(vm, disk, jobname,
disk, jobname,
sourcename, persistjob, sourcename, persistjob,
host, port, socket, host, port, socket,
mirror_speed, mirror_speed,
@ -2078,8 +2073,7 @@ qemuMigrationSrcWaitForCompletion(virDomainObj *vm,
jobData->status = VIR_DOMAIN_JOB_STATUS_MIGRATING; jobData->status = VIR_DOMAIN_JOB_STATUS_MIGRATING;
while ((rv = qemuMigrationAnyCompleted(vm, asyncJob, while ((rv = qemuMigrationAnyCompleted(vm, asyncJob, dconn, flags)) != 1) {
dconn, flags)) != 1) {
if (rv < 0) if (rv < 0)
return rv; return rv;
@ -2119,8 +2113,7 @@ qemuMigrationDstWaitForCompletion(virDomainObj *vm,
if (postcopy) if (postcopy)
flags = QEMU_MIGRATION_COMPLETED_POSTCOPY; flags = QEMU_MIGRATION_COMPLETED_POSTCOPY;
while ((rv = qemuMigrationAnyCompleted(vm, asyncJob, while ((rv = qemuMigrationAnyCompleted(vm, asyncJob, NULL, flags)) != 1) {
NULL, flags)) != 1) {
if (rv < 0 || virDomainObjWait(vm) < 0) if (rv < 0 || virDomainObjWait(vm) < 0)
return -1; return -1;
} }
@ -2208,8 +2201,7 @@ qemuMigrationSrcGraphicsRelocate(virDomainObj *vm,
if (port <= 0 && tlsPort <= 0) if (port <= 0 && tlsPort <= 0)
return 0; return 0;
if (qemuDomainObjEnterMonitorAsync(vm, if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_MIGRATION_OUT) == 0) {
VIR_ASYNC_JOB_MIGRATION_OUT) == 0) {
qemuDomainJobPrivate *jobPriv = priv->job.privateData; qemuDomainJobPrivate *jobPriv = priv->job.privateData;
rc = qemuMonitorGraphicsRelocate(priv->mon, type, listenAddress, rc = qemuMonitorGraphicsRelocate(priv->mon, type, listenAddress,
@ -2895,8 +2887,7 @@ qemuMigrationSrcBegin(virConnectPtr conn,
} }
if ((flags & VIR_MIGRATE_CHANGE_PROTECTION)) { if ((flags & VIR_MIGRATE_CHANGE_PROTECTION)) {
if (qemuMigrationJobStart(vm, VIR_ASYNC_JOB_MIGRATION_OUT, if (qemuMigrationJobStart(vm, VIR_ASYNC_JOB_MIGRATION_OUT, flags) < 0)
flags) < 0)
goto cleanup; goto cleanup;
asyncJob = VIR_ASYNC_JOB_MIGRATION_OUT; asyncJob = VIR_ASYNC_JOB_MIGRATION_OUT;
} else { } else {
@ -4903,8 +4894,7 @@ qemuMigrationSrcRun(virQEMUDriver *driver,
goto error; goto error;
} }
if (qemuDomainObjEnterMonitorAsync(vm, if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_MIGRATION_OUT) < 0)
VIR_ASYNC_JOB_MIGRATION_OUT) < 0)
goto error; goto error;
if (priv->job.abortJob) { if (priv->job.abortJob) {
@ -4945,8 +4935,7 @@ qemuMigrationSrcRun(virQEMUDriver *driver,
if (flags & VIR_MIGRATE_POSTCOPY) if (flags & VIR_MIGRATE_POSTCOPY)
waitFlags |= QEMU_MIGRATION_COMPLETED_POSTCOPY; waitFlags |= QEMU_MIGRATION_COMPLETED_POSTCOPY;
rc = qemuMigrationSrcWaitForCompletion(vm, rc = qemuMigrationSrcWaitForCompletion(vm, VIR_ASYNC_JOB_MIGRATION_OUT,
VIR_ASYNC_JOB_MIGRATION_OUT,
dconn, waitFlags); dconn, waitFlags);
if (rc == -2) if (rc == -2)
goto error; goto error;
@ -5047,8 +5036,7 @@ qemuMigrationSrcRun(virQEMUDriver *driver,
if (cancel && if (cancel &&
priv->job.current->status != VIR_DOMAIN_JOB_STATUS_HYPERVISOR_COMPLETED && priv->job.current->status != VIR_DOMAIN_JOB_STATUS_HYPERVISOR_COMPLETED &&
qemuDomainObjEnterMonitorAsync(vm, qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_MIGRATION_OUT) == 0) {
VIR_ASYNC_JOB_MIGRATION_OUT) == 0) {
qemuMonitorMigrateCancel(priv->mon); qemuMonitorMigrateCancel(priv->mon);
qemuDomainObjExitMonitor(vm); qemuDomainObjExitMonitor(vm);
} }
@ -6186,8 +6174,7 @@ qemuMigrationSrcPerformPhase(virQEMUDriver *driver,
/* If we didn't start the job in the begin phase, start it now. */ /* If we didn't start the job in the begin phase, start it now. */
if (!(flags & VIR_MIGRATE_CHANGE_PROTECTION)) { if (!(flags & VIR_MIGRATE_CHANGE_PROTECTION)) {
if (qemuMigrationJobStart(vm, VIR_ASYNC_JOB_MIGRATION_OUT, if (qemuMigrationJobStart(vm, VIR_ASYNC_JOB_MIGRATION_OUT, flags) < 0)
flags) < 0)
return ret; return ret;
} else if (!qemuMigrationJobIsActive(vm, VIR_ASYNC_JOB_MIGRATION_OUT)) { } else if (!qemuMigrationJobIsActive(vm, VIR_ASYNC_JOB_MIGRATION_OUT)) {
return ret; return ret;

View File

@ -311,8 +311,7 @@ qemuSnapshotCreateActiveInternal(virQEMUDriver *driver,
} }
} }
if (qemuDomainObjEnterMonitorAsync(vm, if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_SNAPSHOT) < 0) {
VIR_ASYNC_JOB_SNAPSHOT) < 0) {
resume = false; resume = false;
goto cleanup; goto cleanup;
} }