[libvirt] [PATCH v4 7/7] virt-admin: Introduce cmdSrvList

Michal Privoznik mprivozn at redhat.com
Tue Feb 16 16:18:12 UTC 2016


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 at 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




More information about the libvir-list mailing list