]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virsh: Provide completer for virtualization types
authorAmneesh Singh <natto@weirdnatto.in>
Sat, 2 Apr 2022 10:31:45 +0000 (16:01 +0530)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 4 Apr 2022 14:30:40 +0000 (16:30 +0200)
Related: https://gitlab.com/libvirt/libvirt/-/issues/9
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
tools/virsh-completer-host.c
tools/virsh-completer-host.h
tools/virsh-host.c

index cbdc3f0d4986094c68445c462057d1712d919400..2da51012d9102320854be98b03ba2049ee102147 100644 (file)
@@ -27,6 +27,7 @@
 #include "virxml.h"
 #include "virutil.h"
 #include "virsh-host.h"
+#include "conf/domain_conf.h"
 
 static char *
 virshPagesizeNodeToString(xmlNodePtr node)
@@ -180,3 +181,15 @@ virshNodeSuspendTargetCompleter(vshControl *ctl G_GNUC_UNUSED,
     return virshEnumComplete(VIR_NODE_SUSPEND_TARGET_LAST,
                              virshNodeSuspendTargetTypeToString);
 }
+
+
+char **
+virshDomainVirtTypeCompleter(vshControl *ctl G_GNUC_UNUSED,
+                             const vshCmd *cmd G_GNUC_UNUSED,
+                             unsigned int flags)
+{
+    virCheckFlags(0, NULL);
+
+    return virshEnumComplete(VIR_DOMAIN_VIRT_LAST,
+                             virDomainVirtTypeToString);
+}
index e71ccff5363c3612ef160fcd961a3dc609dd5103..11b2d1ae2bfda7aa7f7181758eeb74818b7122f7 100644 (file)
@@ -41,3 +41,8 @@ char **
 virshNodeSuspendTargetCompleter(vshControl *ctl,
                                 const vshCmd *cmd,
                                 unsigned int flags);
+
+char **
+virshDomainVirtTypeCompleter(vshControl *ctl,
+                             const vshCmd *cmd,
+                             unsigned int flags);
index 1e83d19fa1bbe2b60909c20f67b16bfef3cfd6ce..738265a69bdb89238844443c9e870b8dce04aed8 100644 (file)
@@ -77,6 +77,7 @@ static const vshCmdInfo info_domcapabilities[] = {
 static const vshCmdOptDef opts_domcapabilities[] = {
     {.name = "virttype",
      .type = VSH_OT_STRING,
+     .completer = virshDomainVirtTypeCompleter,
      .help = N_("virtualization type (/domain/@type)"),
     },
     {.name = "emulatorbin",
@@ -559,6 +560,7 @@ static const vshCmdInfo info_maxvcpus[] = {
 static const vshCmdOptDef opts_maxvcpus[] = {
     {.name = "type",
      .type = VSH_OT_STRING,
+     .completer = virshDomainVirtTypeCompleter,
      .help = N_("domain type")
     },
     {.name = NULL}
@@ -1577,6 +1579,7 @@ static const vshCmdOptDef opts_hypervisor_cpu_compare[] = {
     VIRSH_COMMON_OPT_FILE(N_("file containing an XML CPU description")),
     {.name = "virttype",
      .type = VSH_OT_STRING,
+     .completer = virshDomainVirtTypeCompleter,
      .help = N_("virtualization type (/domain/@type)"),
     },
     {.name = "emulator",
@@ -1686,6 +1689,7 @@ static const vshCmdOptDef opts_hypervisor_cpu_baseline[] = {
     VIRSH_COMMON_OPT_FILE(N_("file containing XML CPU descriptions")),
     {.name = "virttype",
      .type = VSH_OT_STRING,
+     .completer = virshDomainVirtTypeCompleter,
      .help = N_("virtualization type (/domain/@type)"),
     },
     {.name = "emulator",