[libvirt] [PATCH 07/17] virsh-domain-monitor: Update domain commands to use vshCommandOptStringReq

Osier Yang jyang at redhat.com
Thu Jan 31 06:50:09 UTC 2013


On 2013年01月22日 02:07, Peter Krempa wrote:
> ---
>   tools/virsh-domain-monitor.c | 44 +++++++++++++++++++-------------------------
>   1 file changed, 19 insertions(+), 25 deletions(-)
>
> diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c
> index 1e8b8cf..7e105fd 100644
> --- a/tools/virsh-domain-monitor.c
> +++ b/tools/virsh-domain-monitor.c
> @@ -373,26 +373,25 @@ cmdDomblkinfo(vshControl *ctl, const vshCmd *cmd)
>   {
>       virDomainBlockInfo info;
>       virDomainPtr dom;
> -    bool ret = true;
> +    bool ret = false;
>       const char *device = NULL;
>
>       if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
>           return false;
>
> -    if (vshCommandOptString(cmd, "device",&device)<= 0) {
> -        virDomainFree(dom);
> -        return false;
> -    }
> +    if (vshCommandOptStringReq(ctl, cmd, "device",&device)<  0)
> +        goto cleanup;
>
> -    if (virDomainGetBlockInfo(dom, device,&info, 0)<  0) {
> -        virDomainFree(dom);
> -        return false;
> -    }
> +    if (virDomainGetBlockInfo(dom, device,&info, 0)<  0)
> +        goto cleanup;
>
>       vshPrint(ctl, "%-15s %llu\n", _("Capacity:"), info.capacity);
>       vshPrint(ctl, "%-15s %llu\n", _("Allocation:"), info.allocation);
>       vshPrint(ctl, "%-15s %llu\n", _("Physical:"), info.physical);
>
> +    ret = true;
> +
> +cleanup:
>       virDomainFree(dom);
>       return ret;
>   }
> @@ -670,16 +669,13 @@ cmdDomIfGetLink(vshControl *ctl, const vshCmd *cmd)
>       if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
>           return false;
>
> -    if (vshCommandOptString(cmd, "interface",&iface)<= 0) {
> -        virDomainFree(dom);
> -        return false;
> -    }
> +    if (vshCommandOptStringReq(ctl, cmd, "interface",&iface)<  0)
> +        goto cleanup;
>
>       if (vshCommandOptBool(cmd, "config"))
>           flags = VIR_DOMAIN_XML_INACTIVE;
>
> -    desc = virDomainGetXMLDesc(dom, flags);
> -    if (desc == NULL) {
> +    if (!(desc = virDomainGetXMLDesc(dom, flags))) {
>           vshError(ctl, _("Failed to get domain description xml"));
>           goto cleanup;
>       }
> @@ -752,8 +748,7 @@ cleanup:
>       xmlXPathFreeObject(obj);
>       xmlXPathFreeContext(ctxt);
>       xmlFreeDoc(xml);
> -    if (dom)
> -        virDomainFree(dom);
> +    virDomainFree(dom);
>
>       return ret;
>   }
> @@ -891,7 +886,7 @@ cmdDomblkstat(vshControl *ctl, const vshCmd *cmd)
>       if (!(dom = vshCommandOptDomain(ctl, cmd,&name)))
>           return false;
>
> -    if (vshCommandOptString(cmd, "device",&device)<= 0)
> +    if (vshCommandOptStringReq(ctl, cmd, "device",&device)<= 0)

I think you mean < 0 here.

>           goto cleanup;
>
>       rc = virDomainBlockStatsFlags(dom, device, NULL,&nparams, 0);
> @@ -1016,19 +1011,17 @@ cmdDomIfstat(vshControl *ctl, const vshCmd *cmd)
>       virDomainPtr dom;
>       const char *name = NULL, *device = NULL;
>       struct _virDomainInterfaceStats stats;
> +    bool ret = false;
>
>       if (!(dom = vshCommandOptDomain(ctl, cmd,&name)))
>           return false;
>
> -    if (vshCommandOptString(cmd, "interface",&device)<= 0) {
> -        virDomainFree(dom);
> -        return false;
> -    }
> +    if (vshCommandOptStringReq(ctl, cmd, "interface",&device)<  0)
> +        goto cleanup;
>
>       if (virDomainInterfaceStats(dom, device,&stats, sizeof(stats)) == -1) {
>           vshError(ctl, _("Failed to get interface stats %s %s"), name, device);
> -        virDomainFree(dom);
> -        return false;
> +        goto cleanup;
>       }
>
>       if (stats.rx_bytes>= 0)
> @@ -1055,8 +1048,9 @@ cmdDomIfstat(vshControl *ctl, const vshCmd *cmd)
>       if (stats.tx_drop>= 0)
>           vshPrint(ctl, "%s tx_drop %lld\n", device, stats.tx_drop);
>
> +cleanup:
>       virDomainFree(dom);
> -    return true;
> +    return ret;

Is "ret" set to true yet if success?




More information about the libvir-list mailing list