pyPluribus¶
Python library to interact with Pluribus devices
Install¶
pyPluribus is available on PyPi and can be easily installed using the following command:
pip install pyPluribus
How to use pyPluribus¶
Open a connection with the device:¶
from pyPluribus import PluribusDevice
my_lovely_pluribus = PluribusDevice(hostname='sw50.jnb01', username='fake', password='!L0v3Pl00ribu$', port=22, timeout=60, keepalive=900)
my_lovely_pluribus.open()
The communication channel with the device is established via SSH.
Send basic show commands:¶
There are two ways to execute show-type conmmands:
- using cli() and must specifiy the command in the Pluribus-specific format ([CONFIG-STANZA]-show)
- using show() and the command can be sent in human-readable format
my_lovely_pluribus.cli('running-config-show') # will return the Running Configuration
my_lovely_pluribus.show('running config') # again, will return the running configuration
my_lovely_pluribus.cli('switch-poweroff')
Load configuration:¶
One single command can be loaded using the same method cli()
my_lovely_pluribus.cli('port-storm-control-modify port 39 speed 10g')
A whole configuration part can be loaded using the method load_candidate_config()
my_config_file = '/path/to/config/file'
my_lovely_pluribus.config.load_candidate(filename=my_config_file)
or
my_custom_config = '''
[MUCH CONFIG CONTENT]
'''
my_lovely_pluribus.config.load_candidate(config=my_custom_config)
Compare configuration¶
Returns the difference between the configuration since last commit (initial configuration – if not commit issued since the connection was open) and the running config.
my_lovely_pluribus.config.compare()
u'@@ -79 +79 @@
-port-storm-control-modify port 39 speed 1g
+port-storm-control-modify port 39 speed 10g'
Discard uncommitted configuration:¶
my_lovely_pluribus.config.discard()
Commit changes¶
my_lovely_pluribus.config.commit()
Close connection¶
my_lovely_pluribus.close()
License¶
Copyright 2016 CloudFlare, Inc.
Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0