What is the difference between "cli-no-match-completion" and "cli-no-key-completion"?

The ConfD user guide descriptions for the two are unclear and hence we require a clarification.

cli-no-match-completion
Specifies that the CLI engine should not provide match completion for the key leafs in the list.

cli-no-key-completion
Specifies that the CLI engine should not perform completion for key leafs in the list. This is to avoid querying the data provider for all existing keys.

I believe the cli-no-match-completion is not about “hinting” - or, “code-completion”-like behavior in CLI.
ConfD CLI be default allows to write only part of the existing key value when typing command - it’s prefix - and if it matches some existing key, it is used.
Annotation tailf:cli-no-match-completion then disables this behavior for specific lists…

E.g. if you have model (pseudo code):

list interface {
  key "if-name";
  leaf if-name { type string; }
  leaf other-content {...};
}

and it contains following data:

interface{eth-123}/other-content

you can type commands like:

interface eth other-content hello

and CLI automatically uses the “eth-123” instead of your “eth” when executing/applying command in CLI…

1 Like