from netmiko import ConnectHandler, NetmikoAuthenticationException, ReadTimeout, ConnectionException, NetMikoTimeoutException from getpass import getpass from pprint import pprint import sys import time R1 = { 'device_type':"cisco_ios_telnet", 'ip':sys.argv[2], 'username':"", 'password':"", 'port': sys.argv[3], # 'password': '', 'secret':'', } check = "" print(sys.argv[8]) # def config_ip_vlan(connect, vlan, name, rangePort, ip, netMask): with ConnectHandler(**R1) as connect: connect.enable() if "switch" in sys.argv[8]: connect.config_mode() print("------Configure ip address vlan 1-------") output = connect.send_config_set([ "inter vlan 1", "ip address "+sys.argv[4]+" "+sys.argv[5], "no shut", "exit", "ip default-gateway "+sys.argv[6], "exit", ]) check = connect.send_command_timing( "ping 192.168.5.7", strip_prompt=False, strip_command=False, delay_factor=400, last_read=5.0, read_timeout=500) output+=check print(output) if "router" in sys.argv[8]: check += connect.send_command_timing( "show ip int bri", strip_prompt=False, strip_command=False, delay_factor=400) listInterface = check.split("\n") interface = [] for x in listInterface: if "Ethernet" in x.split(" ")[0]: interface.append(x.split(" ")[0]) # interface = listInterface[2].split(" ")[0] print(interface[0]) connect.config_mode() print("------Configure ip address interface "+interface[0]+ "-------") output = connect.send_config_set([ "inter "+interface[0], "ip address "+sys.argv[4]+" "+sys.argv[5], "no shut", "exit", "ip route 0.0.0.0 0.0.0.0 "+sys.argv[6], "exit", ]) check = connect.send_command_timing( "ping 192.168.5.7", strip_prompt=False, strip_command=False, delay_factor=400, last_read=5.0, read_timeout=500) output+=check check = connect.send_command_timing( "ping 192.168.5.7", strip_prompt=False, strip_command=False, delay_factor=400, last_read=5.0, read_timeout=500) output+=check print(output) if "36_38" in sys.argv[8]: if "0/5" in check: print("Error: Can't connect to TFTP server") else: connect.enable() check = connect.send_command_timing( "format flash:", strip_prompt=False, strip_command=False, delay_factor=400, last_read=2.0, read_timeout=500) output += check print(check) if "[confirm]" in check: check = connect.send_command_timing( "\n", strip_prompt=False, strip_command=False) output += check print(check) if "[confirm]" in check: output += connect.send_command_timing( "\n", strip_prompt=False, strip_command=False,last_read=5.0) print(output) check = connect.send_command_timing( "copy tftp://192.168.5.7/i/"+sys.argv[7]+" flash:", strip_prompt=False, strip_command=False, delay_factor=400, last_read=2.0, read_timeout=50000) output += check # time.sleep(240) print(check) if "?" in check: output += connect.send_command_timing( "\n", strip_prompt=False, strip_command=False, delay_factor=400, last_read=15.0, read_timeout=5000000) check = connect.send_command_timing( "request platform software package expand file flash:"+sys.argv[7], strip_prompt=False, strip_command=False, delay_factor=400, last_read=60.0, read_timeout=5000000) output+=check if "Invalid input" in check: output +=connect.send_command_timing( "software expand file flash:"+sys.argv[7], strip_prompt=False, strip_command=False, delay_factor=400, last_read=60.0, read_timeout=5000000) # connect.enable() # connect.config_mode() # output = connect.send_config_set(["config t","boot system switch all flash:packages.conf", "do wr"], read_timeout=5000000) # output += connect.send_command("boot system switch all flash:packages.conf", expect_string='(config)#') output += connect.send_config_set("boot system switch all flash:packages.conf") check = connect.send_command_timing( "wr", strip_prompt=False, strip_command=False,last_read=5.0, read_timeout=5000000) output += check if "[confirm]" in check: output += connect.send_command_timing( "\n", strip_prompt=False, strip_command=False,last_read=5.0) # output +=connect.save_config() # connect.enable() # output += connect.send_command_timing( "wr", strip_prompt=False, strip_command=False,last_read=8.0) connect.enable() check = connect.send_command_timing( "reload", strip_prompt=False, strip_command=False, delay_factor=400) output += check if "[yes/no]" in check: check1 = connect.send_command_timing( "no", strip_prompt=False, strip_command=False, delay_factor=400) output+=check1 if "[yes/no]" in check1: check2 = connect.send_command_timing( "no", strip_prompt=False, strip_command=False, delay_factor=400) output+=check2 if "[yes/no]" in check2: output = connect.send_command_timing( "no", strip_prompt=False, strip_command=False, delay_factor=400) output += connect.send_command_timing( "\n", strip_prompt=False, strip_command=False, delay_factor=400) print(output) else: # connect.config_mode() # output += connect.send_command_timing( "boot system switch all flash:packages.conf", strip_prompt=False, strip_command=False,last_read=5.0) # connect.enable() #connect.config_mode() # output += connect.send_command("boot system switch all flash:packages.conf", expect_string='(config)#') # output +=connect.save_config() output += connect.send_config_set("boot system switch all flash:packages.conf") # output += connect.send_command_timing( "boot system switch all flash:packages.conf", strip_prompt=False, strip_command=False,last_read=5.0, read_timeout=5000000) check = connect.send_command_timing( "wr", strip_prompt=False, strip_command=False,last_read=5.0, read_timeout=5000000) output += check if "[confirm]" in check: output += connect.send_command_timing( "\n", strip_prompt=False, strip_command=False,last_read=5.0) # output +=connect.save_config() # output = connect.send_config_set(["config t","boot system switch all flash:packages.conf", "do wr"], read_timeout=5000000) #connect.enable() check = connect.send_command_timing( "reload", strip_prompt=False, strip_command=False, delay_factor=400) output += check if "[yes/no]" in check: check1 = connect.send_command_timing( "no", strip_prompt=False, strip_command=False, delay_factor=400) output+=check1 if "[yes/no]" in check1: check2 = connect.send_command_timing( "no", strip_prompt=False, strip_command=False, delay_factor=400) output+=check2 if "[yes/no]" in check2: output += connect.send_command_timing( "no", strip_prompt=False, strip_command=False, delay_factor=400) output += connect.send_command_timing( "\n", strip_prompt=False, strip_command=False, delay_factor=400) print(output) else: if "0/5" in check: print("Error: Can't connect to TFTP server") else: connect.enable() check = connect.send_command_timing( "format flash:", strip_prompt=False, strip_command=False, delay_factor=400, last_read=2.0, read_timeout=50000) output += check print(check) if "[confirm]" in check: check = connect.send_command_timing( "\n", strip_prompt=False, strip_command=False) output += check print(check) if "[confirm]" in check: output += connect.send_command_timing( "\n", strip_prompt=False, strip_command=False,last_read=5.0) print(output) # time.sleep(180) check = connect.send_command_timing( "copy tftp://192.168.5.7/i/"+sys.argv[7]+" flash:", strip_prompt=False, strip_command=False, delay_factor=400, last_read=3.0, read_timeout=50000) output += check # time.sleep(240) print(check) if "?" in check: output += connect.send_command_timing( "\n", strip_prompt=False, strip_command=False, last_read=6.0, delay_factor=400, read_timeout=50000) output += "\nENTER\n" output += connect.send_command_timing("boot system flash:"+sys.argv[7], strip_prompt=False, strip_command=False, delay_factor=400) output += connect.send_command_timing( "wr", strip_prompt=False, strip_command=False, delay_factor=400, last_read=10.0, read_timeout=500) check = connect.send_command_timing( "reload", strip_prompt=False, strip_command=False, delay_factor=400) output += check if "[yes/no]" in check: check1 = connect.send_command_timing( "no", strip_prompt=False, strip_command=False, delay_factor=400) output+=check1 if "[yes/no]" in check1: check2 = connect.send_command_timing( "no", strip_prompt=False, strip_command=False, delay_factor=400) output+=check2 if "[yes/no]" in check2: output = connect.send_command_timing( "no", strip_prompt=False, strip_command=False, delay_factor=400) output += connect.send_command_timing( "\n", strip_prompt=False, strip_command=False, delay_factor=400) print(output) # print(output) # return output