Sindbad~EG File Manager
import time
import re
from netmiko.base_connection import BaseConnection
class DellIsilonSSH(BaseConnection):
def set_base_prompt(
self, pri_prompt_terminator="$", alt_prompt_terminator="#", delay_factor=1
):
"""Determine base prompt."""
return super().set_base_prompt(
pri_prompt_terminator=pri_prompt_terminator,
alt_prompt_terminator=alt_prompt_terminator,
delay_factor=delay_factor,
)
def strip_ansi_escape_codes(self, string_buffer):
"""Remove Null code"""
output = re.sub(r"\x00", "", string_buffer)
return super().strip_ansi_escape_codes(output)
def session_preparation(self):
"""Prepare the session after the connection has been established."""
self.ansi_escape_codes = True
self.zsh_mode()
self.find_prompt(delay_factor=1)
self.set_base_prompt()
# Clear the read buffer
time.sleep(0.3 * self.global_delay_factor)
self.clear_buffer()
def zsh_mode(self, delay_factor=1, prompt_terminator="$"):
"""Run zsh command to unify the environment"""
delay_factor = self.select_delay_factor(delay_factor)
self.clear_buffer()
command = self.RETURN + "zsh" + self.RETURN
self.write_channel(command)
time.sleep(1 * delay_factor)
self.set_prompt()
self.clear_buffer()
def set_prompt(self, prompt_terminator="$"):
prompt = f"PROMPT='%m{prompt_terminator}'"
command = self.RETURN + prompt + self.RETURN
self.write_channel(command)
def disable_paging(self, *args, **kwargs):
"""Isilon doesn't have paging by default."""
pass
def check_enable_mode(self, *args, **kwargs):
"""No enable mode on Isilon."""
pass
def enable(self, *args, **kwargs):
"""No enable mode on Isilon."""
pass
def exit_enable_mode(self, *args, **kwargs):
"""No enable mode on Isilon."""
pass
def check_config_mode(self, check_string="#"):
return super().check_config_mode(check_string=check_string)
def config_mode(self, config_command="sudo su"):
"""Attempt to become root."""
delay_factor = self.select_delay_factor(delay_factor=1)
output = ""
if not self.check_config_mode():
output += self.send_command_timing(
config_command, strip_prompt=False, strip_command=False
)
if "Password:" in output:
output = self.write_channel(self.normalize_cmd(self.secret))
self.set_prompt(prompt_terminator="#")
time.sleep(1 * delay_factor)
self.set_base_prompt()
if not self.check_config_mode():
raise ValueError("Failed to configuration mode")
return output
def exit_config_mode(self, exit_config="exit"):
"""Exit enable mode."""
return super().exit_config_mode(exit_config=exit_config)
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists