diff mbox

[v25,03/31] qapi: output def_value_str when query command line options

Message ID 1397152467-17186-4-git-send-email-cyliu@suse.com
State New
Headers show

Commit Message

Chunyan Liu April 10, 2014, 5:53 p.m. UTC
Change qapi interfaces to output the newly added def_value_str when querying
command line options.

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Dong Xu Wang <wdongxu@linux.vnet.ibm.com>
Signed-off-by: Chunyan Liu <cyliu@suse.com>
---
changes:
  * Following Leandro's comment:
    update description of @default

 qapi-schema.json   | 6 +++++-
 qmp-commands.hx    | 2 ++
 util/qemu-config.c | 4 ++++
 3 files changed, 11 insertions(+), 1 deletion(-)

Comments

Eric Blake April 21, 2014, 6:36 p.m. UTC | #1
On 04/10/2014 11:53 AM, Chunyan Liu wrote:
> Change qapi interfaces to output the newly added def_value_str when querying
> command line options.
> 
> Reviewed-by: Eric Blake <eblake@redhat.com>
> Signed-off-by: Dong Xu Wang <wdongxu@linux.vnet.ibm.com>
> Signed-off-by: Chunyan Liu <cyliu@suse.com>
> ---
> changes:
>   * Following Leandro's comment:
>     update description of @default

That's a non-trivial change, since it is user-visible documentation.  I
don't think my Reviewed-by should have carried on this version of the patch.

> 
>  qapi-schema.json   | 6 +++++-
>  qmp-commands.hx    | 2 ++
>  util/qemu-config.c | 4 ++++
>  3 files changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/qapi-schema.json b/qapi-schema.json
> index 391356f..cc7c8b6 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -4088,12 +4088,16 @@
>  #
>  # @help: #optional human readable text string, not suitable for parsing.
>  #
> +# @default: #optional option's default value - set if option is not
> +#           informed. (since 2.1)

s/informed/provided/

The grammar is awkward, and I think it reads worse in comparison to the
version that I reviewed in v22:

+# @default: #optional string representation of the default used
+#           if the option is omitted. (since 2.0)

Maybe taking the best of both approaches:

@default: #optional string representation of the option's default value;
this default will be used if the option is omitted (since 2.1)

Or, we could go for short and sweet, to match qmp-commands.hx...

> +++ b/qmp-commands.hx
> @@ -2895,6 +2895,8 @@ Each array entry contains the following:
>                or 'size')
>      - "help": human readable description of the parameter
>                (json-string, optional)
> +    - "default": default value string for the parameter
> +                 (json-string, optional)

...by having this in the .json file:

@default: #optional default value string (since 2.0)
diff mbox

Patch

diff --git a/qapi-schema.json b/qapi-schema.json
index 391356f..cc7c8b6 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -4088,12 +4088,16 @@ 
 #
 # @help: #optional human readable text string, not suitable for parsing.
 #
+# @default: #optional option's default value - set if option is not
+#           informed. (since 2.1)
+#
 # Since 1.5
 ##
 { 'type': 'CommandLineParameterInfo',
   'data': { 'name': 'str',
             'type': 'CommandLineParameterType',
-            '*help': 'str' } }
+            '*help': 'str',
+            '*default': 'str' } }
 
 ##
 # @CommandLineOptionInfo:
diff --git a/qmp-commands.hx b/qmp-commands.hx
index ed3ab92..1271332 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -2895,6 +2895,8 @@  Each array entry contains the following:
               or 'size')
     - "help": human readable description of the parameter
               (json-string, optional)
+    - "default": default value string for the parameter
+                 (json-string, optional)
 
 Example:
 
diff --git a/util/qemu-config.c b/util/qemu-config.c
index f610101..d608b2f 100644
--- a/util/qemu-config.c
+++ b/util/qemu-config.c
@@ -68,6 +68,10 @@  static CommandLineParameterInfoList *query_option_descs(const QemuOptDesc *desc)
             info->has_help = true;
             info->help = g_strdup(desc[i].help);
         }
+        if (desc[i].def_value_str) {
+            info->has_q_default = true;
+            info->q_default = g_strdup(desc[i].def_value_str);
+        }
 
         entry = g_malloc0(sizeof(*entry));
         entry->value = info;