From 2278d88f245b5110af7cb7db026b87469883612e Mon Sep 17 00:00:00 2001 From: root Date: Thu, 21 Dec 2023 20:32:17 +0100 Subject: [PATCH] added oneaccess_tdre --- netmiko/oneaccess/__init__.py | 8 ++++++- netmiko/oneaccess/oneaccess_tdre.py | 33 +++++++++++++++++++++++++++++ netmiko/ssh_dispatcher.py | 3 +++ 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 netmiko/oneaccess/oneaccess_tdre.py diff --git a/netmiko/oneaccess/__init__.py b/netmiko/oneaccess/__init__.py index a3d597813..6bd80bf59 100644 --- a/netmiko/oneaccess/__init__.py +++ b/netmiko/oneaccess/__init__.py @@ -1,3 +1,9 @@ from netmiko.oneaccess.oneaccess_oneos import OneaccessOneOSSSH, OneaccessOneOSTelnet +from netmiko.oneaccess.oneaccess_tdre import OneaccessTDRESSH, OneaccessTDRETelnet -__all__ = ["OneaccessOneOSSSH", "OneaccessOneOSTelnet"] +__all__ = [ + "OneaccessOneOSSSH", + "OneaccessOneOSTelnet", + "OneaccessTDRESSH", + "OneaccessTDRETelnet", +] diff --git a/netmiko/oneaccess/oneaccess_tdre.py b/netmiko/oneaccess/oneaccess_tdre.py new file mode 100644 index 000000000..675d96889 --- /dev/null +++ b/netmiko/oneaccess/oneaccess_tdre.py @@ -0,0 +1,33 @@ +"""Netmiko driver for OneAccess TDRE""" +import time +from typing import Any + +from netmiko.base_connection import BaseConnection + + +class OneaccessTDREBase(BaseConnection): + def __init__(self, *args: Any, **kwargs: Any) -> None: + """Init connection - similar as Cisco""" + default_enter = kwargs.get("default_enter") + kwargs["default_enter"] = "\r\n" if default_enter is None else default_enter + super().__init__(*args, **kwargs) + + def session_preparation(self) -> None: + """Prepare connection - disable paging""" + self._test_channel_read(pattern=r"[>]") + self.set_base_prompt() + # Clear the read buffer + time.sleep(0.3 * self.global_delay_factor) + self.clear_buffer() + + def save_config(self, *args: Any, **kwargs: Any) -> str: + """Not supported.""" + return "" + + +class OneaccessTDRESSH(OneaccessTDREBase): + pass + + +class OneaccessTDRETelnet(OneaccessTDREBase): + pass diff --git a/netmiko/ssh_dispatcher.py b/netmiko/ssh_dispatcher.py index 31ba526a8..aee575cdb 100755 --- a/netmiko/ssh_dispatcher.py +++ b/netmiko/ssh_dispatcher.py @@ -107,6 +107,7 @@ ) from netmiko.netgear import NetgearProSafeSSH from netmiko.oneaccess import OneaccessOneOSTelnet, OneaccessOneOSSSH +from netmiko.oneaccess import OneaccessTDRETelnet, OneaccessTDRESSH from netmiko.ovs import OvsLinuxSSH from netmiko.paloalto import PaloAltoPanosSSH from netmiko.paloalto import PaloAltoPanosTelnet @@ -255,6 +256,7 @@ "nokia_sros": NokiaSrosSSH, "nokia_srl": NokiaSrlSSH, "oneaccess_oneos": OneaccessOneOSSSH, + "oneaccess_tdre": OneaccessTDRESSH, "ovs_linux": OvsLinuxSSH, "paloalto_panos": PaloAltoPanosSSH, "pluribus": PluribusSSH, @@ -347,6 +349,7 @@ CLASS_MAPPER["juniper_junos_telnet"] = JuniperTelnet CLASS_MAPPER["nokia_sros_telnet"] = NokiaSrosTelnet CLASS_MAPPER["oneaccess_oneos_telnet"] = OneaccessOneOSTelnet +CLASS_MAPPER["oneaccess_tdre_telnet"] = OneaccessTDRETelnet CLASS_MAPPER["paloalto_panos_telnet"] = PaloAltoPanosTelnet CLASS_MAPPER["rad_etx_telnet"] = RadETXTelnet CLASS_MAPPER["raisecom_telnet"] = RaisecomRoapTelnet