trigger.gorc — Determine commands to run upon login¶
This is used by ../usage/scripts/go to execute commands upon login to a device. A user may specify a list of commands to execute for each vendor. If the file is not found, or the syntax is bad, no commands will be passed to the device.
By default, only a very limited subset of root commands are allowed to be
specified within the
.gorc. Any root commands not explicitly permitted will
be filtered out prior to passing them along to the device.
The only public interface to this module is
.gorc That looks like this:
[init_commands] cisco: term mon terminal length 0 show clock
This is what is returned:
>>> from trigger import gorc >>> gorc.get_init_commands('cisco') ['term mon', 'terminal length 0', 'show clock']
>>> from trigger.netdevices import NetDevices >>> nd = NetDevices() >>> dev = nd.find('foo1-abc') >>> dev.connect(init_commands=['show clock', 'exit']) Connecting to foo1-abc.net.aol.com. Use ^X to exit. Fetching credentials from /home/jathan/.tacacsrc foo1-abc#show clock 22:48:24.445 UTC Sat Jun 23 2012 foo1-abc#exit >>>
Filters root commands from
cmdsthat are not explicitly allowed.
Allowed commands are defined using
- cmds – A list of commands that should be filtered
- allowed_commands – A list of commands that are allowed
Filtered list of commands
Return a list of init commands for a given vendor name. In all failure cases it will return an empty list.
Parameters: vendor – A vendor name (e.g. ‘juniper’) Returns: list of commands
parse_commands(vendor, section='init_commands', config=None)¶
Fetch the init commands.
- vendors – A vendor name (e.g. ‘juniper’)
- section – The section of the config
- config – A parsed ConfigParser object
List of commands
Read the .gorc file
Parameters: filepath – The path to the .gorc file Returns: A parsed ConfigParser object