diff --git a/tests/common/fixtures/fib_utils.py b/tests/common/fixtures/fib_utils.py index 766a4a6f852..1e4fc738c18 100644 --- a/tests/common/fixtures/fib_utils.py +++ b/tests/common/fixtures/fib_utils.py @@ -45,8 +45,8 @@ def get_t2_fib_info(duthosts, duts_cfg_facts, duts_mg_facts): for asic_cfg_facts in cfg_facts: if duthost.facts['switch_type'] == "voq": switch_type = "voq" - dut_inband_intfs.setdefault(duthost.hostname,[]).extend(asic_cfg_facts['VOQ_INBAND_INTERFACE']) - dut_port_channels.setdefault(duthost.hostname,{}).update(asic_cfg_facts.get('PORTCHANNEL', {})) + dut_inband_intfs.setdefault(duthost.hostname,[]).extend(asic_cfg_facts[1]['VOQ_INBAND_INTERFACE']) + dut_port_channels.setdefault(duthost.hostname,{}).update(asic_cfg_facts[1].get('PORTCHANNEL', {})) sys_neigh = {} if switch_type == "voq": voq_db = VoqDbCli(duthosts.supervisor_nodes[0]) @@ -58,7 +58,8 @@ def get_t2_fib_info(duthosts, duts_cfg_facts, duts_mg_facts): for duthost in duthosts.frontend_nodes: cfg_facts = duts_cfg_facts[duthost.hostname] mg_facts = duts_mg_facts[duthost.hostname] - for asic_index, asic_cfg_facts in enumerate(cfg_facts): + for list_index, asic_cfg_facts_tuple in enumerate(cfg_facts): + asic_index, asic_cfg_facts = asic_cfg_facts_tuple asic = duthost.asic_instance(asic_index) asic.shell("{} redis-dump -d 0 -k 'ROUTE*' -y > /tmp/fib.{}.txt".format(asic.ns_arg, timestamp)) @@ -86,7 +87,7 @@ def get_t2_fib_info(duthosts, duts_cfg_facts, duts_mg_facts): if len(oports) == 0: skip = True else: - oports.append([str(mg_facts[asic_index]['minigraph_ptf_indices'][x]) for x in po[ifname]['members']]) + oports.append([str(mg_facts[list_index][1]['minigraph_ptf_indices'][x]) for x in po[ifname]['members']]) skip = False else: if ifname in ports: @@ -126,7 +127,7 @@ def get_t2_fib_info(duthosts, duts_cfg_facts, duts_mg_facts): if remote_neigh_intf in a_asic_mg_facts['minigraph_port_indices']: oports.append([str(a_asic_mg_facts['minigraph_ptf_indices'][remote_neigh_intf])]) else: - oports.append([str(mg_facts[asic_index]['minigraph_ptf_indices'][ifname])]) + oports.append([str(mg_facts[list_index][1]['minigraph_ptf_indices'][ifname])]) skip = False else: logger.info("Route point to non front panel port {}:{}".format(k, v)) @@ -170,7 +171,9 @@ def get_fib_info(duthost, dut_cfg_facts, duts_mg_facts): """ timestamp = datetime.now().strftime('%Y-%m-%d-%H:%M:%S') fib_info = {} - for asic_index, asic_cfg_facts in enumerate(dut_cfg_facts): + for list_index, asic_cfg_facts_tuple in enumerate(dut_cfg_facts): + + asic_index, asic_cfg_facts = asic_cfg_facts_tuple asic = duthost.asic_instance(asic_index) @@ -198,15 +201,15 @@ def get_fib_info(duthost, dut_cfg_facts, duts_mg_facts): if 'role' in ports[po[ifname]['members'][0]] and ports[po[ifname]['members'][0]]['role'] == 'Int': skip = True else: - oports.append([str(duts_mg_facts[asic_index]['minigraph_ptf_indices'][x]) for x in po[ifname]['members']]) + oports.append([str(duts_mg_facts[list_index][1]['minigraph_ptf_indices'][x]) for x in po[ifname]['members']]) else: if ifname in sub_interfaces: - oports.append([str(duts_mg_facts[asic_index]['minigraph_ptf_indices'][ifname.split('.')[0]])]) + oports.append([str(duts_mg_facts[list_index][1]['minigraph_ptf_indices'][ifname.split('.')[0]])]) elif ifname in ports: if 'role' in ports[ifname] and ports[ifname]['role'] == 'Int': skip = True else: - oports.append([str(duts_mg_facts[asic_index]['minigraph_ptf_indices'][ifname])]) + oports.append([str(duts_mg_facts[list_index][1]['minigraph_ptf_indices'][ifname])]) else: logger.info("Route point to non front panel port {}:{}".format(k, v)) skip = True diff --git a/tests/common/fixtures/ptfhost_utils.py b/tests/common/fixtures/ptfhost_utils.py index a840e0d5a0f..615e9f5c54d 100644 --- a/tests/common/fixtures/ptfhost_utils.py +++ b/tests/common/fixtures/ptfhost_utils.py @@ -460,9 +460,10 @@ def ptf_test_port_map(ptfhost, tbinfo, duthosts, mux_server_url, duts_running_co target_dut_port = int(list(dut_intf_map.values())[0]) router_mac = router_macs[target_dut_index] if len(duts_minigraph_facts[duthosts[target_dut_index].hostname]) > 1: - for idx, mg_facts in enumerate(duts_minigraph_facts[duthosts[target_dut_index].hostname]): + for list_idx, mg_facts_tuple in enumerate(duts_minigraph_facts[duthosts[target_dut_index].hostname]): + idx, mg_facts = mg_facts_tuple if target_dut_port in mg_facts['minigraph_port_indices'].values(): - router_mac = duts_running_config_facts[duthosts[target_dut_index].hostname][idx]['DEVICE_METADATA']['localhost']['mac'].lower() + router_mac = duts_running_config_facts[duthosts[target_dut_index].hostname][list_idx][1]['DEVICE_METADATA']['localhost']['mac'].lower() asic_idx = idx break ports_map[ptf_port] = { @@ -525,9 +526,10 @@ def ptf_test_port_map_active_active(ptfhost, tbinfo, duthosts, mux_server_url, d target_dut_port = int(list(dut_intf_map.values())[0]) router_mac = router_macs[target_dut_index] if len(duts_minigraph_facts[duthosts[target_dut_index].hostname]) > 1: - for idx, mg_facts in enumerate(duts_minigraph_facts[duthosts[target_dut_index].hostname]): + for list_idx, mg_facts_tuple in enumerate(duts_minigraph_facts[duthosts[target_dut_index].hostname]): + idx, mg_facts = mg_facts_tuple if target_dut_port in mg_facts['minigraph_port_indices'].values(): - router_mac = duts_running_config_facts[duthosts[target_dut_index].hostname][idx]['DEVICE_METADATA']['localhost']['mac'].lower() + router_mac = duts_running_config_facts[duthosts[target_dut_index].hostname][list_idx][1]['DEVICE_METADATA']['localhost']['mac'].lower() asic_idx = idx for a_dut_port, a_dut_port_index in mg_facts['minigraph_port_indices'].items(): if a_dut_port_index == target_dut_port and "Ethernet-Rec" not in a_dut_port and \ diff --git a/tests/common/plugins/sanity_check/checks.py b/tests/common/plugins/sanity_check/checks.py index aeea8b5b4af..dd7eb51d1e8 100644 --- a/tests/common/plugins/sanity_check/checks.py +++ b/tests/common/plugins/sanity_check/checks.py @@ -480,7 +480,7 @@ def _verify_show_mux_status(): return False port_name = row['port'] - port_idx = str(duts_minigraph_facts[dut_hostname][0]['minigraph_port_indices'][port_name]) + port_idx = str(duts_minigraph_facts[dut_hostname][0][1]['minigraph_port_indices'][port_name]) mux_status = 0 if row["status"] == "standby" else 1 dut_parsed_mux_status[port_idx] = {"status": mux_status, "cable_type": port_cable_types[port_idx]} if "hwstatus" in row: @@ -523,7 +523,7 @@ def _verify_show_mux_status(): has_active_active_ports = False for row in upper_tor_mux_config: port_name = row["port"] - port_idx = str(duts_minigraph_facts[dut_upper_tor.hostname][0]['minigraph_port_indices'][port_name]) + port_idx = str(duts_minigraph_facts[dut_upper_tor.hostname][0][1]['minigraph_port_indices'][port_name]) if "cable_type" in row: if row["cable_type"] and row["cable_type"] not in (CableType.active_active, CableType.active_standby): err_msg = "Unsupported cable type %s for %s" % (row["cable_type"], port_name) diff --git a/tests/conftest.py b/tests/conftest.py index 5affbbf9552..c8ade94eb94 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1647,8 +1647,8 @@ def duts_running_config_facts(duthosts): Returns: dict: { : [ - {asic0_cfg_facts}, - {asic1_cfg_facts} + (asic0_idx, {asic0_cfg_facts}), + (asic1_idx, {asic1_cfg_facts}) ] } """ @@ -1659,7 +1659,7 @@ def duts_running_config_facts(duthosts): if asic.is_it_backend(): continue asic_cfg_facts = asic.config_facts(source='running')['ansible_facts'] - cfg_facts[duthost.hostname].append(asic_cfg_facts) + cfg_facts[duthost.hostname].append((asic.asic_index, asic_cfg_facts)) return cfg_facts @@ -1716,8 +1716,8 @@ def duts_minigraph_facts(duthosts, tbinfo): Returns: dict: { : [ - {asic0_mg_facts}, - {asic1_mg_facts} + (asic0_idx, {asic0_mg_facts}), + (asic1_idx, {asic1_mg_facts}) ] } """ @@ -1728,7 +1728,7 @@ def duts_minigraph_facts(duthosts, tbinfo): if asic.is_it_backend(): continue asic_mg_facts = asic.get_extended_minigraph_facts(tbinfo) - mg_facts[duthost.hostname].append(asic_mg_facts) + mg_facts[duthost.hostname].append((asic.asic_index, asic_mg_facts)) return mg_facts diff --git a/tests/copp/test_copp.py b/tests/copp/test_copp.py index ddce8057755..338ed6a034a 100644 --- a/tests/copp/test_copp.py +++ b/tests/copp/test_copp.py @@ -301,7 +301,8 @@ def _gather_test_params(tbinfo, duthost, request, duts_minigraph_facts): mg_fact = duts_minigraph_facts[duthost.hostname] port_index_map = {} - for index, mg_facts in enumerate(mg_fact): + for mg_facts_tuple in mg_fact: + index, mg_facts = mg_facts_tuple # filter out server peer port and only bgp peer ports remain, to support T0 topologies bgp_peer_name_set = set([bgp_peer["name"] for bgp_peer in mg_facts["minigraph_bgp"]]) # get the port_index_map using the ptf_indicies to support multi DUT topologies @@ -318,7 +319,8 @@ def _gather_test_params(tbinfo, duthost, request, duts_minigraph_facts): peerip = None nn_target_vlanid = None - for index, mg_facts in enumerate(mg_fact): + for mg_facts_tuple in mg_fact: + index, mg_facts = mg_facts_tuple if nn_target_interface not in mg_facts["minigraph_neighbors"]: continue for bgp_peer in mg_facts["minigraph_bgp"]: diff --git a/tests/decap/test_decap.py b/tests/decap/test_decap.py index a6384d06147..f3870ecd045 100644 --- a/tests/decap/test_decap.py +++ b/tests/decap/test_decap.py @@ -83,7 +83,7 @@ def loopback_ips(duthosts, duts_running_config_facts): lo_ip = None lo_ipv6 = None # Loopback0 ip is same on all ASICs - for addr in cfg_facts[0]["LOOPBACK_INTERFACE"]["Loopback0"]: + for addr in cfg_facts[0][1]["LOOPBACK_INTERFACE"]["Loopback0"]: ip = IPNetwork(addr).ip if ip.version == 4 and not lo_ip: lo_ip = str(ip) diff --git a/tests/drop_packets/test_configurable_drop_counters.py b/tests/drop_packets/test_configurable_drop_counters.py index a9ef244308a..c764547e973 100644 --- a/tests/drop_packets/test_configurable_drop_counters.py +++ b/tests/drop_packets/test_configurable_drop_counters.py @@ -247,7 +247,8 @@ def add_default_route_to_dut(duts_running_config_facts, duthosts, tbinfo): try: for duthost in duthosts: cfg_facts = duts_running_config_facts[duthost.hostname] - for asic_index, asic_cfg_facts in enumerate(cfg_facts): + for asic_cfg_facts_tuple in cfg_facts: + asic_index, asic_cfg_facts = asic_cfg_facts_tuple asic = duthost.asic_instance(asic_index) bgp_neighbors = asic_cfg_facts["BGP_NEIGHBOR"] ipv4_cmd_parts = ["ip route add default"] diff --git a/tests/everflow/conftest.py b/tests/everflow/conftest.py index e1e13564ca9..9faf0bf8414 100644 --- a/tests/everflow/conftest.py +++ b/tests/everflow/conftest.py @@ -8,28 +8,30 @@ def setup_recycle_port(duthosts, tbinfo): rec_intf = {} if "t2" in tbinfo['topo']['name']: for duthost in duthosts.frontend_nodes: - rec_intf[duthost.hostname] = {} - for asic in duthost.asics: - output = duthost.command("show ip interfaces {} -d all".format(asic.cli_ns_option))['stdout_lines'] - if 'Ethernet-Rec' not in output: - rec_intf[duthost.hostname][asic.namespace] = 1 - cmd = "sudo config interface {ns} ip add Ethernet-Rec{rec} 1.1.1.{an}/32".format( - ns=asic.cli_ns_option, - rec=asic.asic_index, - an=asic.asic_index + 1) - logging.info(cmd) - duthost.command(cmd) - duthost.command("sudo config save -y") + if duthost.facts['switch_type'] == "voq": + rec_intf[duthost.hostname] = {} + for asic in duthost.asics: + output = duthost.command("show ip interfaces {} -d all".format(asic.cli_ns_option))['stdout_lines'] + if 'Ethernet-Rec' not in output: + rec_intf[duthost.hostname][asic.namespace] = 1 + cmd = "sudo config interface {ns} ip add Ethernet-Rec{rec} 1.1.1.{an}/32".format( + ns=asic.cli_ns_option, + rec=asic.asic_index, + an=asic.asic_index + 1) + logging.info(cmd) + duthost.command(cmd) + duthost.command("sudo config save -y") yield if "t2" in tbinfo['topo']['name']: for duthost in duthosts.frontend_nodes: - for asic in duthost.asics: - if rec_intf[duthost.hostname][asic.namespace]: - cmd = "sudo config interface {ns} ip remove Ethernet-Rec{rec} 1.1.1.{an}/32".format( - ns=asic.cli_ns_option, - rec=asic.asic_index, - an=asic.asic_index + 1) - logging.info(cmd) - duthost.command(cmd) - duthost.command("sudo config save -y") + if duthost.facts['switch_type'] == "voq": + for asic in duthost.asics: + if rec_intf[duthost.hostname][asic.namespace]: + cmd = "sudo config interface {ns} ip remove Ethernet-Rec{rec} 1.1.1.{an}/32".format( + ns=asic.cli_ns_option, + rec=asic.asic_index, + an=asic.asic_index + 1) + logging.info(cmd) + duthost.command(cmd) + duthost.command("sudo config save -y") diff --git a/tests/fib/test_fib.py b/tests/fib/test_fib.py index 45687760587..863dee2f9a3 100644 --- a/tests/fib/test_fib.py +++ b/tests/fib/test_fib.py @@ -134,9 +134,9 @@ def get_vlan_untag_ports(duthosts, duts_running_config_facts): ports = [] for asic_cfg_facts in duts_running_config_facts[duthost.hostname]: - vlans = asic_cfg_facts.get('VLAN_INTERFACE', {}).keys() + vlans = asic_cfg_facts[1].get('VLAN_INTERFACE', {}).keys() for vlan in vlans: - vlan_member_info = asic_cfg_facts.get('VLAN_MEMBER', {}).get(vlan, {}) + vlan_member_info = asic_cfg_facts[1].get('VLAN_MEMBER', {}).get(vlan, {}) if vlan_member_info: for port_name, tag_mode in vlan_member_info.items(): if tag_mode['tagging_mode'] == 'untagged': @@ -244,7 +244,8 @@ def add_default_route_to_dut(duts_running_config_facts, duthosts, tbinfo): try: for duthost in duthosts: cfg_facts = duts_running_config_facts[duthost.hostname] - for asic_index, asic_cfg_facts in enumerate(cfg_facts): + for asic_cfg_facts_tuple in (cfg_facts): + asic_index, asic_cfg_facts = asic_cfg_facts_tuple asic = duthost.asic_instance(asic_index) bgp_neighbors = asic_cfg_facts["BGP_NEIGHBOR"] ipv4_cmd_parts = ["ip route add default"] diff --git a/tests/platform_tests/test_link_down.py b/tests/platform_tests/test_link_down.py index 5c7b3ee1b08..76c09e9aa56 100644 --- a/tests/platform_tests/test_link_down.py +++ b/tests/platform_tests/test_link_down.py @@ -140,7 +140,7 @@ def check_interfaces_and_services_all_LCs(duthosts, conn_graph_facts, xcvr_skip_ def test_link_down_on_sup_reboot(duthosts, localhost, enum_supervisor_dut_hostname, - conn_graph_facts, duts_running_config_facts, + conn_graph_facts, fanouthosts, tbinfo, xcvr_skip_list, set_max_to_reboot): if len(duthosts.nodes) == 1: pytest.skip("Skip single-host dut for this test") @@ -189,7 +189,7 @@ def test_link_down_on_sup_reboot(duthosts, localhost, enum_supervisor_dut_hostna def test_link_status_on_host_reboot(duthosts, localhost, enum_frontend_dut_hostname, - duts_running_config_facts, conn_graph_facts, + conn_graph_facts, fanouthosts, xcvr_skip_list, tbinfo, set_max_to_reboot): duthost = duthosts[enum_frontend_dut_hostname] hostname = duthost.hostname