From: Chen Hanxiao <chenhanxiao(a)gmail.com>
This patch will introduce option --name.
If specified, only name of pools will be printed out.
Signed-off-by: Chen Hanxiao <chenhanxiao(a)gmail.com>
---
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 5cf8ce4..da43199 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 0a1ad84..463762a 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -3612,7 +3612,8 @@ Returns basic information about the I<pool> object.
=item B<pool-list> [I<--inactive>] [I<--all>]
[I<--persistent>] [I<--transient>]
[I<--autostart>] [I<--no-autostart>]
- [[I<--details>] [I<--uuid>] [<type>]
+ [[I<--details>] [I<--uuid>]
+ [I<--name>] [<type>]
List pool objects known to libvirt. By default, only active pools
are listed; I<--inactive> lists just the inactive pools, and I<--all>
@@ -3622,6 +3623,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<type>, the
pool types must be separated by comma, e.g. --type dir,disk. The valid pool
--
2.5.5