[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