]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Use qemuAliasFromDisk to generate drive alias
authorJohn Ferlan <jferlan@redhat.com>
Wed, 29 Jun 2016 17:11:58 +0000 (13:11 -0400)
committerJohn Ferlan <jferlan@redhat.com>
Tue, 2 Aug 2016 14:11:11 +0000 (10:11 -0400)
Rather than open code build the drive alias command in multiple places,
use the helper to ensure consistency.

src/qemu/qemu_command.c
src/qemu/qemu_driver.c
src/qemu/qemu_hotplug.c
src/qemu/qemu_migration.c

index 137eb735a0ba6acd0bcbf9f7209d2d3febe33be3..95cec3f8f36444e70bcf3882eb45ff048d225c46 100644 (file)
@@ -1427,7 +1427,11 @@ qemuBuildDriveStr(virDomainDiskDefPtr disk,
     }
 
     if (emitDeviceSyntax) {
-        virBufferAsprintf(&opt, ",id=%s%s", QEMU_DRIVE_HOST_PREFIX, disk->info.alias);
+        char *drivealias = qemuAliasFromDisk(disk);
+        if (!drivealias)
+            goto error;
+        virBufferAsprintf(&opt, ",id=%s", drivealias);
+        VIR_FREE(drivealias);
     } else {
         if (busid == -1 && unitid == -1) {
             if (idx != -1)
@@ -1788,6 +1792,7 @@ qemuBuildDriveDevStr(const virDomainDef *def,
     virBuffer opt = VIR_BUFFER_INITIALIZER;
     const char *bus = virDomainDiskQEMUBusTypeToString(disk->bus);
     const char *contAlias;
+    char *drivealias;
     int controllerModel;
 
     if (qemuCheckDiskConfig(disk) < 0)
@@ -2013,8 +2018,10 @@ qemuBuildDriveDevStr(const virDomainDef *def,
         goto error;
     }
 
-    virBufferAsprintf(&opt, ",drive=%s%s", QEMU_DRIVE_HOST_PREFIX, disk->info.alias);
-    virBufferAsprintf(&opt, ",id=%s", disk->info.alias);
+    if (!(drivealias = qemuAliasFromDisk(disk)))
+        goto error;
+    virBufferAsprintf(&opt, ",drive=%s,id=%s", drivealias, disk->info.alias);
+    VIR_FREE(drivealias);
     if (bootindex && virQEMUCapsGet(qemuCaps, QEMU_CAPS_BOOTINDEX))
         virBufferAsprintf(&opt, ",bootindex=%u", bootindex);
     if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKIO)) {
index c048cea58c17f6bca13d154c0386e289afccf505..11db9a5e7d7ee1ce18d2afaec2fd311c2418a48b 100644 (file)
@@ -10377,8 +10377,7 @@ qemuDomainBlockResize(virDomainPtr dom,
         disk->src->format == VIR_STORAGE_FILE_QED)
         size = VIR_ROUND_UP(size, 512);
 
-    if (virAsprintf(&device, "%s%s", QEMU_DRIVE_HOST_PREFIX,
-                    disk->info.alias) < 0)
+    if (!(device = qemuAliasFromDisk(disk)))
         goto endjob;
 
     qemuDomainObjEnterMonitor(driver, vm);
index 356741fd32777d2050fa2a447874c9f59e944b98..4d5634ae7b1116f603a7a350fb0df1184dc7912b 100644 (file)
@@ -2972,8 +2972,7 @@ qemuDomainRemoveDiskDevice(virQEMUDriverPtr driver,
 
     /* build the actual drive id string as the disk->info.alias doesn't
      * contain the QEMU_DRIVE_HOST_PREFIX that is passed to qemu */
-    if (virAsprintf(&drivestr, "%s%s",
-                    QEMU_DRIVE_HOST_PREFIX, disk->info.alias) < 0)
+    if (!(drivestr = qemuAliasFromDisk(disk)))
         return -1;
 
     /* Let's look for some markers for a secret object and create an alias
index 04c847e86df570ce1c72d483ab80931d491957db..d018addaec9d65ffe39975c56d3f309df1258820 100644 (file)
@@ -1761,8 +1761,7 @@ qemuMigrationStartNBDServer(virQEMUDriverPtr driver,
             continue;
 
         VIR_FREE(diskAlias);
-        if (virAsprintf(&diskAlias, "%s%s",
-                        QEMU_DRIVE_HOST_PREFIX, disk->info.alias) < 0)
+        if (!(diskAlias = qemuAliasFromDisk(disk)))
             goto cleanup;
 
         if (qemuDomainObjEnterMonitorAsync(driver, vm,
@@ -1978,8 +1977,7 @@ qemuMigrationCancelOneDriveMirror(virQEMUDriverPtr driver,
         return 1;
     }
 
-    if (virAsprintf(&diskAlias, "%s%s",
-                    QEMU_DRIVE_HOST_PREFIX, disk->info.alias) < 0)
+    if (!(diskAlias = qemuAliasFromDisk(disk)))
         return -1;
 
     if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
@@ -2154,8 +2152,7 @@ qemuMigrationDriveMirror(virQEMUDriverPtr driver,
         if (!qemuMigrateDisk(disk, nmigrate_disks, migrate_disks))
             continue;
 
-        if ((virAsprintf(&diskAlias, "%s%s",
-                         QEMU_DRIVE_HOST_PREFIX, disk->info.alias) < 0) ||
+        if (!(diskAlias = qemuAliasFromDisk(disk)) ||
             (virAsprintf(&nbd_dest, "nbd:%s:%d:exportname=%s",
                          hoststr, port, diskAlias) < 0))
             goto cleanup;