Skip to content

Commit bb699c1

Browse files
ktbyersbsdemon
andauthored
Optilink eolt devices (#3557)
Co-authored-by: Iliya Iliev <[email protected]> Co-authored-by: Ilia Iliev <[email protected]>
1 parent d5fbf98 commit bb699c1

File tree

5 files changed

+102
-1
lines changed

5 files changed

+102
-1
lines changed

PLATFORMS.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,11 +99,12 @@
9999
- F5 Linux
100100
- Fortinet
101101
- Garderos GRS
102-
- Genexis Saturn SOLT33
102+
- Genexis Saturn SOLT33 (telnet only)
103103
- MRV Communications OptiSwitch
104104
- MRV LX
105105
- Nokia/Alcatel SR-OS
106106
- Nokia SR Linux
107+
- Optilink EOLT 9702 (telnet only)
107108
- QuantaMesh
108109
- Rad ETX
109110
- Raisecom ROAP
@@ -291,6 +292,7 @@
291292
- maipu_telnet
292293
- nokia_sros_telnet
293294
- oneaccess_oneos_telnet
295+
- optilink_eolt9702_telnet
294296
- paloalto_panos_telnet
295297
- rad_etx_telnet
296298
- raisecom_telnet

netmiko/optilink/__init__.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from netmiko.optilink.op_eolt9702 import OptilinkEOLT9702Telnet
2+
from netmiko.optilink.op_eolt11444 import OptilinkEOLT11444Telnet
3+
4+
__all__ = [
5+
"OptilinkEOLT11444Telnet",
6+
"OptilinkEOLT9702Telnet",
7+
]

netmiko/optilink/op_eolt11444.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
from netmiko.cisco_base_connection import CiscoBaseConnection
2+
3+
4+
class OptilinkEOLT11444Base(CiscoBaseConnection):
5+
"""
6+
Optilink EOLT 11444
7+
Optilink EOLT 11448
8+
"""
9+
10+
def session_preparation(self) -> None:
11+
self._test_channel_read(pattern=r"[>#]")
12+
self.set_base_prompt()
13+
self.enable()
14+
self.disable_paging()
15+
self.clear_buffer()
16+
self.exit_enable_mode()
17+
18+
def config_mode(
19+
self,
20+
config_command: str = "configure",
21+
pattern: str = "",
22+
re_flags: int = 0,
23+
) -> str:
24+
"""Enter into configuration mode."""
25+
return super().config_mode(
26+
config_command=config_command, pattern=pattern, re_flags=re_flags
27+
)
28+
29+
30+
class OptilinkEOLT11444Telnet(OptilinkEOLT11444Base):
31+
"""
32+
Optilink EOLT 11444 telnet driver
33+
Optilink EOLT 11448 telnet driver
34+
"""
35+
36+
pass

netmiko/optilink/op_eolt9702.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
from netmiko.cisco_base_connection import CiscoBaseConnection
2+
3+
4+
class OptilinkEOLT9702Base(CiscoBaseConnection):
5+
"""
6+
Optilink EOLT 9702-8P2AB
7+
Optilink EOLT 9702-4P
8+
"""
9+
10+
def session_preparation(self) -> None:
11+
self._test_channel_read(pattern=r"[>#]")
12+
self.set_base_prompt()
13+
self.enable()
14+
self.config_mode()
15+
self.send_command("vty output show-all")
16+
self.exit_config_mode()
17+
self.exit_enable_mode()
18+
19+
def config_mode(
20+
self,
21+
config_command: str = "config",
22+
pattern: str = "",
23+
re_flags: int = 0,
24+
) -> str:
25+
"""Enter into configuration mode."""
26+
return super().config_mode(
27+
config_command=config_command, pattern=pattern, re_flags=re_flags
28+
)
29+
30+
def exit_enable_mode(self, exit_command: str = "exit") -> str:
31+
"""Exit from enable mode."""
32+
output = ""
33+
if self.check_enable_mode():
34+
self.write_channel(self.normalize_cmd(exit_command))
35+
self.read_until_pattern(pattern=exit_command)
36+
output += self.read_until_pattern(pattern=r"OP_OLT>")
37+
if self.check_enable_mode():
38+
raise ValueError("Failed to exit enable mode.")
39+
return output
40+
41+
def exit_config_mode(self, exit_config: str = "exit", pattern: str = r"#.*") -> str:
42+
"""Exit from configuration mode."""
43+
return super().exit_config_mode(exit_config=exit_config, pattern=pattern)
44+
45+
46+
class OptilinkEOLT9702Telnet(OptilinkEOLT9702Base):
47+
"""
48+
Optilink EOLT 9702-8P2AB telnet driver
49+
Optilink EOLT 9702-4P telnet driver
50+
"""
51+
52+
pass

netmiko/ssh_dispatcher.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,8 @@
112112
)
113113
from netmiko.netgear import NetgearProSafeSSH
114114
from netmiko.oneaccess import OneaccessOneOSTelnet, OneaccessOneOSSSH
115+
from netmiko.optilink import OptilinkEOLT9702Telnet
116+
from netmiko.optilink import OptilinkEOLT11444Telnet
115117
from netmiko.ovs import OvsLinuxSSH
116118
from netmiko.paloalto import PaloAltoPanosSSH
117119
from netmiko.paloalto import PaloAltoPanosTelnet
@@ -360,6 +362,8 @@
360362
CLASS_MAPPER["maipu_telnet"] = MaipuTelnet
361363
CLASS_MAPPER["nokia_sros_telnet"] = NokiaSrosTelnet
362364
CLASS_MAPPER["oneaccess_oneos_telnet"] = OneaccessOneOSTelnet
365+
CLASS_MAPPER["optilink_eolt9702_telnet"] = OptilinkEOLT9702Telnet
366+
CLASS_MAPPER["optilink_eolt11444_telnet"] = OptilinkEOLT11444Telnet
363367
CLASS_MAPPER["paloalto_panos_telnet"] = PaloAltoPanosTelnet
364368
CLASS_MAPPER["rad_etx_telnet"] = RadETXTelnet
365369
CLASS_MAPPER["raisecom_telnet"] = RaisecomRoapTelnet

0 commit comments

Comments
 (0)