[PATCH] virsh: Provide completer for virtualization types

Michal Prívozník mprivozn at redhat.com
Tue Mar 29 06:40:29 UTC 2022


On 3/25/22 23:51, natto1784 wrote:
> Related: https://gitlab.com/libvirt/libvirt/-/issues/9
> Signed-off-by: natto1784 <natto at weirdnatto.in>
> ---
>  .gitignore                   |  4 ++++
>  tools/virsh-completer-host.c | 12 ++++++++++++
>  tools/virsh-completer-host.h |  5 +++++
>  tools/virsh-host.c           |  3 +++
>  4 files changed, 24 insertions(+)
> 
> diff --git a/.gitignore b/.gitignore
> index 4695391..62012f4 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -23,4 +23,8 @@ tags
>  
>  # clangd related ignores
>  .clangd
> +.cache/clangd
>  compile_commands.json
> +
> +# ccls cache
> +.ccls-cache

I believe this is the first time I see anybody opening libvirt sources
in Visual Studio :-)

Anyway, this hunk is unrelated to the rest of the patch and therefore
should be a separate commit.

> diff --git a/tools/virsh-completer-host.c b/tools/virsh-completer-host.c
> index 40cb687..e481a73 100644
> --- a/tools/virsh-completer-host.c
> +++ b/tools/virsh-completer-host.c
> @@ -27,6 +27,7 @@
>  #include "virxml.h"
>  #include "virutil.h"
>  #include "virsh-host.h"
> +#include "conf/domain_conf.h"
>  
>  static char *
>  virshPagesizeNodeToString(xmlNodePtr node)
> @@ -180,3 +181,14 @@ virshNodeSuspendTargetCompleter(vshControl *ctl G_GNUC_UNUSED,
>      return virshEnumComplete(VIR_NODE_SUSPEND_TARGET_LAST,
>                               virshNodeSuspendTargetTypeToString);
>  }
> +
> +char **
> +virshVirtTypeCompleter(vshControl *ctl G_GNUC_UNUSED,
> +                       const vshCmd *cmd G_GNUC_UNUSED,
> +                       unsigned int flags)
> +{
> +    virCheckFlags(0, NULL);
> +
> +    return virshEnumComplete(VIR_DOMAIN_VIRT_LAST,
> +                             virDomainVirtTypeToString);
> +}
> diff --git a/tools/virsh-completer-host.h b/tools/virsh-completer-host.h
> index e71ccff..372ac14 100644
> --- a/tools/virsh-completer-host.h
> +++ b/tools/virsh-completer-host.h
> @@ -41,3 +41,8 @@ char **
>  virshNodeSuspendTargetCompleter(vshControl *ctl,
>                                  const vshCmd *cmd,
>                                  unsigned int flags);
> +
> +char **
> +virshVirtTypeCompleter(vshControl *ctl,
> +                       const vshCmd *cmd,
> +                       unsigned int flags);
> diff --git a/tools/virsh-host.c b/tools/virsh-host.c
> index 2e3cbc3..b28f29f 100644
> --- a/tools/virsh-host.c
> +++ b/tools/virsh-host.c
> @@ -77,6 +77,7 @@ static const vshCmdInfo info_domcapabilities[] = {
>  static const vshCmdOptDef opts_domcapabilities[] = {
>      {.name = "virttype",
>       .type = VSH_OT_STRING,
> +     .completer = virshVirtTypeCompleter,
>       .help = N_("virtualization type (/domain/@type)"),
>      },
>      {.name = "emulatorbin",
> @@ -1577,6 +1578,7 @@ static const vshCmdOptDef opts_hypervisor_cpu_compare[] = {
>      VIRSH_COMMON_OPT_FILE(N_("file containing an XML CPU description")),
>      {.name = "virttype",
>       .type = VSH_OT_STRING,
> +     .completer = virshVirtTypeCompleter,
>       .help = N_("virtualization type (/domain/@type)"),
>      },
>      {.name = "emulator",
> @@ -1686,6 +1688,7 @@ static const vshCmdOptDef opts_hypervisor_cpu_baseline[] = {
>      VIRSH_COMMON_OPT_FILE(N_("file containing XML CPU descriptions")),
>      {.name = "virttype",
>       .type = VSH_OT_STRING,
> +     .completer = virshVirtTypeCompleter,
>       .help = N_("virtualization type (/domain/@type)"),
>      },
>      {.name = "emulator",

This part looks okay. Could you split this one into two patches then?

Michal



More information about the libvir-list mailing list