On 06/24/2016 12:44 PM, Chen Hanxiao wrote:
From: Chen Hanxiao <chenhanxiao(a)gmail.com>
virsh # list --uuid --name
c7 49c765a0-25e7-40d0-964f-dac99724b32c
f23 918f1dd6-b19f-412b-ba17-d113bad89af8
The actual output is reversed - perhaps a late change not properly
reflected in the /commit message...
# virsh list --all --name --uuid
56c1f811-3ffc-4363-b2d9-06bdc9fbbe2b dom1
abeb5797-df38-42c7-9265-c3359d409ab5 dom2
Signed-off-by: Chen Hanxiao <chenhanxiao(a)gmail.com>
---
v2: drop uuid-name option, enable both --uuid and --name
tools/virsh-domain-monitor.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
virsh.pod needs be changed to indicate, right after "If I<--name> is
specified, domain names are printed instead of the table formatted one
per line. If I<--uuid> is specified domain's UUID's are printed instead
of names."
The following is a suggestion and would replace the remainder of that
paragraph:
If both I<--name> and I<--uuid> are specified, domain UUID's and names
are printed side by side without any header. Flag I<--table> specifies
that the legacy table-formatted output should be used. This is the
default if neither I<--name> nor I<--uuid> are specified. Options
I<--uuid> and I<--name> are mutually exclusive if option I<--table> is
specified.
John
diff --git a/tools/virsh-domain-monitor.c
b/tools/virsh-domain-monitor.c
index 0a93949..c712fa5 100644
--- a/tools/virsh-domain-monitor.c
+++ b/tools/virsh-domain-monitor.c
@@ -1844,12 +1844,8 @@ cmdList(vshControl *ctl, const vshCmd *cmd)
FILTER("state-shutoff", VIR_CONNECT_LIST_DOMAINS_SHUTOFF);
FILTER("state-other", VIR_CONNECT_LIST_DOMAINS_OTHER);
- if (optTable + optName + optUUID > 1) {
- vshError(ctl, "%s",
- _("Only one argument from --table, --name and --uuid "
- "may be specified."));
- return false;
- }
+ VSH_EXCLUSIVE_OPTIONS("table", "name");
+ VSH_EXCLUSIVE_OPTIONS("table", "uuid");
if (!optUUID && !optName)
optTable = true;
@@ -1907,6 +1903,12 @@ cmdList(vshControl *ctl, const vshCmd *cmd)
state == -2 ? _("saved")
: virshDomainStateToString(state));
}
+ } else if (optUUID && optName) {
+ if (virDomainGetUUIDString(dom, uuid) < 0) {
+ vshError(ctl, "%s", _("Failed to get domain's
UUID"));
+ goto cleanup;
+ }
+ vshPrint(ctl, "%-36s %-30s\n", uuid, virDomainGetName(dom));
} else if (optUUID) {
if (virDomainGetUUIDString(dom, uuid) < 0) {
vshError(ctl, "%s", _("Failed to get domain's
UUID"));