From 0d9bcd6ffa383cde2f375564a14f4c1a9ddafb4c Mon Sep 17 00:00:00 2001 From: Chen Hanxiao Date: Fri, 6 Jan 2017 22:42:52 +0800 Subject: [PATCH] virsh: pool-list: introduce --name for printing pool's name only This patch will introduce option --name. If specified, only name of pools will be printed out. Signed-off-by: Chen Hanxiao --- tools/virsh-pool.c | 22 ++++++++++++++++++++-- tools/virsh.pod | 4 +++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c index 059d787de9..32c30af65e 100644 --- a/tools/virsh-pool.c +++ b/tools/virsh-pool.c @@ -1064,6 +1064,10 @@ static const vshCmdOptDef opts_pool_list[] = { .type = VSH_OT_BOOL, .help = N_("list UUID of active pools only") }, + {.name = "name", + .type = VSH_OT_BOOL, + .help = N_("list name of active pools only") + }, {.name = NULL} }; @@ -1092,6 +1096,7 @@ cmdPoolList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED) bool details = vshCommandOptBool(cmd, "details"); bool inactive, all; bool uuid = false; + bool name = false; char *outputStr = NULL; inactive = vshCommandOptBool(cmd, "inactive"); @@ -1119,10 +1124,14 @@ cmdPoolList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED) if (vshCommandOptBool(cmd, "uuid")) uuid = true; + if (vshCommandOptBool(cmd, "name")) + name = true; + if (vshCommandOptStringReq(ctl, cmd, "type", &type) < 0) return false; VSH_EXCLUSIVE_OPTIONS("details", "uuid"); + VSH_EXCLUSIVE_OPTIONS("details", "name"); if (type) { int poolType = -1; @@ -1317,6 +1326,15 @@ cmdPoolList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED) goto cleanup; } + if (name) { + for (i = 0; i < list->npools; i++) { + const char *name_str = virStoragePoolGetName(list->pools[i]); + vshPrint(ctl, "%-20s\n", name_str); + } + ret = true; + goto cleanup; + } + /* Output old style header */ vshPrintExtra(ctl, " %-20s %-10s %-10s\n", _("Name"), _("State"), _("Autostart")); @@ -1324,9 +1342,9 @@ cmdPoolList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED) /* Output old style pool info */ for (i = 0; i < list->npools; i++) { - const char *name = virStoragePoolGetName(list->pools[i]); + const char *name_str = virStoragePoolGetName(list->pools[i]); vshPrint(ctl, " %-20s %-10s %-10s\n", - name, + name_str, poolInfoTexts[i].state, poolInfoTexts[i].autostart); } diff --git a/tools/virsh.pod b/tools/virsh.pod index 7d948ed0f4..13daf79647 100644 --- a/tools/virsh.pod +++ b/tools/virsh.pod @@ -3621,7 +3621,8 @@ of basic info are not converted to human friendly units. =item B [I<--inactive>] [I<--all>] [I<--persistent>] [I<--transient>] [I<--autostart>] [I<--no-autostart>] - [[I<--details>] [I<--uuid>] [] + [[I<--details>] [I<--uuid>] + [I<--name>] [] List pool objects known to libvirt. By default, only active pools are listed; I<--inactive> lists just the inactive pools, and I<--all> @@ -3631,6 +3632,7 @@ In addition, there are several sets of filtering flags. I<--persistent> is to list the persistent pools, I<--transient> is to list the transient pools. I<--autostart> lists the autostarting pools, I<--no-autostart> lists the pools with autostarting disabled. If I<--uuid> is specified only pool's UUIDs are printed. +If I<--name> is specified only pool's names are printed. You may also want to list pools with specified types using I, the pool types must be separated by comma, e.g. --type dir,disk. The valid pool -- GitLab