[libvirt] [PATCH 07/22] qemu: Simplify call pattern of qemuBuildDriveURIString

Peter Krempa pkrempa at redhat.com
Mon Nov 25 16:11:51 UTC 2013


Automatically assign secret type from the disk source definition and
pull in adding of the comma. Then update callers to keep generated
output the same.
---
 src/qemu/qemu_command.c | 34 +++++++++++++---------------------
 1 file changed, 13 insertions(+), 21 deletions(-)

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 91b1bd2..2bb9b79 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -3699,9 +3699,7 @@ cleanup:
 static int
 qemuBuildDriveURIString(virConnectPtr conn,
                         virDomainDiskDefPtr disk,
-                        virBufferPtr opt,
-                        int protocol,
-                        virSecretUsageType secretUsageType)
+                        virBufferPtr opt)
 {
     char *secret = NULL;
     char *builturi = NULL;
@@ -3709,20 +3707,22 @@ qemuBuildDriveURIString(virConnectPtr conn,

     virBufferAddLit(opt, "file=");

-    if (disk->auth.username && secretUsageType != VIR_SECRET_USAGE_TYPE_NONE) {
+    if (disk->protocol == VIR_DOMAIN_DISK_PROTOCOL_ISCSI &&
+        disk->auth.username) {
         /* Get the secret string using the virDomainDiskDef */
         if (!(secret = qemuGetSecretString(conn,
-                                           virDomainDiskProtocolTypeToString(protocol),
+                                           virDomainDiskProtocolTypeToString(disk->protocol),
                                            false,
                                            disk->auth.secretType,
                                            disk->auth.username,
                                            disk->auth.secret.uuid,
                                            disk->auth.secret.usage,
-                                           secretUsageType)))
+                                           VIR_SECRET_USAGE_TYPE_ISCSI)))
             goto cleanup;
     }

-    if (!(builturi = qemuBuildNetworkDriveURI(protocol,
+
+    if (!(builturi = qemuBuildNetworkDriveURI(disk->protocol,
                                               disk->src,
                                               disk->nhosts,
                                               disk->hosts,
@@ -3731,6 +3731,7 @@ qemuBuildDriveURIString(virConnectPtr conn,
         goto cleanup;

     virBufferEscape(opt, ',', ",", "%s", builturi);
+    virBufferAddChar(opt, ',');

     ret = 0;

@@ -3760,9 +3761,7 @@ qemuBuildNBDString(virConnectPtr conn, virDomainDiskDefPtr disk, virBufferPtr op
             && !disk->hosts->name)
         || (disk->hosts->transport == VIR_DOMAIN_DISK_PROTO_TRANS_UNIX
             && disk->hosts->socket && disk->hosts->socket[0] != '/'))
-        return qemuBuildDriveURIString(conn, disk, opt,
-                                       VIR_DOMAIN_DISK_PROTOCOL_NBD,
-                                       VIR_SECRET_USAGE_TYPE_NONE);
+        return qemuBuildDriveURIString(conn, disk, opt);

     virBufferAddLit(opt, "file=nbd:");

@@ -3792,6 +3791,8 @@ qemuBuildNBDString(virConnectPtr conn, virDomainDiskDefPtr disk, virBufferPtr op
     if (disk->src)
         virBufferEscape(opt, ',', ",", ":exportname=%s", disk->src);

+    virBufferAddChar(opt, ',');
+
     return 0;
 }

@@ -3921,7 +3922,6 @@ qemuBuildDriveStr(virConnectPtr conn ATTRIBUTE_UNUSED,
             case VIR_DOMAIN_DISK_PROTOCOL_NBD:
                 if (qemuBuildNBDString(conn, disk, &opt) < 0)
                     goto error;
-                virBufferAddChar(&opt, ',');
                 break;
             case VIR_DOMAIN_DISK_PROTOCOL_RBD:
                 virBufferAddLit(&opt, "file=");
@@ -3929,19 +3929,11 @@ qemuBuildDriveStr(virConnectPtr conn ATTRIBUTE_UNUSED,
                     goto error;
                 virBufferAddChar(&opt, ',');
                 break;
+
             case VIR_DOMAIN_DISK_PROTOCOL_GLUSTER:
-                if (qemuBuildDriveURIString(conn, disk, &opt,
-                                            VIR_DOMAIN_DISK_PROTOCOL_GLUSTER,
-                                            VIR_SECRET_USAGE_TYPE_NONE) < 0)
-                    goto error;
-                virBufferAddChar(&opt, ',');
-                break;
             case VIR_DOMAIN_DISK_PROTOCOL_ISCSI:
-                if (qemuBuildDriveURIString(conn, disk, &opt,
-                                            VIR_DOMAIN_DISK_PROTOCOL_ISCSI,
-                                            VIR_SECRET_USAGE_TYPE_ISCSI) < 0)
+                if (qemuBuildDriveURIString(conn, disk, &opt) < 0)
                     goto error;
-                virBufferAddChar(&opt, ',');
                 break;

             case VIR_DOMAIN_DISK_PROTOCOL_SHEEPDOG:
-- 
1.8.4.3




More information about the libvir-list mailing list