Skip to content

Commit 80d4e25

Browse files
ktbyersCristian Cordero
andcommitted
Ciena fixes (ktbyers#3170)
Co-authored-by: Cristian Cordero <cristian.cordero@flexential.com>
1 parent 82760f5 commit 80d4e25

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

netmiko/ciena/ciena_saos.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,33 @@ class CienaSaosBase(NoEnable, NoConfig, BaseConnection):
1515
Implements methods for interacting Ciena Saos devices.
1616
"""
1717

18+
prompt_pattern = r"[>#$]"
19+
20+
def set_base_prompt(
21+
self,
22+
pri_prompt_terminator: str = "",
23+
alt_prompt_terminator: str = "",
24+
delay_factor: float = 1.0,
25+
pattern: Optional[str] = None,
26+
) -> str:
27+
"""Ciena can use '>', '$', '#' for prompt terminator depending on the device."""
28+
prompt = self.find_prompt(delay_factor=delay_factor)
29+
30+
pattern = rf"^.+{self.prompt_pattern}$"
31+
if re.search(pattern, prompt):
32+
raise ValueError(f"Router prompt not found: {repr(prompt)}")
33+
# Strip off trailing terminator
34+
self.base_prompt = prompt[:-1]
35+
return self.base_prompt
36+
1837
def session_preparation(self) -> None:
19-
self._test_channel_read(pattern=r"[>#]")
38+
self._test_channel_read(pattern=self.prompt_pattern)
2039
self.set_base_prompt()
2140
self.disable_paging(command="system shell session set more off")
2241

2342
def _enter_shell(self) -> str:
2443
"""Enter the Bourne Shell."""
25-
output = self._send_command_str("diag shell", expect_string=r"[$#>]")
44+
output = self._send_command_str("diag shell", expect_string=self.prompt_pattern)
2645
if "SHELL PARSER FAILURE" in output:
2746
msg = "SCP support on Ciena SAOS requires 'diag shell' permissions"
2847
raise ValueError(msg)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy