Skip to content

Commit d5fbf98

Browse files
ktbyersbsdemon
andauthored
genexis_solt33_telnet support (#3556)
Co-authored-by: Iliya Iliev <iliya.iliev@x3me.net> Co-authored-by: Ilia Iliev <bsdemon@gmail.com>
1 parent 06e8b42 commit d5fbf98

File tree

4 files changed

+39
-2
lines changed

4 files changed

+39
-2
lines changed

PLATFORMS.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
- F5 Linux
100100
- Fortinet
101101
- Garderos GRS
102+
- Genexis Saturn SOLT33
102103
- MRV Communications OptiSwitch
103104
- MRV LX
104105
- Nokia/Alcatel SR-OS
@@ -280,6 +281,7 @@
280281
- extreme_telnet
281282
- generic_telnet
282283
- generic_termserver_telnet
284+
- genexis_solt33_telnet
283285
- hp_comware_telnet
284286
- hp_procurve_telnet
285287
- huawei_olt_telnet

netmiko/genexis/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from netmiko.genexis.genexis_solt33 import GenexisSOLT33Telnet
2+
3+
__all__ = ["GenexisSOLT33Telnet"]

netmiko/genexis/genexis_solt33.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
from netmiko.cisco_base_connection import CiscoBaseConnection
2+
3+
4+
class GenexisSOLT33Base(CiscoBaseConnection):
5+
def session_preparation(self) -> None:
6+
self._test_channel_read(pattern=r"[>#]")
7+
self.set_base_prompt()
8+
self.enable()
9+
self.config_mode()
10+
cmd = "line width 256"
11+
self.set_terminal_width(command=cmd, pattern=cmd)
12+
self.disable_paging(command="screen-rows per-page 0")
13+
self.clear_buffer()
14+
self.exit_config_mode()
15+
self.exit_enable_mode()
16+
17+
def exit_enable_mode(self, exit_command: str = "exit") -> str:
18+
output = ""
19+
if self.check_enable_mode():
20+
self.write_channel(self.normalize_cmd(exit_command))
21+
self.read_until_pattern(pattern=exit_command)
22+
output += self.read_until_pattern(pattern=r">")
23+
if self.check_enable_mode():
24+
raise ValueError("Failed to exit enable mode.")
25+
return output
26+
27+
28+
class GenexisSOLT33Telnet(GenexisSOLT33Base):
29+
"""Genexis SOLT33 telnet driver"""
30+
31+
pass

netmiko/ssh_dispatcher.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@
8686
from netmiko.flexvnf import FlexvnfSSH
8787
from netmiko.fortinet import FortinetSSH
8888
from netmiko.garderos import GarderosGrsSSH
89+
from netmiko.genexis import GenexisSOLT33Telnet
8990
from netmiko.hillstone import HillstoneStoneosSSH
9091
from netmiko.hp import HPProcurveSSH, HPProcurveTelnet, HPComwareSSH, HPComwareTelnet
9192
from netmiko.huawei import HuaweiSSH, HuaweiVrpv8SSH, HuaweiTelnet
@@ -143,7 +144,6 @@
143144
from netmiko.supermicro import SmciSwitchSmisTelnet
144145
from netmiko.zyxel import ZyxelSSH
145146

146-
147147
if TYPE_CHECKING:
148148
from netmiko.base_connection import BaseConnection
149149
from netmiko.scp_handler import BaseFileTransfer
@@ -350,12 +350,14 @@
350350
CLASS_MAPPER["extreme_netiron_telnet"] = ExtremeNetironTelnet
351351
CLASS_MAPPER["generic_telnet"] = GenericTelnet
352352
CLASS_MAPPER["generic_termserver_telnet"] = TerminalServerTelnet
353+
CLASS_MAPPER["genexis_solt33_telnet"] = GenexisSOLT33Telnet
353354
CLASS_MAPPER["hp_procurve_telnet"] = HPProcurveTelnet
354355
CLASS_MAPPER["hp_comware_telnet"] = HPComwareTelnet
355356
CLASS_MAPPER["huawei_telnet"] = HuaweiTelnet
356357
CLASS_MAPPER["huawei_olt_telnet"] = HuaweiSmartAXSSH
357358
CLASS_MAPPER["ipinfusion_ocnos_telnet"] = IpInfusionOcNOSTelnet
358359
CLASS_MAPPER["juniper_junos_telnet"] = JuniperTelnet
360+
CLASS_MAPPER["maipu_telnet"] = MaipuTelnet
359361
CLASS_MAPPER["nokia_sros_telnet"] = NokiaSrosTelnet
360362
CLASS_MAPPER["oneaccess_oneos_telnet"] = OneaccessOneOSTelnet
361363
CLASS_MAPPER["paloalto_panos_telnet"] = PaloAltoPanosTelnet
@@ -368,7 +370,6 @@
368370
CLASS_MAPPER["tplink_jetstream_telnet"] = TPLinkJetStreamTelnet
369371
CLASS_MAPPER["yamaha_telnet"] = YamahaTelnet
370372
CLASS_MAPPER["zte_zxros_telnet"] = ZteZxrosTelnet
371-
CLASS_MAPPER["maipu_telnet"] = MaipuTelnet
372373

373374
# Add serial drivers
374375
CLASS_MAPPER["cisco_ios_serial"] = CiscoIosSerial

0 commit comments

Comments
 (0)