コード例 #1
0
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)
コード例 #2
0
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]])
コード例 #3
0
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='')
コード例 #4
0
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
コード例 #5
0
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)
コード例 #6
0
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)
コード例 #7
0
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")
コード例 #8
0
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)
コード例 #9
0
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)
コード例 #10
0
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
コード例 #11
0
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)
コード例 #12
0
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)
コード例 #13
0
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)
コード例 #14
0
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)