]> xenbits.xensource.com Git - libvirt.git/commitdiff
virsh-completer: modify and fix bug in virshPoolTypeCompleter, now used for more...
authorAdam Julis <ajulis@redhat.com>
Tue, 20 Feb 2024 09:31:34 +0000 (10:31 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 20 Feb 2024 11:08:22 +0000 (12:08 +0100)
Signed-off-by: Adam Julis <ajulis@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
tools/virsh-completer-pool.c
tools/virsh-completer-pool.h
tools/virsh-pool.c

index 0600394411d906e3fa43cad0fe3f00e333fa712e..3568bb985b31d16ede02146b2592fb1b85a59178 100644 (file)
@@ -93,13 +93,16 @@ virshPoolTypeCompleter(vshControl *ctl,
     g_auto(GStrv) tmp = NULL;
     const char *type_str = NULL;
 
-    virCheckFlags(0, NULL);
-
-    if (vshCommandOptStringQuiet(ctl, cmd, "type", &type_str) < 0)
-        return NULL;
+    virCheckFlags(VIRSH_POOL_TYPE_COMPLETER_COMMA, NULL);
 
     tmp = virshEnumComplete(VIR_STORAGE_POOL_LAST,
                             virStoragePoolTypeToString);
 
+    if (!(flags & VIRSH_POOL_TYPE_COMPLETER_COMMA))
+        return g_steal_pointer(&tmp);
+
+    if (vshCommandOptStringQuiet(ctl, cmd, "type", &type_str) < 0)
+        return NULL;
+
     return virshCommaStringListComplete(type_str, (const char **)tmp);
 }
index 059b6ba9e0e8712a189e77cd24c306ee68c02ec7..bff3e5742b8aaccd8a17f3dfa11fbb21977a19d9 100644 (file)
@@ -32,6 +32,10 @@ virshPoolEventNameCompleter(vshControl *ctl,
                             const vshCmd *cmd,
                             unsigned int flags);
 
+enum {
+    VIRSH_POOL_TYPE_COMPLETER_COMMA = 1 << 0,
+};
+
 char **
 virshPoolTypeCompleter(vshControl *ctl,
                        const vshCmd *cmd,
index 36f00cf643053f46d70475c02a84c09c5c5efc57..8a583a8e1b00eee6c68dbef357cdf92f190d924d 100644 (file)
@@ -1089,6 +1089,7 @@ static const vshCmdOptDef opts_pool_list[] = {
     {.name = "type",
      .type = VSH_OT_STRING,
      .completer = virshPoolTypeCompleter,
+     .completer_flags = VIRSH_POOL_TYPE_COMPLETER_COMMA,
      .help = N_("only list pool of specified type(s) (if supported)")
     },
     {.name = "details",
@@ -1414,6 +1415,7 @@ static const vshCmdOptDef opts_find_storage_pool_sources_as[] = {
     {.name = "type",
      .type = VSH_OT_DATA,
      .flags = VSH_OFLAG_REQ,
+     .completer = virshPoolTypeCompleter,
      .help = N_("type of storage pool sources to find")
     },
     {.name = "host",
@@ -1501,6 +1503,7 @@ static const vshCmdOptDef opts_find_storage_pool_sources[] = {
     {.name = "type",
      .type = VSH_OT_DATA,
      .flags = VSH_OFLAG_REQ,
+     .completer = virshPoolTypeCompleter,
      .help = N_("type of storage pool sources to discover")
     },
     {.name = "srcSpec",