def switch_status(): """ Retrieve FCR fabric and return info. Variable #'s: 0) Switch name 1) IP address 1) Chassis or Pizza Box 2) VF or not 3) FCR Enabled 4) Base Configured return dictionary with {switch_name, ipaddr, chassis, vf_enabled, base, fcr_enabled}} """ fcrinfo = anturlar.FcrInfo() si = anturlar.SwitchInfo() initial_checks = si.switch_status() print('\n\n' + '=' * 20) print("Switch Name : %s" % initial_checks[0]) print("IP address : %s" % initial_checks[1]) print("Chassis : %s" % initial_checks[2]) print("VF enabled : %s" % initial_checks[3]) print("FCR enabled : %s" % initial_checks[4]) print("Base configured : %s" % initial_checks[5]) print('=' * 20 + '\n\n') switch_info = { 'switch_name': initial_checks[0], 'ipaddr': initial_checks[1], 'chassis': initial_checks[2], 'vf_enabled': initial_checks[3], 'fcr_enabled': initial_checks[4], 'base': initial_checks[5] } return (switch_info)
def ex_slots_find(): """ Find EX/VEX ports and return slot number/port number. """ fcri = anturlar.FcrInfo() fcipi = anturlar.FcipInfo() vex_port_list = fcri.vex_ports() ex_port_list = fcri.ex_ports() disabled_port_list = fcri.disabled_ports() ge_port_list = fcipi.all_ge_ports() print("PORTLISTPORTLIST") print("VEX_PORTS: %s" % vex_port_list) print("EX_PORTS: %s" % ex_port_list) print("DISABLED_PORTS: %s" % disabled_port_list) sys.exit(0) ################################# if self.am_i_director: for i in portlist: slot = i[0] port = i[1] pattern = re.compile(r'(?:\EX\sPort\s+)(?P<state> ON)') cmd = fos_cmd("portcfgshow %a/%a" % (slot, port)) ex = pattern.search(cmd) if ex: fos_cmd("portcfgexport %s/%s %s" % (slot, port, "-a2")) else: for i in portlist: pattern = re.compile(r'(?:\EX\sPort\s+)(?P<state> ON)') cmd = fos_cmd("portcfgshow %a" % i) ex = pattern.search(cmd) if ex: fos_cmd("portcfgexport " + i + " -a2") cmd_cap = fos_cmd("switchenable") return (cmd_cap)
def test_anturlar_functions(): #a = ex_port_list() fcri = anturlar.FcrInfo() #fabi = anturlar.FabricInfo() #zones = anturlar.Zone() #si = anturlar.SwitchInfo() #su = cofra.SwitchUpdate() #a = fcri.__getportlist__("EX-Port") #b = fcri.all_ex_ports_with_edge_fid() print("1111111111111111111111111111111") #b = zones.def_zone() b = fcri.fcr_fab_wide_ip() print("2222222222222222222222222222222") print(b) sys.exit()
def fab_wide_proxy_device_numbers(): """ Retrieve number of proxy device on all backbone switches in fabric. Drop those numbers into a file for later retreival (e.g. say after reboot testing). Also return a dictionary (e.g {switch_ip: # of proxy devices}) """ fcrinfo = anturlar.FcrInfo() backbone_ip = fcrinfo.fcr_backbone_ip() print(backbone_ip) sys.exit() bb_fab_num = (len(backbone_ip)) proxy_dev_count = [] for ip in backbone_ip: anturlar.connect_tel_noparse(ip, 'root', 'password') base = fcrinfo.base_check() # get the base FID number if base is not False: anturlar.fos_cmd("setcontext " + base) get_proxy = fcrinfo.fcr_proxy_dev() proxy_dev_count.extend(get_proxy) else: get_proxy = fcrinfo.fcr_proxy_dev() proxy_dev_count.extend(get_proxy) switch_list_with_proxy_dev = dict(zip(backbone_ip, proxy_dev_count)) proxy_dev_count = (str(proxy_dev_count)) f = ('logs/ProxyDev_Count.txt') ff = liabhar.FileStuff(f, 'w+b') ###open new file or clobber old ff.write(proxy_dev_count) ff.close() print('\n\n' + '=' * 20) print('Backbone Fabric consists of %s switches.' % (len(bb_fab_num))) print('IP addresses: Number of proxy devices found') print(switch_list_with_proxy_dev) print('=' * 20 + '\n\n') return (switch_list_with_proxy_dev)
def slotpower_off_on_check_devices(): si = anturlar.SwitchInfo() fcrc = anturlar.FcrInfo() fi = anturlar.FcipInfo() ip_address = fcr_tools.all_switches_in_bb_ip() switch_info = fcr_tools.bb_fabric_switch_status() #blades = si.blades() #ex_ports = si.ex_ports() b = (len(switch_info)) print("The number of switches in backbone is:", b) print('\n\n\n') print('IP addresses of all switches in Backbone:') print(ip_address) print('\n\n\n') for i in ip_address: print(i) anturlar.connect_tel_noparse(i, 'root', 'password') a = si.ex_ports() print(a) sys.exit(0) ex_port = a.append(a) print('EXPORTSEXPORTS') print(ex_port)
def main(): global tn ############################################################################### #### #### #### ############################################################################### pa = parse_args(sys.argv) #print(pa) #print(pa.chassis_name) #print(pa.ipaddr) #print(pa.quiet) #print(pa.verbose) #print(pa.firmware) #print("@"*40) #sys.exit() ########################################################################## ########################################################################## ### ### hold the ip address from the command line ### if pa.ipaddr: pa.chassis_name = console_info_from_ip(pa.ipaddr, pa.chassis_name) cons_info = console_info(pa.chassis_name) console_ip = cons_info[0] console_port = cons_info[1] power_pole_info = pwr_pole_info(pa.chassis_name) usr_pass = get_user_and_pass(pa.chassis_name) user_name = usr_pass[0] usr_psswd = usr_pass[1] tn = anturlar.connect_tel_noparse(pa.ipaddr, user_name, usr_psswd) fi = anturlar.FabricInfo() si = anturlar.SwitchInfo() su = cofra.SwitchUpdate() fcr = anturlar.FcrInfo() if pa.fabwide: ipaddr_switch = fi.ipv4_list() elif pa.csvall: ipaddr_switch = get_ip_from_file(pa.chassis_name) elif pa.fcrwide: anturlar.fos_cmd("setcontext %s" % fcr.base_check()) ipaddr_switch = fcr.fcr_fab_wide_ip() else: ipaddr_switch = [pa.ipaddr] anturlar.close_tel() #### pass ip(s)to login procedure #### and write the file ################################################################################################## # Manual list of switches to run suppportftp against. Entire csv list is printed out above but the # list below overwries it. # This keeps bombing on AMP switch IP (not included below). ################################################################################################## ip_no_amp = [ '10.38.36.240', '10.38.36.10', '10.38.36.33', '10.38.36.158', '10.38.36.249', '10.38.36.102', '10.38.36.246', '10.38.36.250', '10.38.36.98', '10.38.36.125', '10.38.36.25', '10.38.36.24', '10.38.36.111', '10.38.36.95', '10.38.36.85', '10.38.36.112' ] for i in ip_no_amp: try: tn = anturlar.connect_tel_noparse(i, user_name, usr_psswd) except OSError: print("Switch %s not available" % i) nos = si.nos_check() if not nos: anturlar.fos_cmd( "supportftp -s -h 10.39.2.171 -u ftp1 -p ftp2 -d ssaves -l ftp" ) anturlar.fos_cmd("supportftp -e") anturlar.fos_cmd("supportftp -t 8") anturlar.fos_cmd( "tsclockserver 10.38.2.80; tstimezone America/Denver") anturlar.fos_cmd("echo Y | reboot") #anturlar.fos_cmd("tsclockserver LOCL") else: print("\n" + "@" * 40) print('\nTHIS IS A NOS SWITCH> SKIPPING') print("\n" + "@" * 40) pass # tn = su.reboot_reconnect() anturlar.close_tel() sys.exit()
def portcfgfillword(): fcr = anturlar.FcrInfo() portcfg = fcr.portcfgfillword(3)
def capture_switch_info(extend_name="", fid=128): """ """ si = anturlar.SwitchInfo() mi = anturlar.Maps() fi = anturlar.FlowV() fcr = anturlar.FcrInfo() vdx = si.nos_check() switch_ip = si.ipaddress() switch_cp_ips = si.cp_ipaddrs_get() license_list = si.getLicense() ls_list = si.ls() first_ls = si.ls_now() switch_id = si.switch_id() fid_now = si.currentFID() try: theswitch_name = si.switch_name() except IndexError: theswitch_name = "unknown" pass chassis_name = si.chassisname() director_pizza = si.director() vf_enabled = si.vf_enabled() sw_type = si.switch_type() base_sw = si.base_check() sim_ports = si.sim_ports() ex_ports = fcr.all_ex_ports() fcr_state = si.fcr_enabled() ports_and_ls = si.all_ports_fc_only() psw_reset_value = "YES" xisl_st_per_ls = si.allow_xisl() maps_policy_sum = mi.get_policies() maps_non_dflt_policy = mi.get_nondflt_policies() flow_per_ls = fi.flow_names() blades = si.blades() deflt_switch = si.default_switch() # sfp_info = si.sfp_info() maps_email_cfg = mi.get_email_cfg() maps_actions = mi.get_actions() logical_groups = mi.logicalgroup_count() relay_server_info = mi.get_relay_server_info() credit_recov_info = mi.credit_recovery() dns_info = mi.dns_config_info() ################################################################################################################### ################################################################################################################### #### #### print the variables for review #### ################################################################################################################### ################################################################################################################### print("\n\n\n") print("SWITCH IP : %s " % switch_ip) print("SWITCH NAME : %s " % theswitch_name) # print("SWITCH DOMAIN : %s " % domain_list) print("LS LIST : %s " % ls_list) print("DEFAULT SWITCH : %s " % deflt_switch) print("BASE SWITCH : %s " % base_sw) print("EX_PORTS : %s " % ex_ports) ######################NEW print("VF SETTING : %s " % vf_enabled) print("SWITCH TYPE : %s " % sw_type) print("TIMEOUT VALUE : 0 ") print("RESET PASSWORD : %s " % psw_reset_value) print("FCR ENABLED : %s " % fcr_state) print("BLADES : %s " % blades) print("LICENSE LIST : %s " % license_list) ####################################################################################################################### ####################################################################################################################### ####################################################################################################################### #### #### Write to the file #### ####################################################################################################################### ####################################################################################################################### ####################################################################################################################### # f = "%s%s%s" % ("logs/Switch_Info_cudc", switch_ip, "_%s.txt" % extend_name) f = "%s%s%s" % ("/home/runfromhere/logs/Switch_Info_cudc", switch_ip, "_%s.txt" % extend_name) header = "%s%s%s%s" % ("\nSwitch_info_for_playback CAPTURE FILE \n", \ "", "", "==============================\n") ff = liabhar.FileStuff(f, 'w+b') #### open the log file for writing ff.write(header) ################################################################################################################### ff.write("SWITCH IP : %s \n" % switch_ip) ff.write("LS LIST : %s \n" % ls_list) ff.write("DEFAULT SWITCH : %s \n" % deflt_switch) ff.write("BASE SWITCH : %s \n" % base_sw) ff.write("EX_PORTS : %s \n" % ex_ports) ff.write("SWITCH NAME : %s \n" % theswitch_name) ff.write("CHASSIS NAME : %s \n" % chassis_name) ff.write("DIRECTOR STATUS : %s \n" % director_pizza) ff.write("VF SETTING : %s \n" % vf_enabled) ff.write("SWITCH TYPE : %s \n" % sw_type) ff.write("TIMEOUT VALUE : 0 \n") ff.write("RESET PASSWORD : %s \n" % psw_reset_value) ff.write("FCR ENABLED : %s \n" % fcr_state) ff.write("Ports : %s \n" % ports_and_ls) ff.write("SIM PORTS : %s \n" % sim_ports) ff.write("Blades : %s \n" % blades) ff.write("LICENSE LIST : %s \n" % license_list) #ff.write("SFP INFO : %s \n" % sfpinfo) ff.write("=" * 80) ff.write("\n") ff.write("MAPS POLICIES : %s \n" % maps_policy_sum) ff.write("MAPS NON DFLT POLICIES : %s \n" % maps_non_dflt_policy) ff.write("EMAIL CFG : %s \n" % maps_email_cfg) ff.write("MAPS ACTIONS : %s \n" % maps_actions) ff.write("LOGICAL GROUPS : %s \n" % logical_groups) ff.write("RELAY SERVER HOST IP : %s \n" % relay_server_info) ff.write("CREDIT RECOVERY INFO : %s \n" % credit_recov_info) ff.write("DNS CONFIG INFO : %s \n" % dns_info) ff.write("=" * 80) ff.write("\n") ff.write("FLOW CONFIGURATION : %s \n" % flow_per_ls) ff.write("\n" * 2) ff.close() # cons_out = anturlar.fos_cmd("setcontext %s " % fid_now) return (True)
def main(): global tn ############################################################################### #### #### #### ############################################################################### pa = parse_args(sys.argv) #print(pa) #print(pa.chassis_name) #print(pa.ipaddr) #print(pa.quiet) #print(pa.verbose) #print(pa.firmware) #print("@"*40) #sys.exit() ########################################################################## ########################################################################## ### ### hold the ip address from the command line ### if pa.ipaddr: pa.chassis_name = console_info_from_ip(pa.ipaddr, pa.chassis_name) cons_info = console_info(pa.chassis_name) console_ip = cons_info[0] console_port = cons_info[1] power_pole_info = pwr_pole_info(pa.chassis_name) usr_pass = get_user_and_pass(pa.chassis_name) user_name = usr_pass[0] usr_psswd = usr_pass[1] tn = anturlar.connect_tel_noparse(pa.ipaddr, user_name, usr_psswd) fi = anturlar.FabricInfo() si = anturlar.SwitchInfo() su = cofra.SwitchUpdate() fcr = anturlar.FcrInfo() if pa.fabwide: ipaddr_switch = fi.ipv4_list() elif pa.csvall: ipaddr_switch = get_ip_from_file(pa.chassis_name) elif pa.fcrwide: anturlar.fos_cmd("setcontext %s" % fcr.base_check()) ipaddr_switch = fcr.fcr_fab_wide_ip() else: ipaddr_switch = [pa.ipaddr] anturlar.close_tel() #### pass ip(s)to login procedure #### and write the file for i in ipaddr_switch: try: ###New tn = anturlar.connect_tel_noparse(i, user_name, usr_psswd) except OSError: ##New print("Switch %s not available" % i) ##New nos = si.nos_check() if not nos: anturlar.fos_cmd( "supportftp -s -h 10.38.35.131 -u ftp1 -p ftp2 -d ssaves -l ftp" ) anturlar.fos_cmd("supportftp -e") anturlar.fos_cmd("supportftp -t 8") anturlar.fos_cmd( "tsclockserver 10.38.2.80; tstimezone America/Denver") #anturlar.fos_cmd("echo Y | reboot") #anturlar.fos_cmd("tsclockserver LOCL") else: print("\n" + "@" * 40) print('\nTHIS IS A NOS SWITCH> SKIPPING') print("\n" + "@" * 40) pass tn = su.reboot_reconnect() anturlar.close_tel() sys.exit()
def main(): global tn ############################################################################### #### #### #### ############################################################################### pa = parse_args(sys.argv) #print(pa) #print(pa.chassis_name) #print(pa.ipaddr) #print(pa.quiet) #print(pa.verbose) #print(pa.firmware) #print("@"*40) #sys.exit() ########################################################################## ########################################################################## ### ### hold the ip address from the command line ### #try: # ipaddr_test = ipaddress.ip_address(pa.ipaddr) # #print (ipaddr_test) #except ValueError: # print("\nPLEASE CHECK YOUR IP ADDRESS AND TRY AGAIN") # sys.exit() if pa.ipaddr: pa.chassis_name = console_info_from_ip(pa.ipaddr, pa.chassis_name) cons_info = console_info(pa.chassis_name) console_ip = cons_info[0] console_port = cons_info[1] power_pole_info = pwr_pole_info(pa.chassis_name) usr_pass = get_user_and_pass(pa.chassis_name) user_name = usr_pass[0] usr_psswd = usr_pass[1] tn = anturlar.connect_tel_noparse(pa.ipaddr, user_name, usr_psswd) fi = anturlar.FabricInfo() si = anturlar.SwitchInfo() fcr = anturlar.FcrInfo() if pa.fabwide: ipaddr_switch = fi.ipv4_list() #print(ipaddr_switch) elif pa.csvall: ipaddr_switch = get_ip_from_file(pa.chassis_name) elif pa.fcrwide: anturlar.fos_cmd("setcontext %s" % fcr.base_check()) ipaddr_switch = fcr.fcr_fab_wide_ip() else: ipaddr_switch = [pa.ipaddr] anturlar.close_tel() #### pass ip(s)to login procedure #### and write the file ff = "" f = ("%s%s%s" % ("logs/Switch_Info_", pa.ipaddr, "_restore.txt")) #f = ("logs/Switch_Info_10.38.134.66_VF_Wedge.txt") #f = ("logs/Switch_Info_10.38.134.66_for_playback.txt") print("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$") print(f) try: with open(f, 'r') as file: ff = file.read() except IOError: print("\n\nThere was a problem opening the file:", f) sys.exit() print(ff) #sys.exit() #for i in ipaddr_switch: # tn = anturlar.connect_tel_noparse(i,user_name,usr_psswd) # nos = si.nos_check() # if not nos: # sw_dict = cofra.get_info_from_the_switch() # switch_ip = sw_dict["switch_ip"] # sw_name = sw_dict["switch_name"] # sw_chass_name = sw_dict["chassis_name"] # sw_director_or_pizza = sw_dict["director"] # sw_domains = sw_dict["domain_list"] # sw_ls_list = sw_dict["ls_list"] # sw_base_fid = sw_dict["base_sw"] # sw_xisl = sw_dict["xisl_state"] # sw_type = sw_dict["switch_type"] # sw_license = sw_dict["license_list"] # sw_vf_setting = sw_dict["vf_setting"] # sw_fcr_enabled = sw_dict["fcr_enabled"] # sw_port_list = sw_dict["port_list"] # # print("\n"*20) # print("SWITCH IP : %s " % switch_ip) # print("SWITCH NAME : %s " % sw_name) # print("CHASSIS NAME : %s " % sw_chass_name) # print("DIRECTOR : %s " % sw_director_or_pizza) # print("SWITCH DOMAINS : %s " % sw_domains) # print("LOGICAL SWITCH LIST : %s " % sw_ls_list) # print("BASE FID : %s " % sw_base_fid) # print("XISL STATE : %s " % sw_xisl) # print("SWITCH TYPE : %s " % sw_type) # print("LICENSE LIST : %s " % sw_license) # print("VF SETTING : %s " % sw_vf_setting) # print("FCR SETTING : %s " % sw_fcr_enabled) # print("PORT LIST : %s " % sw_port_list) # print("@"*40) # print("CONSOLE INFO : %s " % cons_info) # print("@"*40) # print("POWER POLE INFO : %s " % power_pole_info) # print("@"*40) # print("\nSwitch_Info has been written this file in logs/Switch_Info_for_playback_%s.txt\n" % switch_ip) # print("@"*40) # else: # print("\n"+"@"*40) # print('\nTHIS IS A NOS SWITCH> SKIPPING') # print("\n"+"@"*40) # pass #anturlar.close_tel() #sys.exit() ############################################################################### #### #### close telnet connection and #### connect to the console #### ############################################################################### tn = anturlar.connect_tel_noparse(pa.ipaddr, user_name, usr_psswd) cc = cofra.SwitchUpdate() cons_out = cc.playback_licenses() cons_out = cc.playback_ls() cons_out = cc.playback_switch_names() cons_out = cc.playback_switch_domains() cons_out = cc.playback_add_ports() cons_out = cc.playback_fosconfig_fcr() tn = cc.reboot_reconnect() cons_out = anturlar.fos_cmd("switchshow") print(cons_out) anturlar.close_tel()
def main(): global tn ############################################################################### #### #### #### ############################################################################### pa = parse_args(sys.argv) #print(pa) #print(pa.chassis_name) #print(pa.ipaddr) #print(pa.quiet) #print(pa.verbose) #print(pa.firmware) #print("@"*40) #sys.exit() ########################################################################## ########################################################################## ### ### hold the ip address from the command line ### if pa.ipaddr: pa.chassis_name = console_info_from_ip(pa.ipaddr, pa.chassis_name) cons_info = console_info(pa.chassis_name) console_ip = cons_info[0] console_port = cons_info[1] power_pole_info = pwr_pole_info(pa.chassis_name) usr_pass = get_user_and_pass(pa.chassis_name) user_name = usr_pass[0] usr_psswd = usr_pass[1] tn = anturlar.connect_tel_noparse(pa.ipaddr, user_name, usr_psswd) fi = anturlar.FabricInfo() si = anturlar.SwitchInfo() fcr = anturlar.FcrInfo() if pa.fabwide: ipaddr_switch = fi.ipv4_list() #print(ipaddr_switch) elif pa.csvall: ipaddr_switch = get_ip_from_file(pa.chassis_name) elif pa.fcrwide: anturlar.fos_cmd("setcontext %s" % fcr.base_check()) ipaddr_switch = fcr.fcr_fab_wide_ip() else: ipaddr_switch = [pa.ipaddr] anturlar.close_tel() #### pass ip(s)to login procedure #### and write the file for i in ipaddr_switch: tn = anturlar.connect_tel_noparse(i, user_name, usr_psswd) nos = si.nos_check() if not nos: fi = anturlar.FcrInfo() lsanzone = anturlar.fos_cmd("lsanzoneshow -s") fcrproxy = anturlar.fos_cmd("fcrproxydevshow") fcrresource = anturlar.fos_cmd("fcrresourceshow") print(lsanzone) print(fcrproxy) print(fcrresource) f1 = "%s%s%s" % ("logs/LsanZoneInfo_", pa.ipaddr, "_base.txt") a = os.path.isfile(f1) if not a: print("Not there. Capturing file now") header = "%s%s%s%s" % ("\nLsanZoneShow CAPTURE FILE \n",\ "","", "==============================\n") ff = liabhar.FileStuff( f1, 'w+b') #### open the log file for writing ff.write(header) ff.write(lsanzone) ff.write(fcrproxy) ff.write(fcrresource) sys.exit(0) else: f2 = "%s%s%s" % ("logs/LsanZoneInfo_", pa.ipaddr, "_after.txt") header = "%s%s%s%s" % ("\nLsanZoneShow CAPTURE FILE \n",\ "","", "==============================\n") ff = liabhar.FileStuff( f2, 'w+b') #### open the log file for writing ff.write(header) ff.write(lsanzone) ff.write(fcrproxy) ff.write(fcrresource) #sys.exit(0) #f0 = ("logs/LsanZoneInfo_",pa.ipaddr,"_base.txt") #f1 = ("logs/LsanZoneInfo_",pa.ipaddr,"_after.txt") diff = fcr_tools.file_diff(f1, f2) print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") print(diff) sys.exit() #sw_dict = cofra.get_info_from_the_switch() #switch_ip = sw_dict["switch_ip"] #sw_name = sw_dict["switch_name"] #sw_chass_name = sw_dict["chassis_name"] #sw_director_or_pizza = sw_dict["director"] #sw_domains = sw_dict["domain_list"] #sw_ls_list = sw_dict["ls_list"] #sw_base_fid = sw_dict["base_sw"] #sw_xisl = sw_dict["xisl_state"] #sw_type = sw_dict["switch_type"] #sw_license = sw_dict["license_list"] #sw_vf_setting = sw_dict["vf_setting"] #sw_fcr_enabled = sw_dict["fcr_enabled"] #sw_port_list = sw_dict["port_list"] # #print("\n"*20) #print("SWITCH IP : %s " % switch_ip) #print("SWITCH NAME : %s " % sw_name) #print("CHASSIS NAME : %s " % sw_chass_name) #print("DIRECTOR : %s " % sw_director_or_pizza) #print("SWITCH DOMAINS : %s " % sw_domains) #print("LOGICAL SWITCH LIST : %s " % sw_ls_list) #print("BASE FID : %s " % sw_base_fid) #print("XISL STATE : %s " % sw_xisl) #print("SWITCH TYPE : %s " % sw_type) #print("LICENSE LIST : %s " % sw_license) #print("VF SETTING : %s " % sw_vf_setting) #print("FCR SETTING : %s " % sw_fcr_enabled) #print("PORT LIST : %s " % sw_port_list) #print("@"*40) #print("CONSOLE INFO : %s " % cons_info) #print("@"*40) #print("POWER POLE INFO : %s " % power_pole_info) #print("@"*40) #print("\nSwitch_Info has been written this file in logs/Switch_Info_%s_restore.txt\n" % switch_ip) #print("@"*40) else: print("\n" + "@" * 40) print('\nTHIS IS A NOS SWITCH> SKIPPING') print("\n" + "@" * 40) pass anturlar.close_tel() sys.exit()
def main(): global tn ############################################################################### #### #### #### ############################################################################### pa = parse_args(sys.argv) print(pa) #print(pa.chassis_name) #print(pa.ipaddr) #print(pa.quiet) #print(pa.verbose) #print(pa.firmware) print("@" * 40) #sys.exit() ########################################################################## ########################################################################## ### ### hold the ip address from the command line ### if pa.ipaddr: pa.chassis_name = console_info_from_ip(pa.ipaddr, pa.chassis_name) cons_info = console_info(pa.chassis_name) console_ip = cons_info[0] console_port = cons_info[1] power_pole_info = pwr_pole_info(pa.chassis_name) usr_pass = get_user_and_pass(pa.chassis_name) user_name = usr_pass[0] usr_psswd = usr_pass[1] tn = anturlar.connect_tel_noparse(pa.ipaddr, user_name, usr_psswd) fi = anturlar.FabricInfo() si = anturlar.SwitchInfo() fcr = anturlar.FcrInfo() if pa.fabwide: ipaddr_switch = fi.ipv4_list() #print(ipaddr_switch) elif pa.csvall: ipaddr_switch = get_ip_from_file(pa.chassis_name) elif pa.fcrwide: anturlar.fos_cmd("setcontext %s" % fcr.base_check()) ipaddr_switch = fcr.fcr_fab_wide_ip() else: ipaddr_switch = [pa.ipaddr] anturlar.close_tel() #### pass ip(s)to login procedure #### and write the file for i in ipaddr_switch: tn = anturlar.connect_tel_noparse(i, user_name, usr_psswd) nos = si.nos_check() if not nos: def ex_deconfig(): """ Find all EX-Ports AND VEX-Ports on either director or pizzabox and deconfigure. This parses "portcfgshow" command for any EX-Port, online or not, and deconfigures. This includes VEX ports as well. """ si = anturlar.SwitchInfo() anturlar.fos_cmd("switchdisable") portlist = si.all_ports() if si.am_i_director: for i in portlist: slot = i[0] port = i[1] pattern = re.compile(r'(?:\EX\sPort\s+)(?P<state> ON)') cmd = anturlar.fos_cmd("portcfgshow %a/%a" % (slot, port)) ex = pattern.search(cmd) if ex: anturlar.fos_cmd("portcfgexport %s/%s %s" % (slot, port, "-a 2")) anturlar.fos_cmd("portcfgvexport %s/%s %s" % (slot, port, "-a 2")) else: for i in portlist: print(i) port = i[1] pattern = re.compile(r'(?:\EX\sPort\s+)(?P<state> ON)') cmd = anturlar.fos_cmd("portcfgshow %a" % port) ex = pattern.search(cmd) if ex: anturlar.fos_cmd("portcfgexport %s %s" % (port, "-a 2")) anturlar.fos_cmd("portcfgvexport %s %s" % (port, "-a 2")) cmd_cap = anturlar.fos_cmd("switchenable") print('\n\nAll EX_ports found are now deconfigured.') #return(cmd_cap) # sw_dict = cofra.get_info_from_the_switch() # switch_ip = sw_dict["switch_ip"] # sw_name = sw_dict["switch_name"] # sw_chass_name = sw_dict["chassis_name"] # sw_director_or_pizza = sw_dict["director"] # sw_domains = sw_dict["domain_list"] # sw_ls_list = sw_dict["ls_list"] # sw_base_fid = sw_dict["base_sw"] # sw_xisl = sw_dict["xisl_state"] # sw_type = sw_dict["switch_type"] # sw_license = sw_dict["license_list"] # sw_vf_setting = sw_dict["vf_setting"] # sw_fcr_enabled = sw_dict["fcr_enabled"] # sw_port_list = sw_dict["port_list"] # # print("\n"*20) # print("SWITCH IP : %s " % switch_ip) # print("SWITCH NAME : %s " % sw_name) # print("CHASSIS NAME : %s " % sw_chass_name) # print("DIRECTOR : %s " % sw_director_or_pizza) # print("SWITCH DOMAINS : %s " % sw_domains) # print("LOGICAL SWITCH LIST : %s " % sw_ls_list) # print("BASE FID : %s " % sw_base_fid) # print("XISL STATE : %s " % sw_xisl) # print("SWITCH TYPE : %s " % sw_type) # print("LICENSE LIST : %s " % sw_license) # print("VF SETTING : %s " % sw_vf_setting) # print("FCR SETTING : %s " % sw_fcr_enabled) # print("PORT LIST : %s " % sw_port_list) # print("@"*40) # print("CONSOLE INFO : %s " % cons_info) # print("@"*40) # print("POWER POLE INFO : %s " % power_pole_info) # print("@"*40) # print("\nSwitch_Info has been written this file in logs/Switch_Info_for_playback_%s.txt\n" % switch_ip) # print("@"*40) else: print("\n" + "@" * 40) print('\nTHIS IS A NOS SWITCH> SKIPPING') print("\n" + "@" * 40) pass anturlar.close_tel() sys.exit() ############################################################################### #### #### close telnet connection and #### connect to the console #### ############################################################################### cc = cofra.SwitchUpdate() cons_out = cc.playback_licenses() cons_out = cc.playback_ls() cons_out = cc.playback_switch_names() cons_out = cc.playback_switch_domains() cons_out = cc.playback_add_ports() tn = cc.reboot_reconnect() cons_out = anturlar.fos_cmd("switchshow") print(cons_out) anturlar.close_tel()
def main(): global tn ############################################################################### #### #### #### ############################################################################### pa = parse_args(sys.argv) #print(pa) #print(pa.chassis_name) #print(pa.ipaddr) #print(pa.quiet) #print(pa.verbose) #print(pa.firmware) #print("@"*40) #sys.exit() ########################################################################## ########################################################################## ### ### hold the ip address from the command line ### if pa.ipaddr: pa.chassis_name = console_info_from_ip(pa.ipaddr, pa.chassis_name) cons_info = console_info(pa.chassis_name) console_ip = cons_info[0] console_port = cons_info[1] power_pole_info = pwr_pole_info(pa.chassis_name) usr_pass = get_user_and_pass(pa.chassis_name) user_name = usr_pass[0] usr_psswd = usr_pass[1] tn = anturlar.connect_tel_noparse(pa.ipaddr, user_name, usr_psswd) fi = anturlar.FabricInfo() si = anturlar.SwitchInfo() fcr = anturlar.FcrInfo() if pa.fabwide: ipaddr_switch = fi.ipv4_list() elif pa.csvall: ipaddr_switch = get_ip_from_file(pa.chassis_name) elif pa.fcrwide: anturlar.fos_cmd("setcontext %s" % fcr.base_check()) ipaddr_switch = fcr.fcr_fab_wide_ip() else: ipaddr_switch = [pa.ipaddr] anturlar.close_tel() #### pass ip(s)to login procedure #### and write the file for i in ipaddr_switch: try: tn = anturlar.connect_tel_noparse(i, user_name, usr_psswd) except OSError: print("Switch %s not available" % i) nos = si.nos_check() if not nos: print("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&") ports = fcr.all_ex_ports_with_edge_fid() devices = fcr.fcr_proxy_dev() #backbone_ip = fcr.fcr_backbone_ip() print("XXXXXXXXXXXXXXXXXXXXXXXXXXXXX") f = ('logs/EX_PortFlapper.txt') try: with open(f, 'w') as file: file.write("EX-Ports = %s\n" % str(ports)) file.write("Proxy Devices = %s\n" % str(devices)) #file.write("Backbone_IPs = %s\n" % str(backbone_ip)) except IOError: print("\n\nThere was a problem opening the file:", f) sys.exit() file.close() for i in ports: slot = i[0] port = i[1] if slot: anturlar.fos_cmd("portdisable %s/%s" % (slot, port)) liabhar.count_down(15) anturlar.fos_cmd("portenable %s/%s" % (slot, port)) liabhar.count_down(15) else: anturlar.fos_cmd("portdisable %s" % (port)) liabhar.count_down(15) anturlar.fos_cmd("portenable %s" % (port)) liabhar.count_down(15) devices_check = fcr.fcr_proxy_dev() if devices_check != devices: print("WTF") #email_sender_html(you, me, subj, html_to_send, htmlfile_path = "" ) liabhar.email_sender_html("*****@*****.**", "*****@*****.**", "portflapper failed", "portflapper failed", "") sys.exit() liabhar.email_sender_html("*****@*****.**", "*****@*****.**", "portflapper passed", "portflapper passed", "") sys.exit() else: print("\n" + "@" * 40) print('\nTHIS IS A NOS SWITCH> SKIPPING') print("\n" + "@" * 40) pass anturlar.close_tel() sys.exit()
def main(): global tn ############################################################################### #### #### #### ############################################################################### pa = parse_args(sys.argv) #print(pa) #print(pa.chassis_name) #print(pa.ipaddr) #print(pa.quiet) #print(pa.verbose) #print(pa.firmware) #print("@"*40) #sys.exit() ########################################################################## ########################################################################## ### ### hold the ip address from the command line ### #try: # ipaddr_test = ipaddress.ip_address(pa.ipaddr) # #print (ipaddr_test) #except ValueError: # print("\nPLEASE CHECK YOUR IP ADDRESS AND TRY AGAIN") # sys.exit() if pa.ipaddr: pa.chassis_name = console_info_from_ip(pa.ipaddr, pa.chassis_name) cons_info = console_info(pa.chassis_name) console_ip = cons_info[0] console_port = cons_info[1] power_pole_info = pwr_pole_info(pa.chassis_name) usr_pass = get_user_and_pass(pa.chassis_name) user_name = usr_pass[0] usr_psswd = usr_pass[1] tn = anturlar.connect_tel_noparse(pa.ipaddr, user_name, usr_psswd) fi = anturlar.FabricInfo() si = anturlar.SwitchInfo() fcr = anturlar.FcrInfo() if pa.fabwide: ipaddr_switch = fi.ipv4_list() #print(ipaddr_switch) elif pa.csvall: ipaddr_switch = get_ip_from_file(pa.chassis_name) elif pa.fcrwide: anturlar.fos_cmd("setcontext %s" % fcr.base_check()) ipaddr_switch = fcr.fcr_fab_wide_ip() else: ipaddr_switch = [pa.ipaddr] anturlar.close_tel() #### pass ip(s)to login procedure #### and write the file for i in ipaddr_switch: try: ###New tn = anturlar.connect_tel_noparse(i, user_name, usr_psswd) except OSError: ##New print("Switch %s not available" % i) ##New nos = si.nos_check() if not nos: sw_dict = cofra.get_info_from_the_switch("restore") switch_ip = sw_dict["switch_ip"] sw_name = sw_dict["switch_name"] sw_chass_name = sw_dict["chassis_name"] sw_director_or_pizza = sw_dict["director"] sw_domains = sw_dict["domain_list"] sw_ls_list = sw_dict["ls_list"] sw_base_fid = sw_dict["base_sw"] sw_xisl = sw_dict["xisl_state"] sw_type = sw_dict["switch_type"] sw_license = sw_dict["license_list"] sw_vf_setting = sw_dict["vf_setting"] sw_fcr_enabled = sw_dict["fcr_enabled"] sw_port_list = sw_dict["port_list"] sw_ex_port_list = sw_dict["ex_ports"] print("\n" * 20) print("SWITCH IP : %s " % switch_ip) print("SWITCH NAME : %s " % sw_name) print("CHASSIS NAME : %s " % sw_chass_name) print("DIRECTOR : %s " % sw_director_or_pizza) print("SWITCH DOMAINS : %s " % sw_domains) print("LOGICAL SWITCH LIST : %s " % sw_ls_list) print("BASE FID : %s " % sw_base_fid) print("XISL STATE : %s " % sw_xisl) print("SWITCH TYPE : %s " % sw_type) print("LICENSE LIST : %s " % sw_license) print("VF SETTING : %s " % sw_vf_setting) print("FCR SETTING : %s " % sw_fcr_enabled) print("PORT LIST : %s " % sw_port_list) print("EX_PORT_LIST : %s " % sw_ex_port_list) print("@" * 40) print("CONSOLE INFO : %s " % cons_info) print("@" * 40) print("POWER POLE INFO : %s " % power_pole_info) print("@" * 40) print( "\nSwitch_Info has been written this file in logs/test/Switch_Info_%s_restore.txt\n" % switch_ip) print("@" * 40) else: print("\n" + "@" * 40) print('\nTHIS IS A NOS SWITCH> SKIPPING') print("\n" + "@" * 40) pass anturlar.close_tel() sys.exit() ############################################################################### #### #### close telnet connection and #### connect to the console #### ############################################################################### cc = cofra.SwitchUpdate() cons_out = cc.playback_licenses() cons_out = cc.playback_ls() cons_out = cc.playback_switch_names() cons_out = cc.playback_switch_domains() cons_out = cc.playback_add_ports() tn = cc.reboot_reconnect() cons_out = anturlar.fos_cmd("switchshow") print(cons_out) anturlar.close_tel()
def main(): global tn ############################################################################### #### #### #### ############################################################################### pa = parse_args(sys.argv) #print("@"*40) #print(pa) #print(pa.chassis_name) #print(pa.ipaddr) #print(pa.quiet) #print(pa.verbose) #print(pa.firmware) #print("@"*40) #sys.exit() ########################################################################## ########################################################################## ### ### hold the ip address from the command line ### if pa.ipaddr: pa.chassis_name = console_info_from_ip(pa.ipaddr, pa.chassis_name) cons_info = console_info(pa.chassis_name) console_ip = cons_info[0] console_port = cons_info[1] power_pole_info = pwr_pole_info(pa.chassis_name) usr_pass = get_user_and_pass(pa.chassis_name) user_name = usr_pass[0] usr_psswd = usr_pass[1] tn = anturlar.connect_tel_noparse(pa.ipaddr, user_name, usr_psswd) fi = anturlar.FabricInfo() si = anturlar.SwitchInfo() fcr = anturlar.FcrInfo() if pa.fabwide: ipaddr_switch = fi.ipv4_list() #print(ipaddr_switch) elif pa.csvall: ipaddr_switch = get_ip_from_file(pa.chassis_name) elif pa.fcrwide: anturlar.fos_cmd("setcontext %s" % fcr.base_check()) ipaddr_switch = fcr.fcr_fab_wide_ip() else: ipaddr_switch = [pa.ipaddr] anturlar.close_tel() #### pass ip(s)to login procedure #### and write the file for i in ipaddr_switch: tn = anturlar.connect_tel_noparse(i, user_name, usr_psswd) nos = si.nos_check() if not nos: sw_dict = cofra.get_info_from_the_switch() switch_ip = sw_dict["switch_ip"] sw_name = sw_dict["switch_name"] sw_chass_name = sw_dict["chassis_name"] sw_director_or_pizza = sw_dict["director"] sw_domains = sw_dict["domain_list"] sw_ls_list = sw_dict["ls_list"] sw_base_fid = sw_dict["base_sw"] sw_xisl = sw_dict["xisl_state"] sw_type = sw_dict["switch_type"] sw_license = sw_dict["license_list"] sw_vf_setting = sw_dict["vf_setting"] sw_fcr_enabled = sw_dict["fcr_enabled"] sw_port_list = sw_dict["port_list"] print("\n" * 20) print("SWITCH IP : %s " % switch_ip) print("SWITCH NAME : %s " % sw_name) print("CHASSIS NAME : %s " % sw_chass_name) print("DIRECTOR : %s " % sw_director_or_pizza) print("SWITCH DOMAINS : %s " % sw_domains) print("LOGICAL SWITCH LIST : %s " % sw_ls_list) print("BASE FID : %s " % sw_base_fid) print("XISL STATE : %s " % sw_xisl) print("SWITCH TYPE : %s " % sw_type) print("LICENSE LIST : %s " % sw_license) print("VF SETTING : %s " % sw_vf_setting) print("FCR SETTING : %s " % sw_fcr_enabled) print("PORT LIST : %s " % sw_port_list) print("@" * 40) print("CONSOLE INFO : %s " % cons_info) print("@" * 40) print("POWER POLE INFO : %s " % power_pole_info) print("@" * 40) print( "\nSwitch_Info has been written this file in logs/Switch_Info_for_playback_%s.txt\n" % switch_ip) print("@" * 40) else: print("\n" + "@" * 40) print('\nTHIS IS A NOS SWITCH> SKIPPING') print("\n" + "@" * 40) pass #anturlar.close_tel() #sys.exit() ############################################################################### #### #### close telnet connection and #### connect to the console #### ############################################################################### fcrstate = fcr_state(fcr) if fcrstate is True: result = fcr_state_persist_enabled_switch_disable(fcr, si) print("RESULTFROMSWITCH_DISABLE") print(result) if result is None: print("SUCCESS") fcr_state_persist_enabled_hareboot(fcr, si) else: print("FAILED") sys.exit(0)
def tc_22_2_1_2(ftp_ip, ftp_user, ftp_pass, clear=0): """ Test Case(s) 22.2.1.2.1, 22.2.1.2.2, 22.2.1.2.3 Title: FCR Enable/Disable Feature: FCR Enabling and disabling the FCR service """ ########################################################################### #### todo - #### #### 1. pass / fail for each step of test case #### make the test_result a list of list [ step_0 pass ][step_2 fail] #### 2. ignore chassis rules on a pizza box #### 3. configupload will be tested as the config will be reset to default and then put back down #### ########################################################################### #### #### steps #### #### 1. Do configupload #### 2. Do config default #### 3. Default status (tc 2.1.2.3) #### 4. FCR Functionality Persist (tc 2.1.2.1) #### 5. Config EX ports #### 6. FCR disable with EX/VEX ports enabled #### 7. Put switch back to original config #### #### start the test test_numb = "22.2.1.2" test_summary = "%s FCR" % test_numb header = maps_tools.format_header(test_summary) test_result = "" p = anturlar.Maps() cs = anturlar.configSwitch() si = anturlar.SwitchInfo() fcrinfo = anturlar.FcrInfo() sut_ip = p.ipaddress() sw_rules = p.get_rules() sw_status = si.__sw_basic_info__() ###### set up the log file info ##f_path = '/home/RunFromHere/logs/%s_%s' % (test_numb, sut_ip) ##f = open(f_path, 'w+b') ##f.write(bytes(header, 'UTF-8')) ## ##### configupload ##cfgupload_status = cofra.cfgupload(ftp_ip, ftp_user, ftp_pass, clear = 0) ##if "Terminated" in cfgupload_status: ## print("\n"+"#"*80+"\n") ## print('Could not connect to remote host. Configupload failed') ## print("#"*80+"\n") ## f.write(bytes(cfgupload_status, 'UTF-8')) ## sys.exit() ##else: ## f.write(bytes(cfgupload_status, 'UTF-8')) ## ##### configdefault ##cfgdflt = cs.config_default() ### Check if FCR Status is disabled (default setting) fcr_status = si.fcr_enabled() ##if fcr_status is True: ## print("\n"+"*"*80+"\n") ## print('FC Routing Service is still enabled. Test Failed') ## print("*"*80+"\n") ## f.write(bytes(fcr_status, 'UTF-8')) ## sys.exit() ##else: ## print("\n"+"*"*80+"\n") ## print('FC Routing Service is disabled as it should be.') ## print("*"*80+"\n") ## f.write(bytes(fcr_status, 'UTF-8')) # FCR Functionality Persist if fcr_status is True: print('FCR IS ENABLED') else: anturlar.fos_cmd("fosconfig --enable fcr") #fcr_state = fcrinfo.fcr_state_persist_enabled() #if fcr_state == True: # print('TRUE') #else: # print("FALSE") ####### This should be last bit of code as it puts switch back to starting config #cfgdownload_status = cofra.cfgdownload(ftp_ip, ftp_user, ftp_pass, clear = 0) #if "Terminated" in cfgdownload_status: # print("\n"+"*"*80+"\n") # print('Could not connect to remote host. Configdownload failed') # print("*"*80+"\n") # f.write(bytes(cfgdownload_status, 'UTF-8')) #else: # f.write(bytes(cfgdownload_status, 'UTF-8')) # f.write(bytes("\n"+"*"*80+"\n", 'UTF-8')) # f.write(bytes("ALL TESTS PASSED\n", 'UTF-8')) # f.write(bytes("*"*80+"\n", 'UTF-8')) # f.close() # print("*"*80+"\n") # print("\n"+"*"*80+"\n") # print("ALL TESTS PASSED\n") # print("*"*80+"\n") # state = si.switch_state() # if state == "Offline": # anturlar.fos_cmd("switchenable") # else: # pass sys.exit() ############################################################################### #STEVE'S EXAMPLE #################### #p = anturlar.Maps() #sut_ip = p.ipaddress() #sw_rules = p.get_rules() #### set up the log file info #f_path = '/home/run_from_here/logs/%s_%s' % (test_numb, sut_ip) # #f = liabhar.FileStuff(f_path, 'w+b') #f.write(header) #sw_rules = str(sw_rules) #sw_rules = sw_rules.replace("'", "") #### remove ' from string #sw_rules = sw_rules.replace("[", "") #### remove open bracket #sw_rules = sw_rules.replace("]", "") #### remove ending bracket df_rules = maps_tools.maps_default_rule() sw_rules = sw_rules.split() df_rules = df_rules.split() count_df = len(df_rules) count = len(sw_rules) if count < count_df: loop_count = count else: loop_count = count_df i = 0 rule_differ = 0 while i < loop_count: print("\n\ncomparing switch rule with default rule ") print("%s %s " % (sw_rules[i], i)) if sw_rules[i] not in df_rules: rule_differ += 1 test_result += sw_rules[i] test_result += ' step1' test_result += ' Fail\n' print("\nFail Fail Fail Fail\n\n") i += 1 print("The number of rules that differ are %s " % rule_differ) print("The number of additional rules on the switch %s " % (count - count_df)) print(len(sw_rules)) print(len(df_rules)) #f.write(bytes(header, 'UTF-8')) #f.write(bytes("The number of rules that differ are %s \r\n" % rule_differ, 'UTF-8') f.write("The number of additional rules on the switch %s \r\n" % (count - count_df)) f.write("Total number of switch rules %s \r\n" % len(sw_rules)) f.write("Total number of default rules %s \r\n" % len(df_rules)) if test_result == "": test_result = "PASS" print("=" * 80) print("\n\nTEST RESULTS FOR Test Case 25.01.01.03.01 ") print(test_result) f.write(maps_tools.format_results(test_summary, test_result)) return (test_result)