def erspan_func_hooks(request): # add things at the start every test case # use 'request.node.name' to compare # if any thing specific a particular test case yield # add things at the end every test case # use 'request.node.name' to compare # if any thing specific a particular test case # Deleteing configured ACL rule at end of each test case if st.get_func_name(request) != 'test_ft_erspan_config_upload_save_reload_reboot': acl_dscp.config_flow_update_table(vars.D1, policy_name=data.acl_table_name, flow='del', policy_type=data.type, class_name=data.acl_rule) acl_dscp.config_classifier_table(dut=vars.D1, enable="del", class_name=data.acl_rule) if 'test_ft_erspan_action_ethertype_dscp_tcp_flags_l4range' in request.node.name: ip.delete_ip_interface(vars.D1, vars.D1T1P1, "2001:1::1", "64", family="ipv6") ip.delete_ip_interface(vars.D1, vars.D1T1P2, "2001:2::1", "64", family="ipv6") acl.delete_acl_rule(vars.D1, "L3_IPV6_INGRESS", "L3V6", "FWD_RULE1") if st.get_func_name(request) == 'test_ft_erspan_action_encapsulation': encap_list = ['0x88ee', '0x6558'] for encap in encap_list: mirror.delete_session(vars.D1, "mirror_" + encap) if st.get_func_name(request) == 'test_ft_erspan_portchannel_shut_noshut': mirror.delete_session(vars.D1, data.mirror_session)
def pvst_elastic_function_hooks(request): if st.get_func_name(request) == "test_ft_stp_loopguard_lag_interfaces": vlan.clear_vlan_configuration(st.get_dut_names(), thread=False) st.log('Creating port-channel and adding members in both DUTs') portchannel.config_portchannel(vars.D1, vars.D2, sc_data.portchannel_name, sc_data.members_dut1, sc_data.members_dut2, "add") portchannel.config_portchannel(vars.D1, vars.D2, sc_data.portchannel_name2, sc_data.members_dut1_p2, sc_data.members_dut2_p2, "add") parallel.exec_all( True, [[vlan.create_vlan_and_add_members, sc_data.vlan_pc_d1], [vlan.create_vlan_and_add_members, sc_data.vlan_pc_d2]]) yield if st.get_func_name(request) == "test_ft_stp_loopguard_lag_interfaces": vlan.clear_vlan_configuration(st.get_dut_names(), thread=False) portchannel.clear_portchannel_configuration([vars.D1, vars.D2]) parallel.exec_all( True, [[vlan.create_vlan_and_add_members, sc_data.vlan_data_d1], [vlan.create_vlan_and_add_members, sc_data.vlan_data_d2]]) parallel.exec_all( True, [[vlan.create_vlan_and_add_members, sc_data.vlan1_data_d1], [vlan.create_vlan_and_add_members, sc_data.vlan1_data_d2]])
def rbac_func_hooks(request): if st.get_func_name(request) == "test_ft_rbac_rw_local_cert_rest": rest_client_auth(vars.D1, auth_type='cert', ca_crt=rbac.ca_crt) if st.get_func_name(request) == "test_ft_rbac_rw_local_cert_gnmi": gnmi_client_auth(vars.D1, auth_type='cert', server_key=rbac.server_key, server_crt=rbac.server_crt, ca_crt=rbac.ca_crt) yield if st.get_func_name(request) == 'test_ft_rbac_rw_local_cert_rest': rest_client_auth(vars.D1, auth_type=rbac.rest_auth, ca_crt='') if st.get_func_name(request) == 'test_ft_rbac_rw_local_cert_gnmi': gnmi_client_auth(vars.D1, auth_type=rbac.rest_auth, ca_crt='')
def vlan_func_hooks(request): bum_test_functions = ["test_ft_stormcontrol_verification", "test_ft_stormcontrol_portchannel_intf", "test_ft_stormcontrol_incremental_bps_max_vlan", "test_ft_stormcontrol_fast_reboot", "test_ft_stormcontrol_warm_reboot"] if st.get_func_name(request) in bum_test_functions: platform_check() yield
def ztp_func_hooks(request): initialize_config_params() initialize_data_variables() basic_obj.remove_file(vars.D1, data.ztp_local_json_path) basic_obj.copy_config_db_to_temp(vars.D1, data.config_db_path, data.config_db_temp) basic_obj.change_permissions(vars.D1, data.config_db_temp) ztp_obj.enable_ztp_if_disabled(vars.D1) config_params.func_name = st.get_func_name(request) yield ztp_obj.ztp_operations(vars.D1, "disable") basic_obj.copy_config_db_to_temp(vars.D1, data.config_db_temp, data.config_db_path) config_params.dhcp_config_file = ztp_params.dhcp.inband_config_file if st.get_func_name(request) == "test_ft_ztp_config_section_check_with_option_67_with_inband": config_params.option_type = "option_67" ztp_obj.clear_options_from_dhcp_server(ssh_conn_obj, config_params) config_params.option_type = "option_239" ztp_obj.clear_options_from_dhcp_server(ssh_conn_obj, config_params)
def ipv6_link_local_func_hooks(request): utils.exec_all(True, [[ip_obj.show_ip_route, vars.D1, "ipv6"], [ip_obj.show_ip_route, vars.D2, "ipv6"]]) yield if st.get_func_name(request) == 'test_ft_ipv6_link_local_warm_boot': ip_obj.create_static_route(vars.D1, d2_prt_link_local[0], data.static_rt, "vtysh", 'ipv6', data.prt_chnl) tg1.tg_traffic_control(action='stop', handle=tg_str_data[1]["tg1_ipv6_data_str_id_1"]) if st.get_func_name(request) == 'test_ft_ipv6_link_local_manual': utils.exec_all(True, [ [ip_obj.delete_static_route, vars.D1, data.ip6_manual_ll_addr[1], data.static_rt_manual, 'ipv6', "vtysh", data.prt_chnl], [ip_obj.delete_static_route, vars.D2, data.tg_ip6_addr_l[1], data.static_rt_manual, 'ipv6', "vtysh", vars.D2T1P1]]) utils.exec_all(True, [[ip_obj.config_ip_addr_interface, vars.D1, data.prt_chnl, data.ip6_manual_ll_addr[0], data.tg_ip6_addr_mask_l[0], "ipv6", 'remove'], [ip_obj.config_ip_addr_interface, vars.D2, data.prt_chnl, data.ip6_manual_ll_addr[1], data.tg_ip6_addr_mask_l[1], "ipv6", 'remove']]) utils.exec_all(True, [[ip_obj.config_interface_ip6_link_local, vars.D1, data.prt_chnl, 'enable'], [ip_obj.config_interface_ip6_link_local, vars.D2, data.prt_chnl, 'enable']]) ip_obj.create_static_route(vars.D1, d2_prt_link_local[0], data.static_rt, "vtysh", 'ipv6', data.prt_chnl)
def snapshot_feature_func_hooks(request): if (st.get_func_name(request) not in 'test_ft_watermark_telemetry_interval' ) and (st.get_func_name(request) not in 'test_ft_snapshot_interval'): clear_interface_counters(vars.D1) yield if st.get_func_name( request ) == 'test_ft_sf_all_buffer_stats_using_unicast_traffic' or st.get_func_name( request) == 'test_ft_sf_verify_buffer_pool_counters': sf_tg_traffic_start_stop(sf_data.unicast, False) sfapi.config_snapshot_interval(vars.D1, snap="clear_snaphot_interval") if st.get_func_name( request) == 'test_ft_sf_all_buffer_stats_using_multicast_traffic': sf_tg_traffic_start_stop(sf_data.multicast, False) sfapi.config_snapshot_interval(vars.D1, snap="clear_snaphot_interval") if st.get_func_name(request) == 'test_ft_sf_verify_cpu_counters': sflow.config_attributes(vars.D1, sample_rate=sf_data.sflow_sample_rate, interface_name=vars.D1T1P1, no_form=True) sflow.enable_disable_config(vars.D1, interface=False, interface_name=None, action="disable") sf_tg_traffic_start_stop(sf_data.unicast, False) sfapi.config_snapshot_interval(vars.D1, snap="clear_snaphot_interval")
def bgp_rst_func_hooks(request): yield if st.get_func_name(request) == "test_ft_bgp_rst002": [_, exceptions] = exec_all( True, [[ config_ip_addr_rst, vars.D1, bgp_rst_data.dut1_ip6_l[0], bgp_rst_data.ip6_pre_len, vars.D1D2P1, "ipv6", "del" ], [ config_ip_addr_rst, vars.D2, bgp_rst_data.dut2_ip6_l[0], bgp_rst_data.ip6_pre_len, vars.D2D1P1, "ipv6", "del" ]]) ensure_no_exception(exceptions)
def ztp_func_hooks(request): initialize_variables() basic_obj.remove_file(vars.D1, config_params.ztp_local_json_path) basic_obj.copy_config_db_to_temp(vars.D1, config_params.config_db_path, config_params.config_db_temp) basic_obj.change_permissions(vars.D1, config_params.config_db_temp) ztp_obj.enable_ztp_if_disabled(vars.D1) config_params.func_name = st.get_func_name(request) yield ztp_obj.ztp_operations(vars.D1, "disable") basic_obj.copy_config_db_to_temp(vars.D1, config_params.config_db_temp, config_params.config_db_path) config_params.dhcp_config_file = dhcp6_config_file config_params.option_type = "option_59" ztp_obj.clear_options_from_dhcp_server(ssh_conn_obj, config_params)
def vlan_func_hooks(request): bum_test_functions = [ "test_ft_stormcontrol_verification", "test_ft_stormcontrol_portchannel_intf", "test_ft_stormcontrol_incremental_bps_max_vlan", "test_ft_stormcontrol_fast_reboot", "test_ft_stormcontrol_warm_reboot" ] if st.get_func_name(request) in bum_test_functions: platform_check() if request.function.func_name == "test_ft_snmp_max_vlan_scale": vlan.clear_vlan_configuration(st.get_dut_names(), thread=False, cli_type="click") portchannel.clear_portchannel_configuration(st.get_dut_names(), thread=True) yield
def cmds_func_hooks(request): yield d1 = {'domain_id': 1, 'config': 'del', 'cli_type': 'click'} putils.exec_parallel(True, [data.d1, data.d2], mclag.config_domain, [d1, d1]) if st.get_func_name(request) == 'test_chef_evpn_vxlan_nvo': evpn_cleanup() bgp_cleanup() ip_obj.clear_ip_configuration(st.get_dut_names(), thread=data.clear_parallel) vlan.clear_vlan_configuration(st.get_dut_names(), thread=data.clear_parallel, cli_type=data.cli_type) clear_portchannel_configuration(st.get_dut_names(), thread=data.clear_parallel, cli_type=data.cli_type)
def ztp_func_hooks(request): initialize_config_params() initialize_data_variables() basic_obj.remove_file(vars.D1, data.ztp_local_json_path) if st.get_func_name( request) == 'test_ft_ztp_behv_invalid_json_and_config_sections': mvrfconfig(vars.D1, cli_type="click") reboot_obj.config_save(vars.D1) basic_obj.copy_config_db_to_temp(vars.D1, data.config_db_path, data.config_db_temp) basic_obj.change_permissions(vars.D1, data.config_db_temp) # st.log("Shutting down the inband interface ...") # intf_obj.interface_shutdown(vars.D1, ztp_params.inband_port) reboot_obj.config_save(vars.D1) ztp_obj.enable_ztp_if_disabled(vars.D1) config_params.func_name = st.get_func_name(request) yield basic_obj.copy_config_db_to_temp(vars.D1, data.config_db_temp, data.config_db_path) ztp_obj.ztp_operations(vars.D1, "disable") ztp_cfg = { "admin-mode": True, "restart-ztp-interval": 30, "feat-console-logging": feat_logging_console } ztp_obj.config_ztp_backdoor_options(vars.D1, ztp_cfg) if st.get_func_name( request) == 'test_ft_ztp_behv_invalid_json_and_config_sections': mvrfconfig(vars.D1, no_form=True, cli_type="click") config_params.dhcp_config_file = ztp_params.dhcp.config_file config_params.option_type = "" if st.get_func_name(request) in functions_67: config_params.option_type = "option_67" elif st.get_func_name(request) in functions_225: config_params.option_type = "option_225" elif st.get_func_name(request) in functions_239: config_params.option_type = "option_239" if config_params.option_type: ztp_obj.clear_options_from_dhcp_server(ssh_conn_obj, config_params)
def portchannel_func_hooks(request): yield if st.get_func_name( request ) == 'test_ft_verify_static_portchannel_is_up_or_not_with_one_active_member': portchannelobj.add_del_portchannel_member(vars.D1, static_data.portchannel_name, static_data.members_dut1[1:]) if st.get_func_name( request ) == 'test_ft_verify_static_portchannel_is_up_with_active_members_when_no_lag_in_partner': portchannelobj.create_portchannel(vars.D2, static_data.portchannel_name, static=True) portchannelobj.add_del_portchannel_member(vars.D2, static_data.portchannel_name, static_data.members_dut2) add_vlan_member(vars.D2, static_data.vid, static_data.portchannel_name, tagging_mode=True) if st.get_func_name( request ) == 'test_ft_verify_fallback_is_configure_or_not_on_static_portchannel': if portchannelobj.get_portchannel(vars.D1, static_data.portchannel_name2): portchannelobj.delete_portchannel(vars.D1, static_data.portchannel_name2) if st.get_func_name( request ) == 'test_ft_verify_static_portchannel_del_from_ip_assigned_vlan': st.wait(2) ipobj.config_ip_addr_interface(vars.D1, 'Vlan{}'.format(static_data.vid), static_data.ip41, static_data.ip_mask, config='remove') portchannelobj.add_del_portchannel_member(vars.D1, static_data.portchannel_name, static_data.members_dut1) if st.get_func_name(request) == 'test_ft_del_ip_assigned_portchannel': if not portchannelobj.get_portchannel(vars.D1, static_data.portchannel_name): portchannelobj.create_portchannel(vars.D1, static_data.portchannel_name, static=True) ipobj.delete_ip_interface(vars.D1, static_data.portchannel_name, static_data.ip41, static_data.ip_mask, skip_error=True) portchannelobj.add_del_portchannel_member(vars.D1, static_data.portchannel_name, static_data.members_dut1) exceptions = exec_all(True, [[ add_vlan_member, vars.D1, static_data.vid, static_data.portchannel_name, True ], [ add_vlan_member, vars.D2, static_data.vid, static_data.portchannel_name, True ]])[1] ensure_no_exception(exceptions) if st.get_func_name( request ) == 'test_ft_verify_static_portchannel_l3_hash_sip_dip_l4port': arpobj.delete_static_arp(vars.D2, static_data.ip42, interface=vars.D2T1P1, mac=static_data.remote_mac2) ipobj.clear_ip_configuration([vars.D1, vars.D2], family='ipv4', thread=True) exceptions = exec_all( True, [[ add_vlan_member, vars.D1, static_data.vid, [static_data.portchannel_name, vars.D1T1P1], True ], [ add_vlan_member, vars.D2, static_data.vid, [static_data.portchannel_name, vars.D2T1P1], True ]])[1] ensure_no_exception(exceptions) if st.get_func_name( request ) == 'test_ft_verify_static_portchannel_vlan_routing_l3_traffic': arpobj.delete_static_arp(vars.D2, static_data.ip42, interface=vars.D2T1P1, mac=static_data.remote_mac2) ipobj.clear_ip_configuration([vars.D1, vars.D2], family='ipv4', thread=True) exceptions = exec_all(True, [[ add_vlan_member, vars.D1, static_data.vid, vars.D1T1P1, True ], [add_vlan_member, vars.D2, static_data.vid, vars.D2T1P1, True]])[1] ensure_no_exception(exceptions)
def interface_func_hooks(request): yield if st.get_func_name(request) == 'test_ft_ovr_counters': intfapi.interface_properties_set(vars.D1, vars.D1T1P1, 'mtu', intf_data.mtu_default)