[libvirt] [PATCH v2 1/2] virsh: Support alias in attach-disk

Han Han hhan at redhat.com
Sun Jul 15 10:08:16 UTC 2018


Add --alias to support custom disk alias in virsh attach-disk.
Report error if custom alias doesn't start with 'ua-'.

Signed-off-by: Han Han <hhan at redhat.com>
---
 tools/virsh-domain.c | 15 ++++++++++++++-
 tools/virsh.pod      |  3 ++-
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 8adec1d9b1..467417852e 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -290,6 +290,10 @@ static const vshCmdOptDef opts_attach_disk[] = {
      .type = VSH_OT_STRING,
      .help = N_("wwn of disk device")
     },
+    {.name = "alias",
+     .type = VSH_OT_STRING,
+     .help = N_("custom alias name of disk device")
+    },
     {.name = "rawio",
      .type = VSH_OT_BOOL,
      .help = N_("needs rawio capability")
@@ -574,7 +578,7 @@ cmdAttachDisk(vshControl *ctl, const vshCmd *cmd)
                 *subdriver = NULL, *type = NULL, *mode = NULL,
                 *iothread = NULL, *cache = NULL, *io = NULL,
                 *serial = NULL, *straddr = NULL, *wwn = NULL,
-                *targetbus = NULL;
+                *targetbus = NULL, *alias = NULL;
     struct DiskAddress diskAddr;
     bool isFile = false, functionReturn = false;
     int ret;
@@ -611,6 +615,7 @@ cmdAttachDisk(vshControl *ctl, const vshCmd *cmd)
         vshCommandOptStringReq(ctl, cmd, "wwn", &wwn) < 0 ||
         vshCommandOptStringReq(ctl, cmd, "address", &straddr) < 0 ||
         vshCommandOptStringReq(ctl, cmd, "targetbus", &targetbus) < 0 ||
+        vshCommandOptStringReq(ctl, cmd, "alias", &alias) < 0 ||
         vshCommandOptStringReq(ctl, cmd, "sourcetype", &stype) < 0)
         goto cleanup;
 
@@ -680,6 +685,14 @@ cmdAttachDisk(vshControl *ctl, const vshCmd *cmd)
     if (serial)
         virBufferAsprintf(&buf, "<serial>%s</serial>\n", serial);
 
+    if (alias) {
+        if (!STRPREFIX(alias, "ua-")) {
+            vshError(ctl, _("Custom alias name should start with ua-"));
+            goto cleanup;
+        }
+        virBufferAsprintf(&buf, "<alias name='%s'/>", alias);
+    }
+
     if (wwn)
         virBufferAsprintf(&buf, "<wwn>%s</wwn>\n", wwn);
 
diff --git a/tools/virsh.pod b/tools/virsh.pod
index 771e99591e..4f0d12225a 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -3027,7 +3027,7 @@ expected.
 =item B<attach-disk> I<domain> I<source> I<target> [[[I<--live>] [I<--config>]
 | [I<--current>]] | [I<--persistent>]] [I<--targetbus bus>] [I<--driver
 driver>] [I<--subdriver subdriver>] [I<--iothread iothread>]
-[I<--cache cache>] [I<--io io>] [I<--type type>]
+[I<--cache cache>] [I<--io io>] [I<--type type>] [I<--alias alias>]
 [I<--mode mode>] [I<--sourcetype sourcetype>] [I<--serial serial>] [I<--wwn
 wwn>] [I<--rawio>] [I<--address address>] [I<--multifunction>] [I<--print-xml>]
 
@@ -3050,6 +3050,7 @@ disk formats.  I<type> can indicate I<lun>, I<cdrom> or I<floppy> as
 alternative to the disk default, although this use only replaces the media
 within the existing virtual cdrom or floppy device; consider using
 B<update-device> for this usage instead.
+I<alias> can set user supplied alias. It should start with 'ua-'.
 I<mode> can specify the two specific mode I<readonly> or I<shareable>.
 I<sourcetype> can indicate the type of source (block|file)
 I<cache> can be one of "default", "none", "writethrough", "writeback",
-- 
2.17.1




More information about the libvir-list mailing list