virsh: allow both --uuid and --name at same time

#virsh list --uuid --name
49c765a0-25e7-40d0-964f-dac99724b32c   c7
918f1dd6-b19f-412b-ba17-d113bad89af8   f23

Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
This commit is contained in:
Chen Hanxiao 2016-07-09 18:06:55 +08:00 committed by Michal Privoznik
parent 949c43370e
commit 8f5becf3a3
2 changed files with 16 additions and 8 deletions

View File

@ -1844,12 +1844,8 @@ cmdList(vshControl *ctl, const vshCmd *cmd)
FILTER("state-shutoff", VIR_CONNECT_LIST_DOMAINS_SHUTOFF); FILTER("state-shutoff", VIR_CONNECT_LIST_DOMAINS_SHUTOFF);
FILTER("state-other", VIR_CONNECT_LIST_DOMAINS_OTHER); FILTER("state-other", VIR_CONNECT_LIST_DOMAINS_OTHER);
if (optTable + optName + optUUID > 1) { VSH_EXCLUSIVE_OPTIONS("table", "name");
vshError(ctl, "%s", VSH_EXCLUSIVE_OPTIONS("table", "uuid");
_("Only one argument from --table, --name and --uuid "
"may be specified."));
return false;
}
if (!optUUID && !optName) if (!optUUID && !optName)
optTable = true; optTable = true;
@ -1907,6 +1903,12 @@ cmdList(vshControl *ctl, const vshCmd *cmd)
state == -2 ? _("saved") state == -2 ? _("saved")
: virshDomainStateToString(state)); : 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) { } else if (optUUID) {
if (virDomainGetUUIDString(dom, uuid) < 0) { if (virDomainGetUUIDString(dom, uuid) < 0) {
vshError(ctl, "%s", _("Failed to get domain's UUID")); vshError(ctl, "%s", _("Failed to get domain's UUID"));

View File

@ -524,8 +524,14 @@ Note that this flag does not filter the list of domains.
If I<--name> is specified, domain names are printed instead of the table 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 formatted one per line. If I<--uuid> is specified domain's UUID's are printed
instead of names. Flag I<--table> specifies that the legacy table-formatted instead of names. Flag I<--table> specifies that the legacy table-formatted
output should be used. This is the default. All of these are mutually output should be used. This is the default.
exclusive.
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.
If I<--title> is specified, then the short domain description (title) is If I<--title> is specified, then the short domain description (title) is
printed in an extra column. This flag is usable only with the default printed in an extra column. This flag is usable only with the default