D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
imh-python
/
lib
/
python3.9
/
site-packages
/
netmiko
/
keymile
/
Filename :
keymile_nos_ssh.py
back
Copy
import time import re from netmiko.cisco.cisco_ios import CiscoIosBase from netmiko.ssh_exception import NetmikoAuthenticationException class KeymileNOSSSH(CiscoIosBase): def session_preparation(self): """Prepare the session after the connection has been established.""" self.set_base_prompt() self.disable_paging() time.sleep(0.3 * self.global_delay_factor) self.clear_buffer() def _test_channel_read(self, count=40, pattern=""): """Since Keymile NOS always returns True on paramiko.connect() we check the output for substring Login incorrect after connecting.""" output = super()._test_channel_read(count=count, pattern=pattern) pattern = r"Login incorrect" if re.search(pattern, output): self.paramiko_cleanup() msg = "Authentication failure: unable to connect" msg += f"{self.device_type} {self.host}:{self.port}" msg += self.RESPONSE_RETURN + "Login incorrect" raise NetmikoAuthenticationException(msg) else: return output def special_login_handler(self, delay_factor=1): """Since Keymile NOS always returns True on paramiko.connect() we check the output for substring Login incorrect after connecting.""" self._test_channel_read(pattern=r"(>|Login incorrect)")