[Twisted-Python] Cisco-style hierarchial CLI
    Phil Mayers 
    p.mayers at imperial.ac.uk
       
    Sat Mar 20 11:43:36 MST 2004
    
    
  
All,
I'm putting together some glue-ware for a system, and would like to hide
the underlying nature of it. It's a bit of software that fits in and
around routers / switches etc. and there's a pretty common CLI for those
these days, which consists of a hierarchial context-based set of
commands, plus completion, e.g. on Cisco, although I suspect everyone is
familiar with the concept:
client: sh <question mark>
server:     ip - show IP items
server:     foo - show Foo items
server:     bar - show Bar items
client: sh f <question mark>
server:     ver - show foo version
server:     connections - show foo connections
client: sh f c <question mark>
server:     <cr> - show connection summary
server:     <int> - show connection detail
client: sh f c 3
server: <some stuff>
Similarly, for configure mode:
client: configure
server: ok
client: subsystem
server(subsystem): ok
client: <question mark>
server(subsystem): trusted - configure trusted ports
server(subsystem): untrusted - configure untrusted ports
server(subsystem): map - map from trusted to untrusted
client: trust
server(subsystem-trusted): ok
client: <question mark>
server(subsystem-trusted): ip - add a trusted port by IP
server(subsystem-trusted): phys - add a trusted physical port
server(subsystem-trusted): vlan - add a trusted vlan
client: vlan 1
The hiearchial configure mode is mapped onto a hierarchial configuration
file, e.g. the above would generate:
subsystem
  trusted
    vlan 1
  !
!
It's main features are:
1) Tab completion and partial -> full conversion
2) Nested modes
Relevant to twisted is I want to replace the manhole interactive
interpreter.
Any such beast exist?
-- 
Regards,
Phil
+------------------------------------------+
| Phil Mayers                              |
| Network & Infrastructure Group           |
| Information & Communication Technologies |
| Imperial College                         |
+------------------------------------------+
    
    
More information about the Twisted-Python
mailing list