On 12.02.2016 11:08, Erik Skultety wrote:
Since we introduced listing API earlier in these series, it's
time
to wire up the API to the virt-admin client.
Signed-off-by: Erik Skultety <eskultet(a)redhat.com>
---
tools/virt-admin.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)
diff --git a/tools/virt-admin.c b/tools/virt-admin.c
index 1372963..23af274 100644
--- a/tools/virt-admin.c
+++ b/tools/virt-admin.c
@@ -300,6 +300,56 @@ cmdConnect(vshControl *ctl, const vshCmd *cmd)
return !!priv->conn;
}
+
+/* ---------------
+ * Command Srv-list
+ * ---------------
+ */
+
+static const vshCmdInfo info_srv_list[] = {
+ {.name = "help",
+ .data = N_("list available servers on a daemon")
+ },
+ {.name = "desc",
+ .data = N_("List all manageable servers on a daemon.")
+ },
+ {.name = NULL}
+};
+
+static bool
+cmdSrvList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
+{
+ int nsrvs = 0;
+ size_t i;
+ bool ret = false;
+ const char *uri = NULL;
+ virAdmServerPtr *srvs = NULL;
+ vshAdmControlPtr priv = ctl->privData;
+
+ /* Obtain a list of available servers on the daemon */
+ if ((nsrvs = virAdmConnectListServers(priv->conn, &srvs, 0)) < 0) {
+ uri = virAdmConnectGetURI(priv->conn);
+ vshError(ctl, _("failed to obtain list of available servers from
%s"),
+ NULLSTR(uri));
+ goto cleanup;
+ }
+
+ printf(" %-5s %-15s\n", "Id", "Name");
+ printf("---------------\n");
+ for (i = 0; i < nsrvs; i++)
+ vshPrint(ctl, " %-5zu %-15s\n", i, virAdmServerGetName(srvs[i]));
+
+ ret = true;
+ cleanup:
+ if (srvs) {
+ for (i = 0; i < nsrvs; i++)
+ virAdmServerFree(srvs[i]);
+ VIR_FREE(srvs);
+ }
Or: for (i = 0; i < nsrvs && srvs; i++); I've noticed this could be
changed in previous patch too. The similar pattern appears there. But
it's your call what you prefer more.
ACK
Michal