qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCHv3 2/2] qemu-img: add json output option to the c


From: Eric Blake
Subject: Re: [Qemu-devel] [PATCHv3 2/2] qemu-img: add json output option to the check command
Date: Mon, 21 Jan 2013 09:40:14 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130110 Thunderbird/17.0.2

On 01/21/2013 07:25 AM, Federico Simoncelli wrote:
> This option --output=[human|json] make qemu-img check output an human

s/make/makes/; s/an human/a human/

> or JSON representation at the choice of the user.
> 
> Signed-off-by: Federico Simoncelli <address@hidden>
> ---
>  qapi-schema.json |   46 +++++++++++
>  qemu-img-cmds.hx |    4 +-
>  qemu-img.c       |  232 +++++++++++++++++++++++++++++++++++++++--------------
>  qemu-img.texi    |    5 +-
>  4 files changed, 221 insertions(+), 66 deletions(-)
> 
> +++ b/qemu-img.c
> @@ -42,6 +42,16 @@ typedef struct img_cmd_t {
>      int (*handler)(int argc, char **argv);
>  } img_cmd_t;
>  
> +enum {
> +    OPTION_OUTPUT = 256,
> +    OPTION_BACKING_CHAIN = 257,
> +};
> +
> +typedef enum OutputFormat {
> +    OFORMAT_JSON,
> +    OFORMAT_HUMAN,
> +} OutputFormat;

I think it may be worth splitting this into two patches; one to refactor
the existing code (hoist definitions, create dump_human_image_check)
with no semantic change, and then a second to introduce the new json
handling.  But I'm not the maintainer, so I won't insist on it if others
think it is okay as-is.

> +static void dump_human_image_check(ImageCheck *check)
> +{
> +    if (!(check->corruptions || check->leaks || check->check_errors)) {
> +        printf("No errors were found on the image.\n");

Pre-existing, but I think 'in the image' sounds nicer than 'on the image'.

> @@ -424,77 +538,81 @@ static int img_check(int argc, char **argv)
>      }
>      filename = argv[optind++];
>  
> +    if (output && !strcmp(output, "json")) {
> +        output_format = OFORMAT_JSON;
> +    } else if (output && !strcmp(output, "human")) {
> +        output_format = OFORMAT_HUMAN;
> +    } else if (output) {
> +        error_report("--output must be used with human or json as 
> argument.");
> +        return 1;
> +    }

Is this chunk of code something that should be reused via a helper
function, rather than copied and pasted among different subcommands?

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]