unsigned int flags)
{
qemuDomainObjPrivate *priv = vm->privateData;
- qemuDomainJobDataPrivate *privData = priv->job.current->privateData;
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(priv->driver);
g_autoptr(virDomainBackupDef) def = NULL;
g_autofree char *suffix = NULL;
qemuDomainObjSetAsyncJobMask(vm, (QEMU_JOB_DEFAULT_MASK |
JOB_MASK(QEMU_JOB_SUSPEND) |
JOB_MASK(QEMU_JOB_MODIFY)));
- privData->statsType = QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP;
+ qemuDomainJobSetStatsType(priv->job.current,
+ QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP);
if (!virDomainObjIsActive(vm)) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
};
+void
+qemuDomainJobSetStatsType(virDomainJobData *jobData,
+ qemuDomainJobStatsType type)
+{
+ qemuDomainJobDataPrivate *privData = jobData->privateData;
+
+ privData->statsType = type;
+}
+
+
const char *
qemuDomainAsyncJobPhaseToString(qemuDomainAsyncJob job,
int phase G_GNUC_UNUSED)
qemuDomainObjPrivateJobCallbacks *cb;
};
+void qemuDomainJobSetStatsType(virDomainJobData *jobData,
+ qemuDomainJobStatsType type);
+
const char *qemuDomainAsyncJobPhaseToString(qemuDomainAsyncJob job,
int phase);
int qemuDomainAsyncJobPhaseFromString(qemuDomainAsyncJob job,
int ret = -1;
virObjectEvent *event = NULL;
qemuDomainObjPrivate *priv = vm->privateData;
- qemuDomainJobDataPrivate *privJobCurrent = priv->job.current->privateData;
virQEMUSaveData *data = NULL;
g_autoptr(qemuDomainSaveCookie) cookie = NULL;
goto endjob;
}
- privJobCurrent->statsType = QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP;
+ qemuDomainJobSetStatsType(priv->job.current,
+ QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP);
/* Pause */
if (virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING) {
return -1;
if (detach) {
- qemuDomainJobDataPrivate *privStats = priv->job.current->privateData;
-
- privStats->statsType = QEMU_DOMAIN_JOB_STATS_TYPE_MEMDUMP;
+ qemuDomainJobSetStatsType(priv->job.current,
+ QEMU_DOMAIN_JOB_STATS_TYPE_MEMDUMP);
} else {
g_clear_pointer(&priv->job.current, virDomainJobDataFree);
}
virQEMUDriver *driver = dom->conn->privateData;
virDomainObj *vm;
qemuDomainObjPrivate *priv = NULL;
- qemuDomainJobDataPrivate *privJobCurrent = NULL;
bool resume = false, paused = false;
int ret = -1;
virObjectEvent *event = NULL;
goto endjob;
priv = vm->privateData;
- privJobCurrent = priv->job.current->privateData;
- privJobCurrent->statsType = QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP;
+ qemuDomainJobSetStatsType(priv->job.current,
+ QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP);
/* Migrate will always stop the VM, so the resume condition is
independent of whether the stop command is issued. */
if (dom) {
if (jobData) {
- qemuDomainJobDataPrivate *privJob = jobData->privateData;
-
priv->job.completed = g_steal_pointer(&jobData);
priv->job.completed->status = VIR_DOMAIN_JOB_STATUS_COMPLETED;
- privJob->statsType = QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION;
+ qemuDomainJobSetStatsType(jobData,
+ QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION);
}
if (qemuMigrationCookieFormat(mig, driver, vm,
unsigned long apiFlags)
{
qemuDomainObjPrivate *priv = vm->privateData;
- qemuDomainJobDataPrivate *privJob = priv->job.current->privateData;
virDomainJobOperation op;
unsigned long long mask;
if (qemuDomainObjBeginAsyncJob(driver, vm, job, op, apiFlags) < 0)
return -1;
- privJob->statsType = QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION;
+ qemuDomainJobSetStatsType(priv->job.current,
+ QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION);
qemuDomainObjSetAsyncJobMask(vm, mask);
return 0;
unsigned int *stopFlags)
{
qemuDomainObjPrivate *priv = vm->privateData;
- qemuDomainJobDataPrivate *privDataJobCurrent = NULL;
virDomainState state;
int reason;
unsigned long long now;
* active. This is possible because we are able to recover the state
* of blockjobs and also the backup job allows all sub-job types */
priv->job.current = virDomainJobDataInit(&qemuJobDataPrivateDataCallbacks);
- privDataJobCurrent = priv->job.current->privateData;
+ qemuDomainJobSetStatsType(priv->job.current,
+ QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP);
priv->job.current->operation = VIR_DOMAIN_JOB_OPERATION_BACKUP;
- privDataJobCurrent->statsType = QEMU_DOMAIN_JOB_STATS_TYPE_BACKUP;
priv->job.current->status = VIR_DOMAIN_JOB_STATUS_ACTIVE;
priv->job.current->started = now;
break;
/* do the memory snapshot if necessary */
if (memory) {
- qemuDomainJobDataPrivate *privJobCurrent = priv->job.current->privateData;
-
/* check if migration is possible */
if (!qemuMigrationSrcIsAllowed(driver, vm, false, 0))
goto cleanup;
- privJobCurrent->statsType = QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP;
+ qemuDomainJobSetStatsType(priv->job.current,
+ QEMU_DOMAIN_JOB_STATS_TYPE_SAVEDUMP);
/* allow the migration job to be cancelled or the domain to be paused */
qemuDomainObjSetAsyncJobMask(vm, (QEMU_JOB_DEFAULT_MASK |