diff --git a/tools/virsh-completer-pool.c b/tools/virsh-completer-pool.c index 0600394411..3568bb985b 100644 --- a/tools/virsh-completer-pool.c +++ b/tools/virsh-completer-pool.c @@ -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); } diff --git a/tools/virsh-completer-pool.h b/tools/virsh-completer-pool.h index 059b6ba9e0..bff3e5742b 100644 --- a/tools/virsh-completer-pool.h +++ b/tools/virsh-completer-pool.h @@ -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, diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c index 36f00cf643..8a583a8e1b 100644 --- a/tools/virsh-pool.c +++ b/tools/virsh-pool.c @@ -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",