]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Don't pass redundant job name around
authorJiri Denemark <jdenemar@redhat.com>
Thu, 28 May 2015 09:17:17 +0000 (11:17 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Fri, 19 Jun 2015 13:15:12 +0000 (15:15 +0200)
Instead of passing current job name to several functions which already
know what the current job is we can generate the name where we actually
need to use it.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
src/qemu/qemu_migration.c

index a9a5a2d723c0e9ee9ba49f786539f7bc8e19165f..778e0caa26358edf2b226cc47380a02b9f61194f 100644 (file)
@@ -2494,6 +2494,24 @@ qemuMigrationFetchJobStatus(virQEMUDriverPtr driver,
 }
 
 
+static const char *
+qemuMigrationJobName(virDomainObjPtr vm)
+{
+    qemuDomainObjPrivatePtr priv = vm->privateData;
+
+    switch (priv->job.asyncJob) {
+    case QEMU_ASYNC_JOB_MIGRATION_OUT:
+        return _("migration job");
+    case QEMU_ASYNC_JOB_SAVE:
+        return _("domain save job");
+    case QEMU_ASYNC_JOB_DUMP:
+        return _("domain core dump job");
+    default:
+        return _("job");
+    }
+}
+
+
 static int
 qemuMigrationUpdateJobStatus(virQEMUDriverPtr driver,
                              virDomainObjPtr vm,
@@ -2514,7 +2532,6 @@ qemuMigrationUpdateJobStatus(virQEMUDriverPtr driver,
 static int
 qemuMigrationCheckJobStatus(virQEMUDriverPtr driver,
                             virDomainObjPtr vm,
-                            const char *job,
                             qemuDomainAsyncJob asyncJob)
 {
     qemuDomainObjPrivatePtr priv = vm->privateData;
@@ -2525,18 +2542,18 @@ qemuMigrationCheckJobStatus(virQEMUDriverPtr driver,
 
     switch (jobInfo->type) {
     case VIR_DOMAIN_JOB_NONE:
-        virReportError(VIR_ERR_OPERATION_FAILED,
-                       _("%s: %s"), job, _("is not active"));
+        virReportError(VIR_ERR_OPERATION_FAILED, _("%s: %s"),
+                       qemuMigrationJobName(vm), _("is not active"));
         return -1;
 
     case VIR_DOMAIN_JOB_FAILED:
-        virReportError(VIR_ERR_OPERATION_FAILED,
-                       _("%s: %s"), job, _("unexpectedly failed"));
+        virReportError(VIR_ERR_OPERATION_FAILED, _("%s: %s"),
+                       qemuMigrationJobName(vm), _("unexpectedly failed"));
         return -1;
 
     case VIR_DOMAIN_JOB_CANCELLED:
-        virReportError(VIR_ERR_OPERATION_ABORTED,
-                       _("%s: %s"), job, _("canceled by client"));
+        virReportError(VIR_ERR_OPERATION_ABORTED, _("%s: %s"),
+                       qemuMigrationJobName(vm), _("canceled by client"));
         return -1;
 
     case VIR_DOMAIN_JOB_BOUNDED:
@@ -2562,31 +2579,16 @@ qemuMigrationWaitForCompletion(virQEMUDriverPtr driver,
 {
     qemuDomainObjPrivatePtr priv = vm->privateData;
     qemuDomainJobInfoPtr jobInfo = priv->job.current;
-    const char *job;
     int pauseReason;
     int ret = -1;
 
-    switch (priv->job.asyncJob) {
-    case QEMU_ASYNC_JOB_MIGRATION_OUT:
-        job = _("migration job");
-        break;
-    case QEMU_ASYNC_JOB_SAVE:
-        job = _("domain save job");
-        break;
-    case QEMU_ASYNC_JOB_DUMP:
-        job = _("domain core dump job");
-        break;
-    default:
-        job = _("job");
-    }
-
     jobInfo->type = VIR_DOMAIN_JOB_UNBOUNDED;
 
     while (jobInfo->type == VIR_DOMAIN_JOB_UNBOUNDED) {
         /* Poll every 50ms for progress & to allow cancellation */
         struct timespec ts = { .tv_sec = 0, .tv_nsec = 50 * 1000 * 1000ull };
 
-        if (qemuMigrationCheckJobStatus(driver, vm, job, asyncJob) < 0)
+        if (qemuMigrationCheckJobStatus(driver, vm, asyncJob) < 0)
             goto error;
 
         if (storage &&
@@ -2597,8 +2599,8 @@ qemuMigrationWaitForCompletion(virQEMUDriverPtr driver,
         if (abort_on_error &&
             virDomainObjGetState(vm, &pauseReason) == VIR_DOMAIN_PAUSED &&
             pauseReason == VIR_DOMAIN_PAUSED_IOERROR) {
-            virReportError(VIR_ERR_OPERATION_FAILED,
-                           _("%s: %s"), job, _("failed due to I/O error"));
+            virReportError(VIR_ERR_OPERATION_FAILED, _("%s: %s"),
+                           qemuMigrationJobName(vm), _("failed due to I/O error"));
             goto error;
         }
 
@@ -4251,7 +4253,7 @@ qemuMigrationRun(virQEMUDriverPtr driver,
          * rather failed later on.  Check its status before waiting for a
          * connection from qemu which may never be initiated.
          */
-        if (qemuMigrationCheckJobStatus(driver, vm, _("migration job"),
+        if (qemuMigrationCheckJobStatus(driver, vm,
                                         QEMU_ASYNC_JOB_MIGRATION_OUT) < 0)
             goto cancel;