Sindbad~EG File Manager
import time
from netmiko.base_connection import BaseConnection
class NetscalerSSH(BaseConnection):
""" Netscaler SSH class. """
def session_preparation(self):
"""Prepare the session after the connection has been established."""
# 0 will defer to the global delay factor
delay_factor = self.select_delay_factor(delay_factor=0)
self._test_channel_read()
self.set_base_prompt()
cmd = f"{self.RETURN}set cli mode -page OFF{self.RETURN}"
self.disable_paging(command=cmd)
time.sleep(1 * delay_factor)
self.set_base_prompt()
time.sleep(0.3 * delay_factor)
self.clear_buffer()
def set_base_prompt(
self, pri_prompt_terminator="#", alt_prompt_terminator=">", delay_factor=1
):
"""Sets self.base_prompt.
Netscaler has '>' for the prompt.
"""
prompt = self.find_prompt(delay_factor=delay_factor)
if not prompt[-1] in (pri_prompt_terminator, alt_prompt_terminator):
raise ValueError(f"Router prompt not found: {repr(prompt)}")
prompt = prompt.strip()
if len(prompt) == 1:
self.base_prompt = prompt
else:
# Strip off trailing terminator
self.base_prompt = prompt[:-1]
return self.base_prompt
def check_config_mode(self):
"""Netscaler devices do not have a config mode."""
return False
def config_mode(self):
"""Netscaler devices do not have a config mode."""
return ""
def exit_config_mode(self):
"""Netscaler devices do not have a config mode."""
return ""
def strip_prompt(self, a_string):
""" Strip 'Done' from command output """
output = super().strip_prompt(a_string)
lines = output.split(self.RESPONSE_RETURN)
if "Done" in lines[-1]:
return self.RESPONSE_RETURN.join(lines[:-1])
else:
return output
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists