[libvirt] [PATCH 6/8] virsh: Add completer functions to domManaggementCmds

Michal Privoznik mprivozn at redhat.com
Mon Aug 19 14:45:00 UTC 2013


On 08.08.2013 16:38, Tomas Meszaros wrote:
> Add .completer and .completer_flags to domManagementCmds.
> 
> vshDomainCompleter (with appropriate flags) is enabled for
> commands requiring only single <domain> argument.
> ---
>  tools/virsh-domain.c | 230 ++++++++++++++++++++++++++++++++++++++++-----------
>  1 file changed, 180 insertions(+), 50 deletions(-)
> 
> diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
> index 5e1196f..b89b219 100644
> --- a/tools/virsh-domain.c
> +++ b/tools/virsh-domain.c
> @@ -2752,7 +2752,8 @@ static const vshCmdOptDef opts_dom_pm_suspend[] = {
>       .flags = VSH_OFLAG_REQ,
>       .help = N_("mem(Suspend-to-RAM), "
>                  "disk(Suspend-to-Disk), "
> -                "hybrid(Hybrid-Suspend)")
> +                "hybrid(Hybrid-Suspend)"),
> +     .completer = vshSuspendTargetCompleter

It makes more sense to add this chunk to the patch introducing
vshSuspendTargetCompleter (3/8 that is). In fact, I think you need to
reorder the patches. 1/8 is correct (from ordering POV). It should be
followed by 5/8 and then the rest of the patches which add completers.

>      },
>      {.name = NULL}
>  };
> @@ -4707,7 +4708,8 @@ static const vshCmdOptDef opts_shutdown[] = {
>      },
>      {.name = "mode",
>       .type = VSH_OT_STRING,
> -     .help = N_("shutdown mode: acpi|agent|initctl|signal")
> +     .help = N_("shutdown mode: acpi|agent|initctl|signal"),
> +     .completer = vshRebootShutdownModeCompleter
>      },
>      {.name = NULL}
>  };
> @@ -4793,7 +4795,8 @@ static const vshCmdOptDef opts_reboot[] = {
>      },
>      {.name = "mode",
>       .type = VSH_OT_STRING,
> -     .help = N_("shutdown mode: acpi|agent|initctl|signal")
> +     .help = N_("shutdown mode: acpi|agent|initctl|signal"),
> +     .completer = vshRebootShutdownModeCompleter
>      },
>      {.name = NULL}
>  };
> @@ -10333,7 +10336,10 @@ const vshCmdDef domManagementCmds[] = {
>       .handler = cmdAutostart,
>       .opts = opts_autostart,
>       .info = info_autostart,
> -     .flags = 0
> +     .flags = 0,
> +     .completer = vshDomainCompleter,
> +     .completer_flags = VIR_CONNECT_LIST_DOMAINS_ACTIVE |
> +                        VIR_CONNECT_LIST_DOMAINS_INACTIVE

Nice! It's super-easy for other commands to profit from well written
(read generic enough) completer. Just pass the correct flags.

Michal




More information about the libvir-list mailing list