]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: migration: Extract reporting of disk migration error
authorPeter Krempa <pkrempa@redhat.com>
Mon, 26 Nov 2018 13:19:57 +0000 (14:19 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 17 Jan 2019 16:12:50 +0000 (17:12 +0100)
The same message is reported in 3 distinct places. Move it out into a
single function.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_migration.c

index 6c5e5170a4ee11241cc5dbb2817c05ca23d8b639..97cb53fd651b9952cc7f6840683e6d0c26d62060 100644 (file)
@@ -463,6 +463,21 @@ qemuMigrationDstStopNBDServer(virQEMUDriverPtr driver,
 }
 
 
+static void
+qemuMigrationNBDReportMirrorError(virDomainDiskDefPtr disk,
+                                  const char *errmsg)
+{
+    if (errmsg) {
+        virReportError(VIR_ERR_OPERATION_FAILED,
+                       _("migration of disk %s failed: %s"),
+                       disk->dst, errmsg);
+    } else {
+        virReportError(VIR_ERR_OPERATION_FAILED,
+                       _("migration of disk %s failed"), disk->dst);
+    }
+}
+
+
 /**
  * qemuMigrationSrcNBDStorageCopyReady:
  * @vm: domain
@@ -492,15 +507,7 @@ qemuMigrationSrcNBDStorageCopyReady(virDomainObjPtr vm,
 
         status = qemuBlockJobUpdateDisk(vm, asyncJob, disk, &error);
         if (status == VIR_DOMAIN_BLOCK_JOB_FAILED) {
-            if (error) {
-                virReportError(VIR_ERR_OPERATION_FAILED,
-                               _("migration of disk %s failed: %s"),
-                               disk->dst, error);
-                VIR_FREE(error);
-            } else {
-                virReportError(VIR_ERR_OPERATION_FAILED,
-                               _("migration of disk %s failed"), disk->dst);
-            }
+            qemuMigrationNBDReportMirrorError(disk, error);
             return -1;
         }
         VIR_FREE(error);
@@ -553,14 +560,7 @@ qemuMigrationSrcNBDCopyCancelled(virDomainObjPtr vm,
         switch (status) {
         case VIR_DOMAIN_BLOCK_JOB_FAILED:
             if (check) {
-                if (error) {
-                    virReportError(VIR_ERR_OPERATION_FAILED,
-                                   _("migration of disk %s failed: %s"),
-                                   disk->dst, error);
-                } else {
-                    virReportError(VIR_ERR_OPERATION_FAILED,
-                                   _("migration of disk %s failed"), disk->dst);
-                }
+                qemuMigrationNBDReportMirrorError(disk, error);
                 failed = true;
             }
             ATTRIBUTE_FALLTHROUGH;
@@ -635,14 +635,7 @@ qemuMigrationSrcNBDCopyCancelOne(virQEMUDriverPtr driver,
     case VIR_DOMAIN_BLOCK_JOB_FAILED:
     case VIR_DOMAIN_BLOCK_JOB_CANCELED:
         if (failNoJob) {
-            if (error) {
-                virReportError(VIR_ERR_OPERATION_FAILED,
-                               _("migration of disk %s failed: %s"),
-                               disk->dst, error);
-            } else {
-                virReportError(VIR_ERR_OPERATION_FAILED,
-                               _("migration of disk %s failed"), disk->dst);
-            }
+            qemuMigrationNBDReportMirrorError(disk, error);
             goto cleanup;
         }
         ATTRIBUTE_FALLTHROUGH;