mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
virsh: allow both --table and --uuid at the same time
This will allow to print full domains info: Id Name State UUID --------------------------- Signed-off-by: Nikolai Barybin <nikolai.barybin@virtuozzo.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
b1524a3efc
commit
271940223c
@ -648,7 +648,7 @@ list
|
|||||||
|
|
||||||
list [--inactive | --all]
|
list [--inactive | --all]
|
||||||
[--managed-save] [--title]
|
[--managed-save] [--title]
|
||||||
{ [--table] | --name | --uuid | --id }
|
{ [--table] | --name | --id } [--uuid]
|
||||||
[--persistent] [--transient]
|
[--persistent] [--transient]
|
||||||
[--with-managed-save] [--without-managed-save]
|
[--with-managed-save] [--without-managed-save]
|
||||||
[--autostart] [--no-autostart]
|
[--autostart] [--no-autostart]
|
||||||
@ -791,12 +791,12 @@ are printed instead of names. If *--id* is specified then domain's ID's
|
|||||||
are printed indead of names. However, it is possible to combine
|
are printed indead of names. However, it is possible to combine
|
||||||
*--name*, *--uuid* and *--id* to select only desired fields for
|
*--name*, *--uuid* and *--id* to select only desired fields for
|
||||||
printing. Flag *--table* specifies that the legacy table-formatted
|
printing. Flag *--table* specifies that the legacy table-formatted
|
||||||
output should be used, but it is mutually exclusive with *--name*,
|
output should be used, but it is mutually exclusive with *--name*, and *--id*.
|
||||||
*--uuid* and *--id*. This is the default and will be used if neither of
|
This is the default and will be used if neither of *--name*, *--uuid* or *--id*
|
||||||
*--name*, *--uuid* or *--id* is specified. If neither *--name* nor *--uuid* is
|
is specified. If neither *--name* nor *--uuid* is specified, but *--id* is,
|
||||||
specified, but *--id* is, then only active domains are listed, even with the
|
then only active domains are listed, even with the *--all* parameter as otherwise
|
||||||
*--all* parameter as otherwise the output would just contain bunch of lines
|
the output would just contain bunch of lines with just *-1*. If *--table* is
|
||||||
with just *-1*.
|
combined with *--uuid*, then domain uuid is printed as an extra column.
|
||||||
|
|
||||||
If *--title* is specified, then the short domain description (title) is
|
If *--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
|
||||||
|
@ -1855,10 +1855,9 @@ cmdList(vshControl *ctl, const vshCmd *cmd)
|
|||||||
FILTER("state-other", VIR_CONNECT_LIST_DOMAINS_OTHER);
|
FILTER("state-other", VIR_CONNECT_LIST_DOMAINS_OTHER);
|
||||||
|
|
||||||
VSH_EXCLUSIVE_OPTIONS("table", "name");
|
VSH_EXCLUSIVE_OPTIONS("table", "name");
|
||||||
VSH_EXCLUSIVE_OPTIONS("table", "uuid");
|
|
||||||
VSH_EXCLUSIVE_OPTIONS("table", "id");
|
VSH_EXCLUSIVE_OPTIONS("table", "id");
|
||||||
|
|
||||||
if (!optUUID && !optName && !optID)
|
if (!optName && !optID)
|
||||||
optTable = true;
|
optTable = true;
|
||||||
|
|
||||||
if (!(list = virshDomainListCollect(ctl, flags)))
|
if (!(list = virshDomainListCollect(ctl, flags)))
|
||||||
@ -1866,8 +1865,12 @@ cmdList(vshControl *ctl, const vshCmd *cmd)
|
|||||||
|
|
||||||
/* print table header in legacy mode */
|
/* print table header in legacy mode */
|
||||||
if (optTable) {
|
if (optTable) {
|
||||||
if (optTitle)
|
if (optTitle && !optUUID)
|
||||||
table = vshTableNew(_("Id"), _("Name"), _("State"), _("Title"), NULL);
|
table = vshTableNew(_("Id"), _("Name"), _("State"), _("Title"), NULL);
|
||||||
|
else if (optUUID && !optTitle)
|
||||||
|
table = vshTableNew(_("Id"), _("Name"), _("State"), _("UUID"), NULL);
|
||||||
|
else if (optUUID && optTitle)
|
||||||
|
table = vshTableNew(_("Id"), _("Name"), _("State"), _("Title"), _("UUID"), NULL);
|
||||||
else
|
else
|
||||||
table = vshTableNew(_("Id"), _("Name"), _("State"), NULL);
|
table = vshTableNew(_("Id"), _("Name"), _("State"), NULL);
|
||||||
|
|
||||||
@ -1896,7 +1899,7 @@ cmdList(vshControl *ctl, const vshCmd *cmd)
|
|||||||
virDomainHasManagedSaveImage(dom, 0) > 0)
|
virDomainHasManagedSaveImage(dom, 0) > 0)
|
||||||
state = -2;
|
state = -2;
|
||||||
|
|
||||||
if (optTitle) {
|
if (optTitle && !optUUID) {
|
||||||
g_autofree char *title = NULL;
|
g_autofree char *title = NULL;
|
||||||
|
|
||||||
if (!(title = virshGetDomainDescription(ctl, dom, true, 0)))
|
if (!(title = virshGetDomainDescription(ctl, dom, true, 0)))
|
||||||
@ -1907,6 +1910,32 @@ cmdList(vshControl *ctl, const vshCmd *cmd)
|
|||||||
: virshDomainStateToString(state),
|
: virshDomainStateToString(state),
|
||||||
title, NULL) < 0)
|
title, NULL) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
} else if (optUUID && !optTitle) {
|
||||||
|
if (virDomainGetUUIDString(dom, uuid) < 0) {
|
||||||
|
vshError(ctl, "%s", _("Failed to get domain's UUID"));
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
if (vshTableRowAppend(table, id_buf,
|
||||||
|
virDomainGetName(dom),
|
||||||
|
state == -2 ? _("saved")
|
||||||
|
: virshDomainStateToString(state),
|
||||||
|
uuid, NULL) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
} else if (optUUID && optTitle) {
|
||||||
|
g_autofree char *title = NULL;
|
||||||
|
|
||||||
|
if (!(title = virshGetDomainDescription(ctl, dom, true, 0)))
|
||||||
|
goto cleanup;
|
||||||
|
if (virDomainGetUUIDString(dom, uuid) < 0) {
|
||||||
|
vshError(ctl, "%s", _("Failed to get domain's UUID"));
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
if (vshTableRowAppend(table, id_buf,
|
||||||
|
virDomainGetName(dom),
|
||||||
|
state == -2 ? _("saved")
|
||||||
|
: virshDomainStateToString(state),
|
||||||
|
title, uuid, NULL) < 0)
|
||||||
|
goto cleanup;
|
||||||
} else {
|
} else {
|
||||||
if (vshTableRowAppend(table, id_buf,
|
if (vshTableRowAppend(table, id_buf,
|
||||||
virDomainGetName(dom),
|
virDomainGetName(dom),
|
||||||
|
Loading…
Reference in New Issue
Block a user