def get_config(self, list_of_commands, list_of_devices): device_output = {} for device in list_of_devices: outputs = [] for command in list_of_commands: if not show_cmd_ssh(device, self.username, self.password, command): return False for data in show_cmd_ssh(device, self.username, self.password, command): outputs.append(data.strip('\r\n')) device_output[device] = outputs return device_output
def cisco_interfaces_status(self): if self.device_type == "Cisco IOS": run_config = cisco.show_cmd_ssh(self.hostname, self.username, self.password, "show ip int brief") elif self.device_type == "Junos": run_config = cisco.show_cmd_ssh(self.hostname, self.username, self.password, "show interface terse") self.ptedit_cmd_output.clear() if run_config: for config in run_config: self.ptedit_cmd_output.appendPlainText( config.replace("\r", "").strip('\n'))
def cisco_show_run_section(self): section = self.edit_custom_command.text() if self.combo_device_type.currentText() == "Cisco IOS": if section: command = "Show run | section " + section else: command = "show run" elif self.combo_device_type.currentText() == "Junos": if self.display_set == True: command = "show configuration " + section + " | display set" self.display_set = False else: command = "show configuration " + section run_config = cisco.show_cmd_ssh(self.hostname, self.username, self.password, command) self.ptedit_cmd_output.clear() if run_config: for config in run_config: self.ptedit_cmd_output.appendPlainText( config.replace("\r", "").strip('\n')) else: self.ptedit_cmd_output.appendPlainText( "No configurations found for this section")
def cisco_show_run(self): if self.device_type == "Cisco IOS": command = "show run" elif self.device_type == "Junos": if self.display_set == True: command = "show configuration | display set" self.display_set = False else: command = "show configuration" run_config = cisco.show_cmd_ssh(self.hostname, self.username, self.password, command) self.ptedit_cmd_output.clear() for config in run_config: self.ptedit_cmd_output.appendPlainText( config.replace("\r", "").strip('\n'))
def cisco_show_routing_table(self): if self.device_type == "Cisco IOS": command = "show ip route " elif self.device_type == "Junos": command = "show route " if self.edit_custom_command.text(): command = command + self.edit_custom_command.text() run_config = cisco.show_cmd_ssh(self.hostname, self.username, self.password, command) self.ptedit_cmd_output.clear() if run_config: for config in run_config: self.ptedit_cmd_output.appendPlainText( config.replace("\r", "").strip('\n'))
def cisco_custom_command(self): if self.edit_custom_command.text(): command = self.edit_custom_command.text() else: self.edit_custom_command.setPlaceholderText( "Please enter a command") return run_config = cisco.show_cmd_ssh(self.hostname, self.username, self.password, command) self.ptedit_cmd_output.clear() if run_config: for config in run_config: self.ptedit_cmd_output.appendPlainText( config.replace("\r", "").strip('\n')) else: self.ptedit_cmd_output.appendPlainText("Invalid command")
def cisco_show_cdp_neighbor(self): if self.device_type == "Cisco IOS": command = "show cdp neighbor " elif self.device_type == "Junos": command = "show lldp neighbor " if self.edit_custom_command.text(): command = command + self.edit_custom_command.text() run_config = cisco.show_cmd_ssh(self.hostname, self.username, self.password, command) self.ptedit_cmd_output.clear() if run_config: for config in run_config: self.ptedit_cmd_output.appendPlainText( config.replace("\r", "").strip('\n')) else: self.ptedit_cmd_output.appendPlainText("NO neighbors found")
def cisco_show_arp(self): if self.device_type == "Cisco IOS": command = "show ip arp " if self.edit_custom_command.text(): command = command + self.edit_custom_command.text() elif self.device_type == "Junos": command = "show arp " if self.edit_custom_command.text(): command = command + "hostname " + self.edit_custom_command.text( ) run_config = cisco.show_cmd_ssh(self.hostname, self.username, self.password, command) self.ptedit_cmd_output.clear() if run_config: for config in run_config: self.ptedit_cmd_output.appendPlainText( config.replace("\r", "").strip('\n')) else: self.ptedit_cmd_output.appendPlainText( "No arp entry found for this host.")
def pull_device_info(self): #print(self.btn_connect.text()) # if self.btn_connect.text() == "Disconnect": # self.edit_username.setEnabled(True) # self.edit_password.setEnabled(True) # self.label.setText("") # self.btn_connect.setText("Connect") self.hostname = self.edit_ip_add.text() self.protocol = self.combo_protocol.currentText() self.username = self.edit_username.text() self.password = self.edit_password.text() self.device_type = self.combo_device_type.currentText() device_type = self.combo_device_type.currentText() if cisco.connection_test_ssh(self.hostname, self.username, self.password) == True: # disable username/password fields self.edit_username.setEnabled(False) self.edit_password.setEnabled(False) # connected message instead of error self.label.setText("Connected") self.btn_connect.setEnabled(False) #self.btn_connect.setText("Disconnect") self.combo_device_type.setEnabled(False) if device_type == "Cisco IOS": device_hostname = cisco.show_cmd_ssh(self.hostname, self.username, self.password, "show run | in hostname") device_hostname = device_hostname[0].split(' ')[1] self.lbl_hostname.setText(device_hostname) ios_version = cisco.show_cmd_ssh(self.hostname, self.username, self.password, "show version | in Version") ios_version = ios_version[0] self.lbl_ios_version.setText(ios_version) cpu_status = cisco.show_cmd_ssh(self.hostname, self.username, self.password, "show proc cpu | in CPU") cpu_status = cpu_status[0].strip('\n') self.lbl_cpu_utilization.setText(cpu_status) uptime = cisco.show_cmd_ssh(self.hostname, self.username, self.password, "show version | in time") uptime = uptime[0].strip('\n') self.lbl_uptime.setText(uptime) elif device_type == "Junos": device_hostname = cisco.show_cmd_ssh( self.hostname, self.username, self.password, "show version | match Hostname") device_hostname = device_hostname[0].split(' ')[1] self.lbl_hostname.setText(device_hostname) ios_version = "before" ios_version = cisco.show_cmd_ssh( self.hostname, self.username, self.password, 'show version | match "Base OS Boot"') ios_version = ios_version[0] #print(ios_version) self.lbl_ios_version.setText(ios_version) uptime = cisco.show_cmd_ssh(self.hostname, self.username, self.password, "show system uptime") for output in uptime: if "up" in output: self.lbl_uptime.setText(output) else: self.label.setText( "Couldn't connect, Check username/password, connectivity to host" )
#!/usr/bin/env python3 # private classes from cisco import show_cmd_ssh # show_cmd_ssh(hostname, username, password, command): device_ip = input("device name? ") user_name = input("username: "******"device password: "******"Filename for commands to run: ") list_of_commands = [] with open(filename) as read_file: for line in read_file: list_of_commands.append(line.strip('\n')) print(list_of_commands) with open(f"{device_ip}", "w") as file: for command in list_of_commands: result = show_cmd_ssh(device_ip, user_name, device_password, command) file.write('\n' + command + "\n") for data in result: file.write(data.strip('\r\n')) file.write("\n")