On 07/10/12 22:46, Guido Günther wrote:
---
tools/virsh.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/tools/virsh.c b/tools/virsh.c
index 591a1ce..2c0446c 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -1292,6 +1292,7 @@ static const vshCmdOptDef opts_list[] = {
{"managed-save", VSH_OT_BOOL, 0,
N_("mark inactive domains with managed save state")},
{"title", VSH_OT_BOOL, 0, N_("show short domain
description")},
+ {"hostname", VSH_OT_BOOL, 0, N_("show domain hostname")},
{NULL, 0, 0, NULL}
};
@@ -1307,8 +1308,9 @@ cmdList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
bool optTable = vshCommandOptBool(cmd, "table");
bool optUUID = vshCommandOptBool(cmd, "uuid");
bool optName = vshCommandOptBool(cmd, "name");
+ bool optHostname = vshCommandOptBool(cmd, "hostname");
int i;
- char *title;
+ char *title, *hostname;
char uuid[VIR_UUID_STRING_BUFLEN];
int state;
bool ret = false;
@@ -1366,6 +1368,11 @@ cmdList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
_("Id"), _("Name"), _("State"),
_("Title"),
"-----------------------------------------"
"-----------------------------------------");
+ else if (optHostname)
+ vshPrintExtra(ctl, " %-5s %-30s %-10s %-20s\n%s\n",
+ _("Id"), _("Name"), _("State"),
_("Hostname"),
+ "-----------------------------------------"
+ "-----------------------------------------");
else
vshPrintExtra(ctl, " %-5s %-30s %s\n%s\n",
_("Id"), _("Name"),
_("State"),
@@ -1397,6 +1404,15 @@ cmdList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
title);
VIR_FREE(title);
+ } else if (optHostname) {
+ if (!(hostname = virDomainGetHostname (dom, 0)))
+ goto cleanup;
+
+ vshPrint(ctl, " %-5s %-30s %-10s %-20s\n", id_buf,
+ virDomainGetName(dom),
+ state == -2 ? _("saved") :
_(vshDomainStateToString(state)),
+ hostname);
+ VIR_FREE(hostname);
} else {
vshPrint(ctl, " %-5s %-30s %s\n", id_buf,
virDomainGetName(dom),
This approach has a problem: If you specify "list --title --hostname"
you'll get just the title. When I was adding the Title option I figured
that this situation would happen sooner or later. I thought about a
universal table printer that could dynamicaly print desired columns, but
that seemed a bit of overkill at that time.
A quick option would be to make those option mutually exclusive, but
that's not elegant.
Also this patch misses adding docs for the new flag.
Peter