Mini Shell
import time
from netmiko.cisco_base_connection import CiscoSSHConnection
class EltexEsrSSH(CiscoSSHConnection):
"""Netmiko support for routers Eltex ESR."""
def session_preparation(self):
"""Prepare the session after the connection has been established."""
self.ansi_escape_codes = True
self._test_channel_read()
self.set_base_prompt()
self.disable_paging(command="terminal datadump")
# Clear the read buffer
time.sleep(0.3 * self.global_delay_factor)
self.clear_buffer()
def config_mode(self, config_command="configure", pattern=r")#"):
"""Enter configuration mode."""
return super().config_mode(config_command=config_command, pattern=pattern)
def check_config_mode(self, check_string="(config", pattern=""):
"""Checks whether in configuration mode. Returns a boolean."""
return super().check_config_mode(check_string=check_string, pattern=pattern)
def save_config(self, *args, **kwargs):
"""Not Implemented (use commit() method)"""
raise NotImplementedError
def commit(self, delay_factor=1):
"""
Commit the candidate configuration.
Commit the entered configuration.
Raise an error and return the failure
if the commit fails.
default:
command_string = commit
"""
delay_factor = self.select_delay_factor(delay_factor)
error_marker = "Can't commit configuration"
command_string = "commit"
if self.check_config_mode():
self.exit_config_mode()
output = self.send_command(
command_string=command_string, delay_factor=delay_factor
)
if error_marker in output:
raise ValueError(
"Commit failed with following errors:\n\n{}".format(output)
)
return output
def _confirm(self, delay_factor=1):
"""
Confirm the candidate configuration.
Raise an error and return the failure if the confirm fails.
"""
delay_factor = self.select_delay_factor(delay_factor)
error_marker = "Nothing to confirm in configuration"
command_string = "confirm"
if self.check_config_mode():
self.exit_config_mode()
output = self.send_command(
command_string=command_string, delay_factor=delay_factor
)
if error_marker in output:
raise ValueError(
"Confirm failed with following errors:\n\n{}".format(output)
)
return output
def _restore(self, delay_factor=1):
"""
Restore the candidate configuration.
Raise an error and return the failure if the restore fails.
"""
delay_factor = self.select_delay_factor(delay_factor)
error_marker = "Can't find backup of previous configuration!"
command_string = "restore"
if self.check_config_mode():
self.exit_config_mode()
output = self.send_command(
command_string=command_string, delay_factor=delay_factor
)
if error_marker in output:
raise ValueError(
"Restore failed with following errors:\n\n{}".format(output)
)
return output
Zerion Mini Shell 1.0