qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v2 3/4] qom: Add user_creatable_print_help_from_qdict()


From: Markus Armbruster
Subject: Re: [PATCH v2 3/4] qom: Add user_creatable_print_help_from_qdict()
Date: Fri, 02 Oct 2020 14:25:44 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)

Kevin Wolf <kwolf@redhat.com> writes:

> This adds a function that, given a QDict of non-help options, prints
> help for user creatable objects.
>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>  include/qom/object_interfaces.h | 9 +++++++++
>  qom/object_interfaces.c         | 9 +++++++++
>  2 files changed, 18 insertions(+)
>
> diff --git a/include/qom/object_interfaces.h b/include/qom/object_interfaces.h
> index f118fb516b..53b114b11a 100644
> --- a/include/qom/object_interfaces.h
> +++ b/include/qom/object_interfaces.h
> @@ -161,6 +161,15 @@ int user_creatable_add_opts_foreach(void *opaque,
>   */
>  bool user_creatable_print_help(const char *type, QemuOpts *opts);
>  
> +/**
> + * user_creatable_print_help_from_qdict:
> + * @args: options to create
> + *
> + * Prints help considering the other options given in @args (if "qom-type" is
> + * given and valid, print properties for the type, otherwise print valid 
> types)
> + */
> +void user_creatable_print_help_from_qdict(QDict *args);
> +
>  /**
>   * user_creatable_del:
>   * @id: the unique ID for the object
> diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c
> index 3fd1da157e..ed896fe764 100644
> --- a/qom/object_interfaces.c
> +++ b/qom/object_interfaces.c
> @@ -279,6 +279,15 @@ bool user_creatable_print_help(const char *type, 
> QemuOpts *opts)
>      return false;
>  }
>  
> +void user_creatable_print_help_from_qdict(QDict *args)
> +{
> +    const char *type = qdict_get_try_str(args, "qom-type");
> +
> +    if (!type || !user_creatable_print_type_properites(type)) {
> +        user_creatable_print_types();
> +    }

Existing user_creatable_print_help():

1. "qom-type=help,..." and its sugared forms, in particular "help"

   List QOM types and succeed.

2. "qom-type=T,help,..." 

2a. If T names a QOM type

    List T's properties and succeed.

2b. If T does not name a QOM type

    Fail.  Callers typically interpret this as "no help requested",
    proceed, then choke on invalid qom-type=T.

New user_creatable_print_help() treats case 2b like case 1.

Intentional?

> +}
> +
>  bool user_creatable_del(const char *id, Error **errp)
>  {
>      Object *container;




reply via email to

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