[libvirt] [PATCH v2 2/3] virsh: Pass vshControl to all vshCommandOpt*() calls.

Michal Privoznik mprivozn at redhat.com
Wed May 27 14:47:14 UTC 2015


On 22.05.2015 10:59, Andrea Bolognani wrote:
> This will allow us to use vshError() to report errors from inside
> vshCommandOpt*(), instead of replicating the same logic and error
> messages all over the place.
> 
> We also have more context inside the vshCommandOpt*() functions,
> for example the actual value used on the command line, which means
> we can produce more detailed error messages.
> ---
>  tools/virsh-domain-monitor.c |  90 +++----
>  tools/virsh-domain.c         | 598 +++++++++++++++++++++----------------------
>  tools/virsh-host.c           |  46 ++--
>  tools/virsh-interface.c      |  14 +-
>  tools/virsh-network.c        |  34 +--
>  tools/virsh-nodedev.c        |   6 +-
>  tools/virsh-pool.c           |  26 +-
>  tools/virsh-secret.c         |   8 +-
>  tools/virsh-snapshot.c       |  88 +++----
>  tools/virsh-volume.c         |  34 +--
>  tools/virsh.c                | 107 ++++----
>  tools/virsh.h                |  77 +++---
>  12 files changed, 574 insertions(+), 554 deletions(-)
> 
> diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c
> index a42c150..db7ef8b 100644
> --- a/tools/virsh-domain-monitor.c
> +++ b/tools/virsh-domain-monitor.c
> @@ -317,9 +317,9 @@ cmdDomMemStat(vshControl *ctl, const vshCmd *cmd)
>      bool ret = false;
>      int rv = 0;
>      int period = -1;
> -    bool config = vshCommandOptBool(cmd, "config");
> -    bool live = vshCommandOptBool(cmd, "live");
> -    bool current = vshCommandOptBool(cmd, "current");
> +    bool config = vshCommandOptBool(ctl, cmd, "config");

I don't think this is needed. vshCommandOptBool should never return an
error. Well, it's returning just if a flag was specified or not.

> +    bool live = vshCommandOptBool(ctl, cmd, "live");
> +    bool current = vshCommandOptBool(ctl, cmd, "current");
>      unsigned int flags = VIR_DOMAIN_AFFECT_CURRENT;
>  
>      VSH_EXCLUSIVE_OPTIONS_VAR(current, live);
> @@ -340,7 +340,7 @@ cmdDomMemStat(vshControl *ctl, const vshCmd *cmd)
>      /* Providing a period will adjust the balloon driver collection period.
>       * This is not really an unsigned long, but it
>       */
> -    if ((rv = vshCommandOptInt(cmd, "period", &period)) < 0) {
> +    if ((rv = vshCommandOptInt(ctl, cmd, "period", &period)) < 0) {

This is of course different, specified value may not be a number in
which case we want an error to be reported.

>          vshError(ctl,
>                   _("Numeric value for <%s> option is malformed or out of range"),
>                   "period");

ACK modulo the OptBool() change.

Michal




More information about the libvir-list mailing list