[libvirt] [PATCH 05/17] virsh-pool: Update pool commands to use vshCommandOptStringReq

Osier Yang jyang at redhat.com
Thu Jan 31 05:22:26 UTC 2013


On 2013年01月22日 02:07, Peter Krempa wrote:
> Rework most of option string retrievals to the new helper.
> ---
>   tools/virsh-pool.c | 56 +++++++++++++++++++++++++-----------------------------
>   1 file changed, 26 insertions(+), 30 deletions(-)
>
> diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c
> index bc400a1..5a7c8dd 100644
> --- a/tools/virsh-pool.c
> +++ b/tools/virsh-pool.c
> @@ -46,7 +46,7 @@ vshCommandOptPoolBy(vshControl *ctl, const vshCmd *cmd, const char *optname,
>       const char *n = NULL;
>       virCheckFlags(VSH_BYUUID | VSH_BYNAME, NULL);
>
> -    if (vshCommandOptString(cmd, optname,&n)<= 0)
> +    if (vshCommandOptStringReq(ctl, cmd, optname,&n)<  0)
>           return NULL;
>
>       vshDebug(ctl, VSH_ERR_INFO, "%s: found option<%s>: %s\n",
> @@ -154,7 +154,7 @@ cmdPoolCreate(vshControl *ctl, const vshCmd *cmd)
>       bool ret = true;
>       char *buffer;
>
> -    if (vshCommandOptString(cmd, "file",&from)<= 0)
> +    if (vshCommandOptStringReq(ctl, cmd, "file",&from)<  0)
>           return false;
>
>       if (virFileReadAll(from, VSH_MAX_XML_FILE,&buffer)<  0)
> @@ -226,26 +226,28 @@ static const vshCmdOptDef opts_pool_X_as[] = {
>       {.name = NULL}
>   };
>
> -static int vshBuildPoolXML(const vshCmd *cmd, const char **retname, char **xml) {
> -
> +static int
> +vshBuildPoolXML(vshControl *ctl,
> +                const vshCmd *cmd,
> +                const char **retname,
> +                char **xml)

Okay, you change the style here. :-)

> +{
>       const char *name = NULL, *type = NULL, *srcHost = NULL, *srcPath = NULL,
>                  *srcDev = NULL, *srcName = NULL, *srcFormat = NULL, *target = NULL;
>       virBuffer buf = VIR_BUFFER_INITIALIZER;
>
> -    if (vshCommandOptString(cmd, "name",&name)<= 0)
> +    if (vshCommandOptStringReq(ctl, cmd, "name",&name)<  0)
>           goto cleanup;
> -    if (vshCommandOptString(cmd, "type",&type)<= 0)
> +    if (vshCommandOptStringReq(ctl, cmd, "type",&type)<  0)
>           goto cleanup;
>
> -    if (vshCommandOptString(cmd, "source-host",&srcHost)<  0 ||
> -        vshCommandOptString(cmd, "source-path",&srcPath)<  0 ||
> -        vshCommandOptString(cmd, "source-dev",&srcDev)<  0 ||
> -        vshCommandOptString(cmd, "source-name",&srcName)<  0 ||
> -        vshCommandOptString(cmd, "source-format",&srcFormat)<  0 ||
> -        vshCommandOptString(cmd, "target",&target)<  0) {
> -        vshError(NULL, "%s", _("missing argument"));
> +    if (vshCommandOptStringReq(ctl, cmd, "source-host",&srcHost)<  0 ||
> +        vshCommandOptStringReq(ctl, cmd, "source-path",&srcPath)<  0 ||
> +        vshCommandOptStringReq(ctl, cmd, "source-dev",&srcDev)<  0 ||
> +        vshCommandOptStringReq(ctl, cmd, "source-name",&srcName)<  0 ||
> +        vshCommandOptStringReq(ctl, cmd, "source-format",&srcFormat)<  0 ||
> +        vshCommandOptStringReq(ctl, cmd, "target",&target)<  0)
>           goto cleanup;
> -    }
>
>       virBufferAsprintf(&buf, "<pool type='%s'>\n", type);
>       virBufferAsprintf(&buf, "<name>%s</name>\n", name);
> @@ -303,7 +305,7 @@ cmdPoolCreateAs(vshControl *ctl, const vshCmd *cmd)
>       char *xml;
>       bool printXML = vshCommandOptBool(cmd, "print-xml");
>
> -    if (!vshBuildPoolXML(cmd,&name,&xml))
> +    if (!vshBuildPoolXML(ctl, cmd,&name,&xml))
>           return false;
>
>       if (printXML) {
> @@ -350,7 +352,7 @@ cmdPoolDefine(vshControl *ctl, const vshCmd *cmd)
>       bool ret = true;
>       char *buffer;
>
> -    if (vshCommandOptString(cmd, "file",&from)<= 0)
> +    if (vshCommandOptStringReq(ctl, cmd, "file",&from)<  0)
>           return false;
>
>       if (virFileReadAll(from, VSH_MAX_XML_FILE,&buffer)<  0)
> @@ -387,7 +389,7 @@ cmdPoolDefineAs(vshControl *ctl, const vshCmd *cmd)
>       char *xml;
>       bool printXML = vshCommandOptBool(cmd, "print-xml");
>
> -    if (!vshBuildPoolXML(cmd,&name,&xml))
> +    if (!vshBuildPoolXML(ctl, cmd,&name,&xml))
>           return false;
>
>       if (printXML) {
> @@ -959,10 +961,8 @@ cmdPoolList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
>       if (vshCommandOptBool(cmd, "transient"))
>           flags |= VIR_CONNECT_LIST_STORAGE_POOLS_TRANSIENT;
>
> -    if (vshCommandOptString(cmd, "type",&type)<  0) {
> -        vshError(ctl, "%s", _("Invalid argument for 'type'"));
> +    if (vshCommandOptStringReq(ctl, cmd, "type",&type)<  0)
>           return false;
> -    }
>
>       if (type) {
>           int poolType = -1;
> @@ -1352,18 +1352,16 @@ cmdPoolDiscoverSourcesAs(vshControl * ctl, const vshCmd * cmd ATTRIBUTE_UNUSED)
>       char *srcList;
>       const char *initiator = NULL;
>
> -    if (vshCommandOptString(cmd, "type",&type)<= 0 ||
> -        vshCommandOptString(cmd, "host",&host)<  0 ||
> -        vshCommandOptString(cmd, "initiator",&initiator)<  0) {
> -        vshError(ctl,"%s", _("missing argument"));
> +    if (vshCommandOptStringReq(ctl, cmd, "type",&type)<  0 ||
> +        vshCommandOptStringReq(ctl, cmd, "host",&host)<  0 ||
> +        vshCommandOptStringReq(ctl, cmd, "initiator",&initiator)<  0)
>           return false;
> -    }
>
>       if (host) {
>           const char *port = NULL;
>           virBuffer buf = VIR_BUFFER_INITIALIZER;
>
> -        if (vshCommandOptString(cmd, "port",&port)<  0) {
> +        if (vshCommandOptStringReq(ctl, cmd, "port",&port)<  0) {
>               vshError(ctl, "%s", _("missing argument"));
>               virBufferFreeAndReset(&buf);
>               return false;
> @@ -1427,13 +1425,11 @@ cmdPoolDiscoverSources(vshControl * ctl, const vshCmd * cmd ATTRIBUTE_UNUSED)
>       const char *type = NULL, *srcSpecFile = NULL;
>       char *srcSpec = NULL, *srcList;
>
> -    if (vshCommandOptString(cmd, "type",&type)<= 0)
> +    if (vshCommandOptStringReq(ctl, cmd, "type",&type)<  0)
>           return false;
>
> -    if (vshCommandOptString(cmd, "srcSpec",&srcSpecFile)<  0) {
> -        vshError(ctl, "%s", _("missing option"));
> +    if (vshCommandOptStringReq(ctl, cmd, "srcSpec",&srcSpecFile)<  0)
>           return false;
> -    }
>
>       if (srcSpecFile&&  virFileReadAll(srcSpecFile, VSH_MAX_XML_FILE,
>                                         &srcSpec)<  0)

ACK




More information about the libvir-list mailing list