-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added support for Arris CER and Casa CMTS platforms. (#2958)
* Added support for Arris CER and Casa CMTS platforms. * Corrected issue with reliably exiting config mode on Casa. Co-authored-by: Chuck van Gessel <douglas.vangessel@sparklight.biz>
- Loading branch information
1 parent
5b6d5a9
commit 1685b3d
Showing
7 changed files
with
132 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
from netmiko.arris.arris_cer import ArrisCERBase, ArrisCERSSH | ||
|
||
__all__ = ["ArrisCERBase", "ArrisCERSSH"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
from netmiko.cisco_base_connection import CiscoSSHConnection | ||
|
||
|
||
class ArrisCERBase(CiscoSSHConnection): | ||
""" | ||
Arris CER Support. | ||
Implements methods for interacting with Arris CER platforms. | ||
""" | ||
|
||
def config_mode( | ||
self, | ||
config_command: str = "configure", | ||
pattern: str = "", | ||
re_flags: int = 0, | ||
) -> str: | ||
"""Enters configuration mode.""" | ||
return super().config_mode( | ||
config_command=config_command, | ||
pattern=pattern, | ||
re_flags=re_flags, | ||
) | ||
|
||
def save_config( | ||
self, | ||
cmd: str = "write memory", | ||
confirm: bool = False, | ||
confirm_response: str = "", | ||
) -> str: | ||
"""Saves the running configuration to NVRAM.""" | ||
return super().save_config( | ||
cmd=cmd, confirm=confirm, confirm_response=confirm_response | ||
) | ||
|
||
|
||
class ArrisCERSSH(ArrisCERBase): | ||
"""Arris CER SSH Driver.""" | ||
|
||
pass |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
from netmiko.casa.casa_cmts import CasaCMTSBase, CasaCMTSSSH | ||
|
||
__all__ = ["CasaCMTSBase", "CasaCMTSSSH"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
from typing import Optional | ||
from netmiko.cisco_base_connection import CiscoSSHConnection | ||
from netmiko.no_enable import NoEnable | ||
|
||
|
||
class CasaCMTSBase(NoEnable, CiscoSSHConnection): | ||
""" | ||
Casa CMTS support. | ||
Implements methods for interacting with Casa CMTS platforms. | ||
""" | ||
|
||
def disable_paging( | ||
self, | ||
command: str = "page-off", | ||
delay_factor: Optional[float] = None, | ||
cmd_verify: bool = True, | ||
pattern: Optional[str] = None, | ||
) -> str: | ||
"""Disables paging.""" | ||
return super().disable_paging( | ||
command=command, | ||
delay_factor=delay_factor, | ||
cmd_verify=cmd_verify, | ||
pattern=pattern, | ||
) | ||
|
||
def config_mode( | ||
self, | ||
config_command: str = "config", | ||
pattern: str = "", | ||
re_flags: int = 0, | ||
) -> str: | ||
"""Enters configuration mode.""" | ||
return super().config_mode( | ||
config_command=config_command, | ||
pattern=pattern, | ||
re_flags=re_flags, | ||
) | ||
|
||
def exit_config_mode( | ||
self, exit_config: str = chr(26), pattern: str = r"#.*" | ||
) -> str: | ||
""" | ||
Exits configuration mode. | ||
Must use CTRL-Z (ASCII 26) to reliably exit from any | ||
tier in the configuration hierarchy. | ||
Since CTRL-Z is a non-printable character, we must temporarily disable | ||
global_cmd_verify to prevent an exception trying to read the | ||
echoed input. | ||
""" | ||
if self.global_cmd_verify is not False and exit_config == chr(26): | ||
global_cmd_verify_tmp = self.global_cmd_verify | ||
self.global_cmd_verify = False | ||
output = super().exit_config_mode(exit_config, pattern) | ||
self.global_cmd_verify = global_cmd_verify_tmp | ||
else: | ||
output = super().exit_config_mode(exit_config, pattern) | ||
return output | ||
|
||
|
||
class CasaCMTSSSH(CasaCMTSBase): | ||
"""Casa CMTS SSH Driver.""" | ||
|
||
pass |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters