From b5817855c0ae10e5d1fb99cc5b1e104ba4e56ecb Mon Sep 17 00:00:00 2001 From: Chen Hanxiao Date: Fri, 6 Jan 2017 22:42:53 +0800 Subject: [PATCH] virsh: pool-list: allow both --uuid and --name in one cmd This patch will allow --uuid and --name in one cmd. The pool's UUID and name will be printed side by side. Signed-off-by: Chen Hanxiao --- tools/virsh-pool.c | 24 +++++++++++------------- tools/virsh.pod | 5 ++++- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c index 32c30af65e..d50ae2a692 100644 --- a/tools/virsh-pool.c +++ b/tools/virsh-pool.c @@ -1316,20 +1316,18 @@ cmdPoolList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED) /* Output basic info then return if --details option not selected */ if (!details) { - if (uuid) { + if (uuid || name) { for (i = 0; i < list->npools; i++) { - char uuid_str[VIR_UUID_STRING_BUFLEN]; - virStoragePoolGetUUIDString(list->pools[i], uuid_str); - vshPrint(ctl, "%-36s\n", uuid_str); - } - ret = true; - 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); + if (uuid) { + char uuid_str[VIR_UUID_STRING_BUFLEN]; + virStoragePoolGetUUIDString(list->pools[i], uuid_str); + vshPrint(ctl, "%-36s%c", uuid_str, name ? ' ': '\n'); + } + if (name) { + const char *name_str = + virStoragePoolGetName(list->pools[i]); + vshPrint(ctl, "%-20s\n", name_str); + } } ret = true; goto cleanup; diff --git a/tools/virsh.pod b/tools/virsh.pod index 13daf79647..290f5083d9 100644 --- a/tools/virsh.pod +++ b/tools/virsh.pod @@ -3632,7 +3632,10 @@ 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. +If I<--name> is specified only pool's names are printed. If both I<--name> +and I<--uuid> are specified, pool's UUID and names are printed side by side +without any header. Options I<--uuid> and I<--name> are mutually exclusive +if option I<--details> is specified. 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