Interacting with a Network Device
After connecting to a device by running the CiscoAutomationFramework.connect_ssh you receive a child of this class that is specific to IOS/Nexus based on what is detected you are connected to. You will have all of the attributes documented here to interact with your Cisco device regardless of its firmware type.
- class CiscoAutomationFramework.FirmwareBase.CiscoFirmware(transport)
- abstract add_local_user(username, password, password_code=0, *args, **kwargs)
Method here should be generating a string that the network device accepts in the following format ‘username USERNAME <args> <kwarg key> <kwarg value> password PASSWORD_CODE PASSWORD’
- Parameters:
username – Username to use
password – Password to set (cleartext or encrypted depending on password_code)
password_code – Code for password you are providing
args – Single word arguments in command string
kwargs – Key word arguments in command string
- Returns:
Nothing
- abstract property arp_table: str
Returns the arp table in its raw form
- Returns:
Arp Table
- Return type:
str
- cli_to_config_mode() bool
Navigates the CLI into config mode regardless of where it is
- Returns:
True/False
- Return type:
bool
- cli_to_privileged_exec_mode() bool
Navigates the CLI into prvileged exec mode regardless of where it is. Will raise an EnablePasswordError if the transport engine does not have an enable password set and the network device asks for one.
- Returns:
True/False
- Return type:
bool
- Raises:
CiscoAutomationFramework.Exceptions.EnablePasswordError
- close_connection() None
Closes connection to device
- Returns:
Nothing
- property commands_sent: list
A list of all commands sent to the device in the order they are entered from first to last in the current session
- Returns:
List of commands sent
- Return type:
list
- property config_parser
Returns a config parser object with the full running configuration of the device. This is a helper function so that you do not have to import the config parser object and feed it the running config of the device
- Returns:
Config Parser object with full running configuration
- Return type:
- abstract delete_local_user(username)
Deletes a locally defined user on device
- Parameters:
username (str) – username to delete
- Returns:
Nothing
- get_output(buffer_size=1024, timeout=1) list
Gets output from the device until the prompt is returned or the timeout is reached. You should not need to run this directly often.
- Parameters:
buffer_size – Size of buffer when getting output from device. You shouldnt have to modify this much
timeout – Time to stop waiting for output if no output is received.
- Returns:
- property hostname: str
Hostname of the Cisco device.
- Returns:
Hostname
- Return type:
str
- abstract property interfaces: list
List of interfaces on device
- Returns:
Interfaces
- Return type:
list
- property is_nexus: bool
Returns True/False if the Cisco device is a Nexus
- Returns:
True/False
- Return type:
bool
- abstract property mac_address_table: str
Returns the MAC address table in its raw form
- Returns:
MAC Address Table
- Return type:
str
- property prompt: str
Returns the latest prompt that was returned from the device
- Returns:
Latest prompt returned from device
- Return type:
str
- abstract property running_config: str
Returns running config in its raw form
- Returns:
Running Configuration
- Return type:
str
- abstract save_config()
Saves running config to startup config
- Returns:
Nothing
- send_command(command, end='\n') None
Sends command to device, does not get any output. You should not need to run this directly often
- param command:
Command to send
- param end:
End character (default
- )
- return:
Nothing
- send_command_get_output(command, end='\n', buffer_size=1024, timeout=1, delay=0.5) list
Sends a command to the device and returns the output from the device. If there were multiple commands sent this will gather the output from all the commands at once. This command is a combination of send_command and get_output.
- param command:
Command to send
- param end:
End character (default
- )
- param buffer_size:
Size of buffer when getting output from device. You shouldnt have to modify this much
- param timeout:
Time to stop waiting for output if no output is received.
- param delay:
Time to wait before gathering output from device
- return:
Output from device starting with command, ending with prompt in a list split by line
- rtype:
list
- send_question_get_output(command) list
Special method to get the output from sending a command with a question mark. This will send the command with a trailing ‘?’ get the output from that and then erase the command that is returned on the ending prompt. You should NOT put a question mark in the command this function will handle that for you but if you do, it will be removed so the CLI doesnt do something that is not expected
- Parameters:
command – Command to inspect
- Returns:
list of possible command completions, or next possible words in command
- Return type:
list
- abstract property startup_config: str
Returns startup config in its raw form
- Returns:
Startup Config
- Return type:
str
- terminal_length(n='0')
Sets terminal length of shell
- Parameters:
n (str) – length
- Returns:
Nothing
- terminal_width(n='0')
Sets terminal width of shell
- Parameters:
n (str) – width
- Returns:
- abstract property uptime: str
Returns uptime of device
- Returns:
Uptime
- Return type:
str