- when importing from a namespace, allow the specification of the following: no-help - defaults to false but may be set true to prevent display in the help menu. no-completion - defaults to false but may be set true to prevent auto-completion. no-context-help - defaults to false but may be set true to prevent context sensitive help for commands.
- place an access level on namespaces; saves worrying about defining access for every single command. e.g. device_show namespace could have different access to device_config namespace. device view simply imports both namespaces.
- When defining a default attribute if you could include a variable in the definition, default could be given meaningful values.
- Augment the XML schema for support of dynamic variables. e.g.
<VARIABLE name="fred"><ACTION>puts "hello world"</ACTION></VARIABLE>
will get the value of "hello world" when expanded as ${fred}... This is simple for TCL as the result is returned... what about for clish , how do we get a return value into the execitable?
- Currently handles commands in one view or all views. Better model is to be able to specify a namespace for commands and then assign a view to a namespace. e.g.
<NAMESPACE name="fred">
<COMMAND>
</NAMESPACE>
<VIEW name=" kdjkdj"...>
<IMPORT namespace="fred">
<COMMAND ...>
</VIEW>
by default a view imports commands from the global namespace. NB. need to be able to resolve commands from all included namespaces.
- In addition a command could become an alias for an entire namespace's worth of sub-commands. e.g.
<NAMESPACE name="config">
<COMMAND name="show"...>
<COMMAND name="show ip"...>
...
</NAMESPACE>
<VIEW name="foobar"...>
<COMMAND name="do"
help="perform a configuration command"
namespace="config"/>
</VIEW>