def onnet_CCM_Y1564_CCA(A, B): print("!" * 1) print("!" * 2) print("************** Test {}{} type EP ************* ".format(A, B)) print("!!" * 3) dict1 = yaml.load(open(file_path + '/../Topology/inputfile_CCUA.yml'), Loader=yaml.Loader) dict1['site_list'][0]['port_type'] = '{}-type'.format(A) dict1['site_list'][1]['port_type'] = '{}-type'.format(B) dict1['site_list'][2]['port_type'] = '{}-type'.format(B) my_config = Service(**dict1) my_config.connect_OLO_nodes() my_config.create_commands_OLO() my_config.push_OLO_config() my_config.connect_nodes() my_config.parse_accedian() my_config = Service(**dict1) my_config.Command_Creation() my_config.push_config() time.sleep(10) test_result = {} test_result['ccm_status'] = my_config.Validate_ccm() #test_result['Loop_test'] = my_config.Y1564_test() #my_config.check_QOS_counters_config() #test_result['CFM_Stats_Acc'] = my_config.mep_statistic_accedian() #test_result['CFM_Stats_cisco'] = my_config.mep_statistic_cisco() my_config.delete_config() my_config.disconnect_nodes() my_config.delete_OLO_config() my_config.disconnect_OLO_nodes() return test_result
def onnet_CC(A,B,**kwargs): print(f"!\n!!\n************** Test {A}{B} type EP *************\n!!!") dict1 = yaml.load(open(file_path + '/../Topology/inputfile_CC.yml'),Loader=yaml.Loader) qos_dict = yaml.load(open(file_path + '/../Topology/qos_class.yml'),Loader=yaml.Loader) dict1.update(qos_dict) pprint(kwargs) dict1['site_list'][0]['port_type'],dict1['site_list'][1]['port_type'] = '{}-type'.format(A),'{}-type'.format(B) if kwargs: dict1.update(kwargs) my_config = Service(**dict1) ## create the object for service class. my_config.connect_nodes() ## connect the nodes. my_config.gather_facts() ## Update the dictionary with info from Nodes. my_config.SRTE_Config() ## do SRTE config via H-policy tool & attach the PW class to the Service. my_config.Command_Creation() ## create the commands to create and Delete service my_config.push_config() ## send the configs to the node. test_result,input_dict = {},{} ## create a empty dictionary to hold results. # test_result['XC_status'] = my_config.get_netconf_XC_status() # use netconf to see XC status # test_result['mtu_mod_test'] = mtu_modification_test(my_config) # set Random MTU at Both End and then Revert back to 9186 MTU test_result['ccm_status'] = my_config.Validate_ccm() ## store CCM Test results. test_result['SR_ping'] = my_config.test_SR_OAM_PING() ## perform SR MPLS ping from NCS to NCS test_result['SR_trace'] = my_config.test_SR_OAM_trace() ## perform SR MPLS Trace from NCS to NCS test_result['CCM_ping'] = my_config.test_CCM_PING() ## perform CCM ping over the service test_result['CCM_trace'] = my_config.test_CCM_trace() ## perform CCM trace over the service # test_result['Y1564'] = my_config.Y1564_test() ## perform Y1564 test on Cisco(7.1.2) to Cisco, Acc to Acc, or Acc to Cisco # my_config.disconnect_nodes() ## release netmiko connection from NCS and Accedian. input_dict = my_config.create_spirent_input_dict() # create the required dictionary for spirent Traffic. Spirent_L2_Gen = Spirent_L2_Traffic_Gen() ## create the spirent object. Spirent_L2_Gen.Port_Init() # reserve the port. # test_result['ccm_transparency'] = ccm_transparency_test(A,B,my_config,Spirent_L2_Gen,**input_dict) # perform ccm transparency test(same level and lower should not pass) test_result['l2CP'] = l2CP_transparency_test(A,B,my_config,Spirent_L2_Gen,**input_dict) # perform L2CP test for P,PL EP's # test_result['UC_traffic'] = UC_BC_MC_test(A,B,'UC',my_config,Spirent_L2_Gen,**input_dict) # test Known Unicast Traffic. # test_result['BC_traffic'] = UC_BC_MC_test(A,B,'BC',my_config,Spirent_L2_Gen,**input_dict) # test Broadcast Traffic. # test_result['MC_traffic'] = UC_BC_MC_test(A,B,'MC',my_config,Spirent_L2_Gen,**input_dict) # test Multicast Traffic. # test_result['LLF_Spi_test'] = LLF_test(my_config,Spirent_L2_Gen,A,B,3) # do LLF test by breaking from spirent side. # test_result['LLF_UNI_test'] = LLF_UNI_Test(my_config,A,B,1) # do LLF test by shutting UNI # test_result['lag_test'] = lag_test(my_config,Spirent_L2_Gen,A,B,1) # perfrom LAG test with UNI LAG and NNI LAG with Accedian. # test_result['frr_test'] = fast_reroute_test(my_config,Spirent_L2_Gen,A,B,1) # perform FRR test ( Local shut) # rfc_stream_handle = get_rfc_stream_handle(A,B,Spirent_L2_Gen,**input_dict) # Create the RFC stream handles # test_result['rfc_fl_test'] = Spirent_L2_Gen.rfc_2544_frameloss_test(rfc_stream_handle[0],rfc_stream_handle[1]) # perform rfc Framelost Test. # test_result['rfc_tput_test'] = Spirent_L2_Gen.rfc_2544_throughput_test(rfc_stream_handle[0],rfc_stream_handle[1]) # my_config.connect_nodes() ## connect the nodes. test_result['ELAN_MAC_test'] = ELAN_MAC_test(A,B,my_config,Spirent_L2_Gen,**input_dict) Spirent_L2_Gen.Clean_Up_Spirent() ## Clean UP Spirent. # test_result['CFM_Stats_cisco'] = my_config.mep_statistic_cisco() # Check CCM,DM,SL statistics on NCS test_result['Polier_drop'] = my_config.check_QOS_drops() # Check drops on the input & output Policy. # test_result['Polier_CIR'] = my_config.check_QOS_configured_CIR() test_result['voq_stat'] = my_config.check_voq_stats() my_config.delete_config() # delete the config from NCS and Accedian. my_config.disconnect_nodes() # release netmiko connection from NCS and Accedian. # print(f"{'test_name':<15}{'result':<15}") # for k,v in test_result['ELAN_MAC_test'].items(): # print(f"{k:<15}{v:<15}") # pprint(test_result) return test_result
def onnet_CCM_Y1564_ACCA(A,B): print("!"*1) print("!"*2) print("************** Test {}{} type EP ************* ".format(A,B)) print("!!"*3) dict1 = yaml.load(open(file_path + '/../Topology/inputfile_ACCA.yml'),Loader=yaml.Loader) qos_dict = yaml.load(open(file_path + '/../Topology/qos_class.yml'),Loader=yaml.Loader) dict1.update(qos_dict) dict1['site_list'][0]['port_type'] = '{}-type'.format(A) dict1['site_list'][1]['port_type'] = '{}-type'.format(B) dict1['site_list'][2]['port_type'] = '{}-type'.format(A) dict1['site_list'][3]['port_type'] = '{}-type'.format(B) my_config = Service(**dict1) ## initialize the object. my_config.connect_nodes() ## connect the nodes. my_config.gather_facts() ## Update the dictionary with info from Nodes. my_config.parse_accedian() ## perse accedian for MEG,MEP index my_config.SRTE_Config() ## do SRTE config via H-policy tool & attach the PW class to the Service. my_config.Command_Creation() ## create the commands to create and Delete service my_config.push_config() ## send the configs to the node. test_result,input_dict = {},{} ## create a empty dictionary to hold results. test_result['ccm_status'] = my_config.Validate_ccm() test_result['Y1564'] = my_config.Y1564_test() ## perform Y1564 test on Cisco(7.1.2) to Cisco, Acc to Acc, or Acc to Cisco # my_config.disconnect_nodes() ## release netmiko connection from NCS and Accedian. # input_dict = my_config.create_spirent_input_dict() # create the required dictionary for spirent Traffic. # Spirent_L2_Gen = Create_Spirent_L2_Gen() ## create the spirent object. # Spirent_L2_Gen.Port_Init() # reserve the port. # test_result['ccm_transparency'] = ccm_transparency_test(A,B,my_config,Spirent_L2_Gen,**input_dict) # perform ccm transparency test(same level and lower should not pass) # test_result['l2CP'] = l2CP_transparency_test(A,B,my_config,Spirent_L2_Gen,**input_dict) # perform L2CP test for P,PL EP's # test_result['UC_traffic'] = UC_BC_MC_test(A,B,'UC',my_config,Spirent_L2_Gen,**input_dict) # test Known Unicast Traffic. # test_result['BC_traffic'] = UC_BC_MC_test(A,B,'BC',my_config,Spirent_L2_Gen,**input_dict) # test Broadcast Traffic. # test_result['MC_traffic'] = UC_BC_MC_test(A,B,'MC',my_config,Spirent_L2_Gen,**input_dict) # test Multicast Traffic. # test_result['LLF_Spi_test'] = LLF_test(my_config,Spirent_L2_Gen,A,B,1) # do LLF test by breaking from spirent side. # test_result['LLF_UNI_test'] = LLF_UNI_Test(my_config,A,B,1) # do LLF test by shutting UNI # test_result['lag_test'] = lag_test(my_config,Spirent_L2_Gen,A,B,1) # perfrom LAG test with UNI LAG and NNI LAG with Accedian. # test_result['frr_test'] = fast_reroute_test(my_config,Spirent_L2_Gen,A,B,1) # perform FRR test ( Local shut) # rfc_stream_handle = get_rfc_stream_handle(A,B,Spirent_L2_Gen,**input_dict) # test_result['rfc_fl_test'] = Spirent_L2_Gen.rfc_2544_frameloss_test(rfc_stream_handle[0],rfc_stream_handle[1]) # perform rfc Framelost Test. # #test_result['rfc_tput_test'] = Spirent_L2_Gen.rfc_2544_throughput_test(rfc_stream_handle[0],rfc_stream_handle[1]) # # test_result['rfc_b2b_test'] = Spirent_L2_Gen.rfc_2544_backtoback_test(rfc_stream_handle[0],rfc_stream_handle[1]) # # test_result['rfc_latency_test'] = Spirent_L2_Gen.rfc_2544_latency_test(rfc_stream_handle[0],rfc_stream_handle[1]) # Spirent_L2_Gen.delete_streams_clear_counters() # delete all the spirent streams and clear all counters. # Spirent_L2_Gen.Clean_Up_Spirent() ## Clean UP Spirent. # my_config.connect_nodes() # my_config.check_Mac_table() test_result['CFM_Stats_ACC'] = my_config.mep_statistic_accedian() my_config.check_QOS_counters_config() my_config.delete_config() my_config.disconnect_nodes() return test_result
def onnet_CCM_Y1564_ACCA(A, B): print("!" * 1) print("!" * 2) print("************** Test {}{} type EP ************* ".format(A, B)) print("!!" * 3) dict1 = yaml.load(open(file_path + '/../Topology/inputfile_ACCA.yml'), Loader=yaml.Loader) dict1['site_list'][0]['port_type'] = '{}-type'.format(A) dict1['site_list'][1]['port_type'] = '{}-type'.format(B) dict1['site_list'][2]['port_type'] = '{}-type'.format(A) dict1['site_list'][3]['port_type'] = '{}-type'.format(B) my_config = Service(**dict1) my_config.connect_nodes() my_config.get_Lag_Status() my_config.parse_accedian() my_config = Service(**dict1) my_config.Command_Creation() my_config.push_config() time.sleep(10) test_result = {} test_result['ccm_status'] = my_config.Validate_ccm() # test_result['Loop_test'] = my_config.Y1564_test() my_config.disconnect_nodes() username = input("Enter username:"******"Username is: " + username) # input_dict = {} # input_dict = my_config.create_spirent_input_dict() # create the required dictionary for spirent Traffic. # Spirent_L2_Gen = Create_Spirent_L2_Gen() ## create the spirent object. # Spirent_L2_Gen.Port_Init() # reserve the port # test_result['LLF_test'] = LLF_test(my_config,Spirent_L2_Gen,A,B,1) # test_result['lag_test'] = lag_test(my_config,Spirent_L2_Gen,A,B,5) # #### Perform RFC test # rfc_stream_handle = get_rfc_stream_handle(A,B,Spirent_L2_Gen,**input_dict) # # test_result['rfc_tput_test'] = Spirent_L2_Gen.rfc_2544_throughput_test(rfc_stream_handle[0],rfc_stream_handle[1]) # test_result['rfc_fl_test'] = Spirent_L2_Gen.rfc_2544_frameloss_test(rfc_stream_handle[0],rfc_stream_handle[1]) # # test_result['rfc_b2b_test'] = Spirent_L2_Gen.rfc_2544_backtoback_test(rfc_stream_handle[0],rfc_stream_handle[1]) # # test_result['rfc_latency_test'] = Spirent_L2_Gen.rfc_2544_latency_test(rfc_stream_handle[0],rfc_stream_handle[1]) # Spirent_L2_Gen.delete_streams_clear_counters() # #### test UC,MC,BC Traffic, with % of total BW # for tr in ['UC','BC']: # UC_BC_MC_stream_handle = get_UC_BC_MC_stream_handle(A,B,tr,Spirent_L2_Gen,**input_dict) # Spirent_L2_Gen.Generate_Stream_Traffic(UC_BC_MC_stream_handle[0],UC_BC_MC_stream_handle[1]) # will generate Traffic on Stream level # Spirent_L2_Gen.Traffic_Collection() # test_result['Spirent_{}_traffic'.format(tr)] = Spirent_L2_Gen.Validate_Traffic_Result2() # Spirent_L2_Gen.delete_streams_clear_counters() # # if A == 'P' and B == 'P': # # for mt_vt in ['MT','VT','L2CP']: # # print("**** {} traffic is going to run".format(mt_vt)) # # if mt_vt == 'MT': # # StreamHandleMT1 = Spirent_L2_Gen.Spirent_MAC_Transperancy_Traffic_Testing_For_P2P_Service(0,1,**input_dict['Spirent_0TAG_AZ']['UC']) # # StreamHandleMT2 = Spirent_L2_Gen.Spirent_MAC_Transperancy_Traffic_Testing_For_P2P_Service(1,0,**input_dict['Spirent_0TAG_ZA']['UC']) # # elif mt_vt == 'VT': # # StreamHandleVT1 = Spirent_L2_Gen.Spirent_VLAN_Transperancy_Traffic_Testing_For_P2P_Service(0,1,**input_dict['Spirent_1TAG_AZ']['UC']) # # StreamHandleVT2 = Spirent_L2_Gen.Spirent_VLAN_Transperancy_Traffic_Testing_For_P2P_Service(1,0,**input_dict['Spirent_1TAG_ZA']['UC']) # # else: # # StreamHandlel2CP1 = Spirent_L2_Gen.Spirent_L2CP_Transperancy_Traffic_Testing_For_P2P_Service(0,1,**input_dict['Spirent_0TAG_AZ']['UC']) # # StreamHandleL2CP2 = Spirent_L2_Gen.Spirent_L2CP_Transperancy_Traffic_Testing_For_P2P_Service(1,0,**input_dict['Spirent_0TAG_ZA']['UC']) # # Spirent_L2_Gen.Generate_Traffic() # # Spirent_L2_Gen.Traffic_Collection() # # test_result['Spirent_{}_traffic'.format(mt_vt)] = Spirent_L2_Gen.Validate_Traffic_Result2() # # Spirent_L2_Gen.delete_streams_clear_counters() # Spirent_L2_Gen.Clean_Up_Spirent() my_config.connect_nodes() my_config.check_Mac_table() test_result['CFM_Stats_ACC'] = my_config.mep_statistic_accedian() my_config.check_QOS_counters_config() my_config.delete_config() my_config.disconnect_nodes() return test_result
import datetime from jinja2 import Template import csv import textfsm from service import Service import yaml #from Class_Based_Spirent_Code_Generation import Spirent_L2_Traffic_Gen,Get_Spirent_Config,Create_Spirent_L2_Gen dict1 = yaml.load(open('inputfile.yml'), Loader=yaml.Loader) my_config = Service(**dict1) meg_index = my_config.parse_accedian() #print(json.dumps(dict1,indent=4)) my_config = Service(**dict1) my_config.Command_Creation() my_config.push_config() my_config.Validate_ccm() my_config.Y1564_test() #my_config.delete_config() # Spirent_L2_Gen = Create_Spirent_L2_Gen() # Spirent_L2_Gen.Port_Init() # print("Just Before Stream Creation-1") # StreamHandle = Spirent_L2_Gen.Stream_Config_Creation_Without_VLAN_Mbps(0,1) # #Spirent_L2_Gen.Generate_Stream_Traffic(StreamHandle) # print("Just Before Stream Creation-2") # StreamHandle = Spirent_L2_Gen.Stream_Config_Creation_Without_VLAN_Mbps(1,0) # #Spirent_L2_Gen.Generate_Stream_Traffic(StreamHandle) # Spirent_L2_Gen.Generate_Traffic() # Spirent_L2_Gen.Traffic_Collection() # Status = Spirent_L2_Gen.Validate_Traffic_Result()