============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.4.0, pluggy-1.4.0
ansible: 2.13.13
rootdir: /var/ubuntu/sonic-mgmt/tests
configfile: pytest.ini
plugins: metadata-3.1.1, xdist-1.28.0, forked-1.6.0, repeat-0.9.3, ansible-4.0.0, html-4.1.1, allure-pytest-2.8.22
['conf-name', 'group-name', 'topo', 'ptf_image_name', 'ptf', 'ptf_ip', 'ptf_ipv6', 'server', 'vm_base', 'dut', 'inv_name', 'auto_recover', 'comment']
Finished testbed info generating.

----------------------------- live log collection ------------------------------
03:19:36 __init__.load_dut_basic_facts            L0143 INFO   | Getting dut basic facts
03:19:40 __init__.load_minigraph_facts            L0231 INFO   | Getting minigraph basic facts
03:19:42 __init__.load_config_facts               L0263 INFO   | Getting config basic facts
03:19:46 __init__.load_switch_capabilities_facts  L0295 INFO   | Getting switch capabilities basic facts
03:19:48 __init__.load_config_facts               L0263 INFO   | Getting config basic facts
03:19:52 __init__.pytest_collection_modifyitems   L0581 INFO   | Available basic facts that can be used in conditional skip:
{
  "topo_type": "ptf",
  "topo_name": "ptf32",
  "testbed": "3-42_ptf32",
  "asic_subtype": "broadcom",
  "asic_type": "broadcom",
  "branch": "master",
  "build_date": "Wed Sep  4 10:13:46 UTC 2024",
  "build_number": 0,
  "build_version": "master.0-dirty-20240904.181242",
  "built_by": "ubuntu@ip-10-5-1-33",
  "commit_id": "3c08fe52c",
  "debian_version": "12.6",
  "feature_status": {
    "bgp": "enabled",
    "database": "always_enabled",
    "dhcp_relay": "disabled",
    "eventd": "enabled",
    "gnmi": "enabled",
    "lldp": "enabled",
    "macsec": "disabled",
    "mgmt-framework": "enabled",
    "mux": "always_disabled",
    "nat": "disabled",
    "pmon": "enabled",
    "radv": "enabled",
    "sflow": "disabled",
    "snmp": "enabled",
    "swss": "enabled",
    "syncd": "enabled",
    "teamd": "enabled"
  },
  "hwsku": "Accton-AS9736-64D-100G",
  "is_multi_asic": false,
  "is_supervisor": false,
  "kernel_version": "6.1.0",
  "libswsscommon": "1.0.0",
  "num_asic": 1,
  "platform": "x86_64-accton_as9736_64d-r0",
  "release": "master",
  "secure_boot_image": "no",
  "sonic_os_version": 12,
  "sonic_utilities": 1.2,
  "asic_gen": "unknown",
  "minigraph_interfaces": [],
  "minigraph_portchannels": {
    "PortChannel101": {
      "members": [
        "Ethernet224"
      ],
      "name": "PortChannel101",
      "namespace": ""
    },
    "PortChannel102": {
      "members": [
        "Ethernet232"
      ],
      "name": "PortChannel102",
      "namespace": ""
    },
    "PortChannel103": {
      "members": [
        "Ethernet240"
      ],
      "name": "PortChannel103",
      "namespace": ""
    },
    "PortChannel104": {
      "members": [
        "Ethernet248"
      ],
      "name": "PortChannel104",
      "namespace": ""
    }
  },
  "minigraph_portchannel_interfaces": [
    {
      "addr": "10.0.0.56",
      "attachto": "PortChannel101",
      "mask": "255.255.255.254",
      "peer_addr": "10.0.0.57",
      "prefixlen": 31,
      "subnet": "10.0.0.56/31"
    },
    {
      "addr": "fc00::71",
      "attachto": "PortChannel101",
      "mask": "126",
      "peer_addr": "fc00::72",
      "prefixlen": 126,
      "subnet": "fc00::70/126"
    },
    {
      "addr": "10.0.0.58",
      "attachto": "PortChannel102",
      "mask": "255.255.255.254",
      "peer_addr": "10.0.0.59",
      "prefixlen": 31,
      "subnet": "10.0.0.58/31"
    },
    {
      "addr": "fc00::75",
      "attachto": "PortChannel102",
      "mask": "126",
      "peer_addr": "fc00::76",
      "prefixlen": 126,
      "subnet": "fc00::74/126"
    },
    {
      "addr": "10.0.0.60",
      "attachto": "PortChannel103",
      "mask": "255.255.255.254",
      "peer_addr": "10.0.0.61",
      "prefixlen": 31,
      "subnet": "10.0.0.60/31"
    },
    {
      "addr": "fc00::79",
      "attachto": "PortChannel103",
      "mask": "126",
      "peer_addr": "fc00::7a",
      "prefixlen": 126,
      "subnet": "fc00::78/126"
    },
    {
      "addr": "10.0.0.62",
      "attachto": "PortChannel104",
      "mask": "255.255.255.254",
      "peer_addr": "10.0.0.63",
      "prefixlen": 31,
      "subnet": "10.0.0.62/31"
    },
    {
      "addr": "fc00::7d",
      "attachto": "PortChannel104",
      "mask": "126",
      "peer_addr": "fc00::7e",
      "prefixlen": 126,
      "subnet": "fc00::7c/126"
    }
  ],
  "minigraph_neighbors": {
    "Ethernet104": {
      "name": "Servers12",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet112": {
      "name": "Servers13",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet120": {
      "name": "Servers14",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet128": {
      "name": "Servers15",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet136": {
      "name": "Servers16",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet144": {
      "name": "Servers17",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet152": {
      "name": "Servers18",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet16": {
      "name": "Servers1",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet160": {
      "name": "Servers19",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet168": {
      "name": "Servers20",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet176": {
      "name": "Servers21",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet184": {
      "name": "Servers22",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet192": {
      "name": "Servers23",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet224": {
      "name": "ARISTA01T1",
      "namespace": "",
      "port": "Ethernet1"
    },
    "Ethernet232": {
      "name": "ARISTA02T1",
      "namespace": "",
      "port": "Ethernet1"
    },
    "Ethernet24": {
      "name": "Servers2",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet240": {
      "name": "ARISTA03T1",
      "namespace": "",
      "port": "Ethernet1"
    },
    "Ethernet248": {
      "name": "ARISTA04T1",
      "namespace": "",
      "port": "Ethernet1"
    },
    "Ethernet32": {
      "name": "Servers3",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet40": {
      "name": "Servers4",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet48": {
      "name": "Servers5",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet56": {
      "name": "Servers6",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet64": {
      "name": "Servers7",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet72": {
      "name": "Servers8",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet8": {
      "name": "Servers0",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet80": {
      "name": "Servers9",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet88": {
      "name": "Servers10",
      "namespace": "",
      "port": "eth0"
    },
    "Ethernet96": {
      "name": "Servers11",
      "namespace": "",
      "port": "eth0"
    }
  },
  "VOQ_INBAND_INTERFACE": {},
  "BGP_VOQ_CHASSIS_NEIGHBOR": {},
  "INTERFACE": {
    "Ethernet0": {
      "10.0.0.0/31": {}
    },
    "Ethernet104": {
      "10.0.0.26/31": {}
    },
    "Ethernet112": {
      "10.0.0.28/31": {}
    },
    "Ethernet120": {
      "10.0.0.30/31": {}
    },
    "Ethernet128": {
      "10.0.0.32/31": {}
    },
    "Ethernet136": {
      "10.0.0.34/31": {}
    },
    "Ethernet144": {
      "10.0.0.36/31": {}
    },
    "Ethernet152": {
      "10.0.0.38/31": {}
    },
    "Ethernet16": {
      "10.0.0.4/31": {}
    },
    "Ethernet160": {
      "10.0.0.40/31": {}
    },
    "Ethernet168": {
      "10.0.0.42/31": {}
    },
    "Ethernet176": {
      "10.0.0.44/31": {}
    },
    "Ethernet184": {
      "10.0.0.46/31": {}
    },
    "Ethernet192": {
      "10.0.0.48/31": {}
    },
    "Ethernet200": {
      "10.0.0.50/31": {}
    },
    "Ethernet208": {
      "10.0.0.52/31": {}
    },
    "Ethernet216": {
      "10.0.0.54/31": {}
    },
    "Ethernet224": {
      "10.0.0.56/31": {}
    },
    "Ethernet232": {
      "10.0.0.58/31": {}
    },
    "Ethernet24": {
      "10.0.0.6/31": {}
    },
    "Ethernet240": {
      "10.0.0.60/31": {}
    },
    "Ethernet248": {
      "10.0.0.62/31": {}
    },
    "Ethernet256": {
      "10.0.0.64/31": {}
    },
    "Ethernet264": {
      "10.0.0.66/31": {}
    },
    "Ethernet272": {
      "10.0.0.68/31": {}
    },
    "Ethernet280": {
      "10.0.0.70/31": {}
    },
    "Ethernet288": {
      "10.0.0.72/31": {}
    },
    "Ethernet296": {
      "10.0.0.74/31": {}
    },
    "Ethernet304": {
      "10.0.0.76/31": {}
    },
    "Ethernet312": {
      "10.0.0.78/31": {}
    },
    "Ethernet32": {
      "10.0.0.8/31": {}
    },
    "Ethernet320": {
      "10.0.0.80/31": {}
    },
    "Ethernet328": {
      "10.0.0.82/31": {}
    },
    "Ethernet336": {
      "10.0.0.84/31": {}
    },
    "Ethernet344": {
      "10.0.0.86/31": {}
    },
    "Ethernet352": {
      "10.0.0.88/31": {}
    },
    "Ethernet360": {
      "10.0.0.90/31": {}
    },
    "Ethernet368": {
      "10.0.0.92/31": {}
    },
    "Ethernet376": {
      "10.0.0.94/31": {}
    },
    "Ethernet384": {
      "10.0.0.96/31": {}
    },
    "Ethernet392": {
      "10.0.0.98/31": {}
    },
    "Ethernet40": {
      "10.0.0.10/31": {}
    },
    "Ethernet400": {
      "10.0.0.100/31": {}
    },
    "Ethernet408": {
      "10.0.0.102/31": {}
    },
    "Ethernet416": {
      "10.0.0.104/31": {}
    },
    "Ethernet424": {
      "10.0.0.106/31": {}
    },
    "Ethernet432": {
      "10.0.0.108/31": {}
    },
    "Ethernet440": {
      "10.0.0.110/31": {}
    },
    "Ethernet448": {
      "10.0.0.112/31": {}
    },
    "Ethernet456": {
      "10.0.0.114/31": {}
    },
    "Ethernet464": {
      "10.0.0.116/31": {}
    },
    "Ethernet472": {
      "10.0.0.118/31": {}
    },
    "Ethernet48": {
      "10.0.0.12/31": {}
    },
    "Ethernet480": {
      "10.0.0.120/31": {}
    },
    "Ethernet488": {
      "10.0.0.122/31": {}
    },
    "Ethernet496": {
      "10.0.0.124/31": {}
    },
    "Ethernet504": {
      "10.0.0.126/31": {}
    },
    "Ethernet56": {
      "10.0.0.14/31": {}
    },
    "Ethernet64": {
      "10.0.0.16/31": {}
    },
    "Ethernet72": {
      "10.0.0.18/31": {}
    },
    "Ethernet8": {
      "10.0.0.2/31": {}
    },
    "Ethernet80": {
      "10.0.0.20/31": {}
    },
    "Ethernet88": {
      "10.0.0.22/31": {}
    },
    "Ethernet96": {
      "10.0.0.24/31": {}
    }
  },
  "switch": {
    "ACL_ACTION|PACKET_ACTION": "DROP,FORWARD",
    "ASIC_SDK_HEALTH_EVENT": "false",
    "ECMP_HASH_ALGORITHM": "N/A",
    "ECMP_HASH_ALGORITHM_CAPABLE": "true",
    "ECMP_HASH_CAPABLE": "false",
    "HASH|NATIVE_HASH_FIELD_LIST": "N/A",
    "LAG_HASH_ALGORITHM": "N/A",
    "LAG_HASH_ALGORITHM_CAPABLE": "true",
    "LAG_HASH_CAPABLE": "false",
    "LAG_TPID_CAPABLE": "false",
    "MAX_NEXTHOP_GROUP_COUNT": "1024",
    "MIRROR": "true",
    "MIRRORV6": "true",
    "ORDERED_ECMP_CAPABLE": "true",
    "PATH_TRACING_CAPABLE": "false",
    "PFC_DLR_INIT_CAPABLE": "true",
    "PORT_EGRESS_SAMPLE_CAPABLE": "false",
    "PORT_TPID_CAPABLE": "true",
    "REG_FATAL_ASIC_SDK_HEALTH_CATEGORY": "false",
    "REG_NOTICE_ASIC_SDK_HEALTH_CATEGORY": "false",
    "REG_WARNING_ASIC_SDK_HEALTH_CATEGORY": "false"
  }
}
collected 13 items

platform_tests/api/test_component.py::TestComponentApi::test_get_name[as9736-64d-3] 
-------------------------------- live log setup --------------------------------
03:19:52 __init__.set_default                     L0053 INFO   | Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
03:19:52 __init__.check_test_completeness         L0152 INFO   | Test has no defined levels. Continue without test completeness checks
03:19:58 ptfhost_utils.run_icmp_responder_session L0239 INFO   | Skip running icmp_responder at session level, it is only for dualtor testbed with active-active mux ports.
03:19:59 conftest.creds_on_dut                    L0705 INFO   | dut as9736-64d-3 belongs to groups ['lab', 'sonic', 'sonic_as9736-64d', 'fanout']
03:19:59 conftest.creds_on_dut                    L0729 INFO   | skip empty var file ../ansible/group_vars/all/env.yml
03:19:59 conftest.creds_on_dut                    L0729 INFO   | skip empty var file ../ansible/group_vars/all/corefile_uploader.yml
03:19:59 conftest.nbrhosts                        L0519 INFO   | No VMs exist for this topology: ptf32
03:20:09 conftest.fanouthosts                     L0646 INFO   | fanout as9716-32d-3 fanout_port_alias_to_name {'Ethernet0': 'Ethernet0', 'Ethernet8': 'Ethernet8', 'Ethernet16': 'Ethernet16', 'Ethernet24': 'Ethernet24', 'Ethernet32': 'Ethernet32', 'Ethernet40': 'Ethernet40', 'Ethernet48': 'Ethernet48', 'Ethernet56': 'Ethernet56', 'Ethernet64': 'Ethernet64', 'Ethernet72': 'Ethernet72', 'Ethernet80': 'Ethernet80', 'Ethernet88': 'Ethernet88', 'Ethernet96': 'Ethernet96', 'Ethernet104': 'Ethernet104', 'Ethernet112': 'Ethernet112', 'Ethernet120': 'Ethernet120', 'Ethernet128': 'Ethernet128', 'Ethernet136': 'Ethernet136', 'Ethernet144': 'Ethernet144', 'Ethernet152': 'Ethernet152', 'Ethernet160': 'Ethernet160', 'Ethernet168': 'Ethernet168', 'Ethernet176': 'Ethernet176', 'Ethernet184': 'Ethernet184', 'Ethernet192': 'Ethernet192', 'Ethernet200': 'Ethernet200', 'Ethernet208': 'Ethernet208', 'Ethernet216': 'Ethernet216', 'Ethernet224': 'Ethernet224', 'Ethernet232': 'Ethernet232', 'Ethernet240': 'Ethernet240', 'Ethernet248': 'Ethernet248'}
03:20:10 __init__.sanity_check                    L0125 INFO   | Skip sanity check according to command line argument
03:20:10 conftest.generate_params_dut_hostname    L1109 INFO   | Using DUTs ['as9736-64d-3'] in testbed '3-42_ptf32'
03:20:10 conftest.rand_one_dut_hostname           L0376 INFO   | Randomly select dut as9736-64d-3 for testing
03:20:10 __init__.loganalyzer                     L0045 INFO   | Log analyzer is disabled
03:20:30 __init__._fixture_func_decorator         L0069 INFO   | -------------------- fixture setup setup starts --------------------
03:20:30 chassis.chassis_api                      L0019 INFO   | Executing chassis API: "get_num_components", arguments: "[]", result: "13"
03:20:30 __init__._fixture_func_decorator         L0076 INFO   | -------------------- fixture setup setup ends --------------------
-------------------------------- live log call ---------------------------------
03:20:30 component.component_api                  L0018 INFO   | Executing component API: "get_name", index: 0, arguments: "[]", result: "SYSTEM CPLD"
03:20:30 component.component_api                  L0018 INFO   | Executing component API: "get_name", index: 1, arguments: "[]", result: "FCM CPLD"
03:20:30 component.component_api                  L0018 INFO   | Executing component API: "get_name", index: 2, arguments: "[]", result: "PSU CPLD"
03:20:30 component.component_api                  L0018 INFO   | Executing component API: "get_name", index: 3, arguments: "[]", result: "SCM CPLD"
03:20:30 component.component_api                  L0018 INFO   | Executing component API: "get_name", index: 4, arguments: "[]", result: "UDB CPLD1"
03:20:30 component.component_api                  L0018 INFO   | Executing component API: "get_name", index: 5, arguments: "[]", result: "UDB CPLD2"
03:20:30 component.component_api                  L0018 INFO   | Executing component API: "get_name", index: 6, arguments: "[]", result: "LDB CPLD1"
03:20:30 component.component_api                  L0018 INFO   | Executing component API: "get_name", index: 7, arguments: "[]", result: "LDB CPLD2"
03:20:30 component.component_api                  L0018 INFO   | Executing component API: "get_name", index: 8, arguments: "[]", result: "UDB FPGA"
03:20:30 component.component_api                  L0018 INFO   | Executing component API: "get_name", index: 9, arguments: "[]", result: "LDB FPGA"
03:20:30 component.component_api                  L0018 INFO   | Executing component API: "get_name", index: 10, arguments: "[]", result: "SMB FPGA"
03:20:30 component.component_api                  L0018 INFO   | Executing component API: "get_name", index: 11, arguments: "[]", result: "BIOS"
03:20:30 component.component_api                  L0018 INFO   | Executing component API: "get_name", index: 12, arguments: "[]", result: "SSD"
PASSED                                                                   [  7%]
------------------------------ live log teardown -------------------------------
03:20:37 loganalyzer._verify_log                  L0140 INFO   | result_str 
'match: 0
expected_match: 0
expected_missing_match: 0
'

platform_tests/api/test_component.py::TestComponentApi::test_get_presence[as9736-64d-3] 
-------------------------------- live log setup --------------------------------
03:20:37 __init__.set_default                     L0053 INFO   | Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
03:20:37 __init__.check_test_completeness         L0152 INFO   | Test has no defined levels. Continue without test completeness checks
03:20:37 __init__.loganalyzer                     L0045 INFO   | Log analyzer is disabled
03:20:40 __init__._fixture_func_decorator         L0069 INFO   | -------------------- fixture setup setup starts --------------------
03:20:40 chassis.chassis_api                      L0019 INFO   | Executing chassis API: "get_num_components", arguments: "[]", result: "13"
03:20:40 __init__._fixture_func_decorator         L0076 INFO   | -------------------- fixture setup setup ends --------------------
-------------------------------- live log call ---------------------------------
03:20:40 component.component_api                  L0018 INFO   | Executing component API: "get_presence", index: 0, arguments: "[]", result: "True"
03:20:40 component.component_api                  L0018 INFO   | Executing component API: "get_presence", index: 1, arguments: "[]", result: "True"
03:20:40 component.component_api                  L0018 INFO   | Executing component API: "get_presence", index: 2, arguments: "[]", result: "True"
03:20:40 component.component_api                  L0018 INFO   | Executing component API: "get_presence", index: 3, arguments: "[]", result: "True"
03:20:40 component.component_api                  L0018 INFO   | Executing component API: "get_presence", index: 4, arguments: "[]", result: "True"
03:20:40 component.component_api                  L0018 INFO   | Executing component API: "get_presence", index: 5, arguments: "[]", result: "True"
03:20:40 component.component_api                  L0018 INFO   | Executing component API: "get_presence", index: 6, arguments: "[]", result: "True"
03:20:40 component.component_api                  L0018 INFO   | Executing component API: "get_presence", index: 7, arguments: "[]", result: "True"
03:20:40 component.component_api                  L0018 INFO   | Executing component API: "get_presence", index: 8, arguments: "[]", result: "True"
03:20:40 component.component_api                  L0018 INFO   | Executing component API: "get_presence", index: 9, arguments: "[]", result: "True"
03:20:40 component.component_api                  L0018 INFO   | Executing component API: "get_presence", index: 10, arguments: "[]", result: "True"
03:20:40 component.component_api                  L0018 INFO   | Executing component API: "get_presence", index: 11, arguments: "[]", result: "True"
03:20:40 component.component_api                  L0018 INFO   | Executing component API: "get_presence", index: 12, arguments: "[]", result: "True"
PASSED                                                                   [ 15%]
------------------------------ live log teardown -------------------------------
03:20:45 loganalyzer._verify_log                  L0140 INFO   | result_str 
'match: 0
expected_match: 0
expected_missing_match: 0
'

platform_tests/api/test_component.py::TestComponentApi::test_get_model[as9736-64d-3] 
-------------------------------- live log setup --------------------------------
03:20:45 __init__.set_default                     L0053 INFO   | Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
03:20:45 __init__.check_test_completeness         L0152 INFO   | Test has no defined levels. Continue without test completeness checks
03:20:45 __init__.loganalyzer                     L0045 INFO   | Log analyzer is disabled
03:20:48 __init__._fixture_func_decorator         L0069 INFO   | -------------------- fixture setup setup starts --------------------
03:20:48 chassis.chassis_api                      L0019 INFO   | Executing chassis API: "get_num_components", arguments: "[]", result: "13"
03:20:48 __init__._fixture_func_decorator         L0076 INFO   | -------------------- fixture setup setup ends --------------------
-------------------------------- live log call ---------------------------------
03:20:48 component.component_api                  L0018 INFO   | Executing component API: "get_model", index: 0, arguments: "[]", result: "N/A"
03:20:48 component.component_api                  L0018 INFO   | Executing component API: "get_model", index: 1, arguments: "[]", result: "N/A"
03:20:48 component.component_api                  L0018 INFO   | Executing component API: "get_model", index: 2, arguments: "[]", result: "N/A"
03:20:48 component.component_api                  L0018 INFO   | Executing component API: "get_model", index: 3, arguments: "[]", result: "N/A"
03:20:48 component.component_api                  L0018 INFO   | Executing component API: "get_model", index: 4, arguments: "[]", result: "N/A"
03:20:48 component.component_api                  L0018 INFO   | Executing component API: "get_model", index: 5, arguments: "[]", result: "N/A"
03:20:48 component.component_api                  L0018 INFO   | Executing component API: "get_model", index: 6, arguments: "[]", result: "N/A"
03:20:48 component.component_api                  L0018 INFO   | Executing component API: "get_model", index: 7, arguments: "[]", result: "N/A"
03:20:48 component.component_api                  L0018 INFO   | Executing component API: "get_model", index: 8, arguments: "[]", result: "N/A"
03:20:48 component.component_api                  L0018 INFO   | Executing component API: "get_model", index: 9, arguments: "[]", result: "N/A"
03:20:48 component.component_api                  L0018 INFO   | Executing component API: "get_model", index: 10, arguments: "[]", result: "N/A"
03:20:48 component.component_api                  L0018 INFO   | Executing component API: "get_model", index: 11, arguments: "[]", result: "N/A"
03:20:48 component.component_api                  L0018 INFO   | Executing component API: "get_model", index: 12, arguments: "[]", result: "N/A"
PASSED                                                                   [ 23%]
------------------------------ live log teardown -------------------------------
03:20:53 loganalyzer._verify_log                  L0140 INFO   | result_str 
'match: 0
expected_match: 0
expected_missing_match: 0
'

platform_tests/api/test_component.py::TestComponentApi::test_get_serial[as9736-64d-3] 
-------------------------------- live log setup --------------------------------
03:20:53 __init__.set_default                     L0053 INFO   | Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
03:20:53 __init__.check_test_completeness         L0152 INFO   | Test has no defined levels. Continue without test completeness checks
03:20:53 __init__.loganalyzer                     L0045 INFO   | Log analyzer is disabled
03:20:56 __init__._fixture_func_decorator         L0069 INFO   | -------------------- fixture setup setup starts --------------------
03:20:56 chassis.chassis_api                      L0019 INFO   | Executing chassis API: "get_num_components", arguments: "[]", result: "13"
03:20:56 __init__._fixture_func_decorator         L0076 INFO   | -------------------- fixture setup setup ends --------------------
-------------------------------- live log call ---------------------------------
03:20:56 component.component_api                  L0018 INFO   | Executing component API: "get_serial", index: 0, arguments: "[]", result: "N/A"
03:20:56 component.component_api                  L0018 INFO   | Executing component API: "get_serial", index: 1, arguments: "[]", result: "N/A"
03:20:56 component.component_api                  L0018 INFO   | Executing component API: "get_serial", index: 2, arguments: "[]", result: "N/A"
03:20:56 component.component_api                  L0018 INFO   | Executing component API: "get_serial", index: 3, arguments: "[]", result: "N/A"
03:20:56 component.component_api                  L0018 INFO   | Executing component API: "get_serial", index: 4, arguments: "[]", result: "N/A"
03:20:56 component.component_api                  L0018 INFO   | Executing component API: "get_serial", index: 5, arguments: "[]", result: "N/A"
03:20:56 component.component_api                  L0018 INFO   | Executing component API: "get_serial", index: 6, arguments: "[]", result: "N/A"
03:20:56 component.component_api                  L0018 INFO   | Executing component API: "get_serial", index: 7, arguments: "[]", result: "N/A"
03:20:56 component.component_api                  L0018 INFO   | Executing component API: "get_serial", index: 8, arguments: "[]", result: "N/A"
03:20:56 component.component_api                  L0018 INFO   | Executing component API: "get_serial", index: 9, arguments: "[]", result: "N/A"
03:20:56 component.component_api                  L0018 INFO   | Executing component API: "get_serial", index: 10, arguments: "[]", result: "N/A"
03:20:56 component.component_api                  L0018 INFO   | Executing component API: "get_serial", index: 11, arguments: "[]", result: "N/A"
03:20:56 component.component_api                  L0018 INFO   | Executing component API: "get_serial", index: 12, arguments: "[]", result: "N/A"
PASSED                                                                   [ 30%]
------------------------------ live log teardown -------------------------------
03:21:01 loganalyzer._verify_log                  L0140 INFO   | result_str 
'match: 0
expected_match: 0
expected_missing_match: 0
'

platform_tests/api/test_component.py::TestComponentApi::test_get_status[as9736-64d-3] 
-------------------------------- live log setup --------------------------------
03:21:01 __init__.set_default                     L0053 INFO   | Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
03:21:01 __init__.check_test_completeness         L0152 INFO   | Test has no defined levels. Continue without test completeness checks
03:21:01 __init__.loganalyzer                     L0045 INFO   | Log analyzer is disabled
03:21:04 __init__._fixture_func_decorator         L0069 INFO   | -------------------- fixture setup setup starts --------------------
03:21:04 chassis.chassis_api                      L0019 INFO   | Executing chassis API: "get_num_components", arguments: "[]", result: "13"
03:21:04 __init__._fixture_func_decorator         L0076 INFO   | -------------------- fixture setup setup ends --------------------
-------------------------------- live log call ---------------------------------
03:21:04 component.component_api                  L0018 INFO   | Executing component API: "get_status", index: 0, arguments: "[]", result: "True"
03:21:04 component.component_api                  L0018 INFO   | Executing component API: "get_status", index: 1, arguments: "[]", result: "True"
03:21:04 component.component_api                  L0018 INFO   | Executing component API: "get_status", index: 2, arguments: "[]", result: "True"
03:21:04 component.component_api                  L0018 INFO   | Executing component API: "get_status", index: 3, arguments: "[]", result: "True"
03:21:04 component.component_api                  L0018 INFO   | Executing component API: "get_status", index: 4, arguments: "[]", result: "True"
03:21:04 component.component_api                  L0018 INFO   | Executing component API: "get_status", index: 5, arguments: "[]", result: "True"
03:21:04 component.component_api                  L0018 INFO   | Executing component API: "get_status", index: 6, arguments: "[]", result: "True"
03:21:04 component.component_api                  L0018 INFO   | Executing component API: "get_status", index: 7, arguments: "[]", result: "True"
03:21:04 component.component_api                  L0018 INFO   | Executing component API: "get_status", index: 8, arguments: "[]", result: "True"
03:21:04 component.component_api                  L0018 INFO   | Executing component API: "get_status", index: 9, arguments: "[]", result: "True"
03:21:04 component.component_api                  L0018 INFO   | Executing component API: "get_status", index: 10, arguments: "[]", result: "True"
03:21:04 component.component_api                  L0018 INFO   | Executing component API: "get_status", index: 11, arguments: "[]", result: "True"
03:21:04 component.component_api                  L0018 INFO   | Executing component API: "get_status", index: 12, arguments: "[]", result: "True"
PASSED                                                                   [ 38%]
------------------------------ live log teardown -------------------------------
03:21:09 loganalyzer._verify_log                  L0140 INFO   | result_str 
'match: 0
expected_match: 0
expected_missing_match: 0
'

platform_tests/api/test_component.py::TestComponentApi::test_get_position_in_parent[as9736-64d-3] 
-------------------------------- live log setup --------------------------------
03:21:09 __init__.set_default                     L0053 INFO   | Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
03:21:09 __init__.check_test_completeness         L0152 INFO   | Test has no defined levels. Continue without test completeness checks
03:21:09 __init__.loganalyzer                     L0045 INFO   | Log analyzer is disabled
03:21:12 __init__._fixture_func_decorator         L0069 INFO   | -------------------- fixture setup setup starts --------------------
03:21:12 chassis.chassis_api                      L0019 INFO   | Executing chassis API: "get_num_components", arguments: "[]", result: "13"
03:21:12 __init__._fixture_func_decorator         L0076 INFO   | -------------------- fixture setup setup ends --------------------
-------------------------------- live log call ---------------------------------
03:21:12 component.component_api                  L0018 INFO   | Executing component API: "get_position_in_parent", index: 0, arguments: "[]", result: "-1"
03:21:12 component.component_api                  L0018 INFO   | Executing component API: "get_position_in_parent", index: 1, arguments: "[]", result: "-1"
03:21:12 component.component_api                  L0018 INFO   | Executing component API: "get_position_in_parent", index: 2, arguments: "[]", result: "-1"
03:21:12 component.component_api                  L0018 INFO   | Executing component API: "get_position_in_parent", index: 3, arguments: "[]", result: "-1"
03:21:12 component.component_api                  L0018 INFO   | Executing component API: "get_position_in_parent", index: 4, arguments: "[]", result: "-1"
03:21:12 component.component_api                  L0018 INFO   | Executing component API: "get_position_in_parent", index: 5, arguments: "[]", result: "-1"
03:21:12 component.component_api                  L0018 INFO   | Executing component API: "get_position_in_parent", index: 6, arguments: "[]", result: "-1"
03:21:12 component.component_api                  L0018 INFO   | Executing component API: "get_position_in_parent", index: 7, arguments: "[]", result: "-1"
03:21:12 component.component_api                  L0018 INFO   | Executing component API: "get_position_in_parent", index: 8, arguments: "[]", result: "-1"
03:21:12 component.component_api                  L0018 INFO   | Executing component API: "get_position_in_parent", index: 9, arguments: "[]", result: "-1"
03:21:12 component.component_api                  L0018 INFO   | Executing component API: "get_position_in_parent", index: 10, arguments: "[]", result: "-1"
03:21:12 component.component_api                  L0018 INFO   | Executing component API: "get_position_in_parent", index: 11, arguments: "[]", result: "-1"
03:21:12 component.component_api                  L0018 INFO   | Executing component API: "get_position_in_parent", index: 12, arguments: "[]", result: "-1"
PASSED                                                                   [ 46%]
------------------------------ live log teardown -------------------------------
03:21:17 loganalyzer._verify_log                  L0140 INFO   | result_str 
'match: 0
expected_match: 0
expected_missing_match: 0
'

platform_tests/api/test_component.py::TestComponentApi::test_is_replaceable[as9736-64d-3] 
-------------------------------- live log setup --------------------------------
03:21:17 __init__.set_default                     L0053 INFO   | Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
03:21:17 __init__.check_test_completeness         L0152 INFO   | Test has no defined levels. Continue without test completeness checks
03:21:17 __init__.loganalyzer                     L0045 INFO   | Log analyzer is disabled
03:21:20 __init__._fixture_func_decorator         L0069 INFO   | -------------------- fixture setup setup starts --------------------
03:21:20 chassis.chassis_api                      L0019 INFO   | Executing chassis API: "get_num_components", arguments: "[]", result: "13"
03:21:20 __init__._fixture_func_decorator         L0076 INFO   | -------------------- fixture setup setup ends --------------------
-------------------------------- live log call ---------------------------------
03:21:20 component.component_api                  L0018 INFO   | Executing component API: "is_replaceable", index: 0, arguments: "[]", result: "False"
03:21:20 component.component_api                  L0018 INFO   | Executing component API: "is_replaceable", index: 1, arguments: "[]", result: "False"
03:21:20 component.component_api                  L0018 INFO   | Executing component API: "is_replaceable", index: 2, arguments: "[]", result: "False"
03:21:20 component.component_api                  L0018 INFO   | Executing component API: "is_replaceable", index: 3, arguments: "[]", result: "False"
03:21:20 component.component_api                  L0018 INFO   | Executing component API: "is_replaceable", index: 4, arguments: "[]", result: "False"
03:21:20 component.component_api                  L0018 INFO   | Executing component API: "is_replaceable", index: 5, arguments: "[]", result: "False"
03:21:20 component.component_api                  L0018 INFO   | Executing component API: "is_replaceable", index: 6, arguments: "[]", result: "False"
03:21:20 component.component_api                  L0018 INFO   | Executing component API: "is_replaceable", index: 7, arguments: "[]", result: "False"
03:21:20 component.component_api                  L0018 INFO   | Executing component API: "is_replaceable", index: 8, arguments: "[]", result: "False"
03:21:20 component.component_api                  L0018 INFO   | Executing component API: "is_replaceable", index: 9, arguments: "[]", result: "False"
03:21:20 component.component_api                  L0018 INFO   | Executing component API: "is_replaceable", index: 10, arguments: "[]", result: "False"
03:21:20 component.component_api                  L0018 INFO   | Executing component API: "is_replaceable", index: 11, arguments: "[]", result: "False"
03:21:20 component.component_api                  L0018 INFO   | Executing component API: "is_replaceable", index: 12, arguments: "[]", result: "False"
PASSED                                                                   [ 53%]
------------------------------ live log teardown -------------------------------
03:21:25 loganalyzer._verify_log                  L0140 INFO   | result_str 
'match: 0
expected_match: 0
expected_missing_match: 0
'

platform_tests/api/test_component.py::TestComponentApi::test_get_description[as9736-64d-3] 
-------------------------------- live log setup --------------------------------
03:21:25 __init__.set_default                     L0053 INFO   | Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
03:21:25 __init__.check_test_completeness         L0152 INFO   | Test has no defined levels. Continue without test completeness checks
03:21:25 __init__.loganalyzer                     L0045 INFO   | Log analyzer is disabled
03:21:28 __init__._fixture_func_decorator         L0069 INFO   | -------------------- fixture setup setup starts --------------------
03:21:28 chassis.chassis_api                      L0019 INFO   | Executing chassis API: "get_num_components", arguments: "[]", result: "13"
03:21:28 __init__._fixture_func_decorator         L0076 INFO   | -------------------- fixture setup setup ends --------------------
-------------------------------- live log call ---------------------------------
03:21:28 component.component_api                  L0018 INFO   | Executing component API: "get_description", index: 0, arguments: "[]", result: "SYSTEM CPLD"
03:21:28 component.component_api                  L0018 INFO   | Executing component API: "get_description", index: 1, arguments: "[]", result: "Fan Control Module CPLD"
03:21:28 component.component_api                  L0018 INFO   | Executing component API: "get_description", index: 2, arguments: "[]", result: "Power Supply Unit CPLD"
03:21:28 component.component_api                  L0018 INFO   | Executing component API: "get_description", index: 3, arguments: "[]", result: "Switch Control Module CPLD"
03:21:28 component.component_api                  L0018 INFO   | Executing component API: "get_description", index: 4, arguments: "[]", result: "Upper Daughter Board CPLD1"
03:21:28 component.component_api                  L0018 INFO   | Executing component API: "get_description", index: 5, arguments: "[]", result: "Upper Daughter Board CPLD2"
03:21:28 component.component_api                  L0018 INFO   | Executing component API: "get_description", index: 6, arguments: "[]", result: "Lower Daughter Board CPLD1"
03:21:28 component.component_api                  L0018 INFO   | Executing component API: "get_description", index: 7, arguments: "[]", result: "Lower Daughter Board CPLD2"
03:21:28 component.component_api                  L0018 INFO   | Executing component API: "get_description", index: 8, arguments: "[]", result: "Upper Daughter Board FPGA"
03:21:28 component.component_api                  L0018 INFO   | Executing component API: "get_description", index: 9, arguments: "[]", result: "Lower Daughter Board FPGA"
03:21:28 component.component_api                  L0018 INFO   | Executing component API: "get_description", index: 10, arguments: "[]", result: "Switch Main Board FPGA"
03:21:28 component.component_api                  L0018 INFO   | Executing component API: "get_description", index: 11, arguments: "[]", result: "Basic Input/Output System"
03:21:28 component.component_api                  L0018 INFO   | Executing component API: "get_description", index: 12, arguments: "[]", result: "Solid State Drive"
PASSED                                                                   [ 61%]
------------------------------ live log teardown -------------------------------
03:21:32 loganalyzer._verify_log                  L0140 INFO   | result_str 
'match: 0
expected_match: 0
expected_missing_match: 0
'

platform_tests/api/test_component.py::TestComponentApi::test_get_firmware_version[as9736-64d-3] 
-------------------------------- live log setup --------------------------------
03:21:32 __init__.set_default                     L0053 INFO   | Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
03:21:32 __init__.check_test_completeness         L0152 INFO   | Test has no defined levels. Continue without test completeness checks
03:21:32 __init__.loganalyzer                     L0045 INFO   | Log analyzer is disabled
03:21:35 __init__._fixture_func_decorator         L0069 INFO   | -------------------- fixture setup setup starts --------------------
03:21:35 chassis.chassis_api                      L0019 INFO   | Executing chassis API: "get_num_components", arguments: "[]", result: "13"
03:21:35 __init__._fixture_func_decorator         L0076 INFO   | -------------------- fixture setup setup ends --------------------
-------------------------------- live log call ---------------------------------
03:21:35 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_version", index: 0, arguments: "[]", result: "1.23"
03:21:35 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_version", index: 1, arguments: "[]", result: "1.23"
03:21:35 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_version", index: 2, arguments: "[]", result: "1.17"
03:21:35 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_version", index: 3, arguments: "[]", result: "1.23"
03:21:35 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_version", index: 4, arguments: "[]", result: "3.0"
03:21:35 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_version", index: 5, arguments: "[]", result: "3.0"
03:21:35 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_version", index: 6, arguments: "[]", result: "3.0"
03:21:35 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_version", index: 7, arguments: "[]", result: "3.0"
03:21:35 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_version", index: 8, arguments: "[]", result: "1.22"
03:21:35 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_version", index: 9, arguments: "[]", result: "1.22"
03:21:35 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_version", index: 10, arguments: "[]", result: "1.22"
03:21:35 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_version", index: 11, arguments: "[]", result: "v50.02.03.00"
03:21:36 __init__.pytest_runtest_call             L0040 ERROR  | Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/_pytest/python.py", line 1788, in runtest
    self.ihook.pytest_pyfunc_call(pyfuncitem=self)
  File "/usr/local/lib/python3.8/dist-packages/pluggy/_hooks.py", line 501, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
  File "/usr/local/lib/python3.8/dist-packages/pluggy/_manager.py", line 119, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
  File "/usr/local/lib/python3.8/dist-packages/pluggy/_callers.py", line 138, in _multicall
    raise exception.with_traceback(exception.__traceback__)
  File "/usr/local/lib/python3.8/dist-packages/pluggy/_callers.py", line 102, in _multicall
    res = hook_impl.function(*args)
  File "/usr/local/lib/python3.8/dist-packages/_pytest/python.py", line 194, in pytest_pyfunc_call
    result = testfunction(**testargs)
  File "/var/ubuntu/sonic-mgmt/tests/platform_tests/api/test_component.py", line 154, in test_get_firmware_version
    fw_version = component.get_firmware_version(platform_api_conn, i)
  File "/var/ubuntu/sonic-mgmt/tests/common/helpers/platform_api/component.py", line 64, in get_firmware_version
    return component_api(conn, comp_idx, 'get_firmware_version')
  File "/var/ubuntu/sonic-mgmt/tests/common/helpers/platform_api/component.py", line 16, in component_api
    resp = conn.getresponse()
  File "/usr/lib/python3.8/http/client.py", line 1348, in getresponse
    response.begin()
  File "/usr/lib/python3.8/http/client.py", line 316, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.8/http/client.py", line 285, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response

FAILED                                                                   [ 69%]
------------------------------ live log teardown -------------------------------
03:21:41 loganalyzer._verify_log                  L0140 INFO   | result_str 
'match: 0
expected_match: 0
expected_missing_match: 0
'

platform_tests/api/test_component.py::TestComponentApi::test_get_available_firmware_version[as9736-64d-3] 
-------------------------------- live log setup --------------------------------
03:21:41 __init__.set_default                     L0053 INFO   | Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
03:21:41 __init__.check_test_completeness         L0152 INFO   | Test has no defined levels. Continue without test completeness checks
03:21:41 __init__.loganalyzer                     L0045 INFO   | Log analyzer is disabled
03:21:44 __init__._fixture_func_decorator         L0069 INFO   | -------------------- fixture setup setup starts --------------------
03:21:44 chassis.chassis_api                      L0019 INFO   | Executing chassis API: "get_num_components", arguments: "[]", result: "13"
03:21:44 __init__._fixture_func_decorator         L0076 INFO   | -------------------- fixture setup setup ends --------------------
-------------------------------- live log call ---------------------------------
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 0, arguments: "['current']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 0, arguments: "['next']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 1, arguments: "['current']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 1, arguments: "['next']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 2, arguments: "['current']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 2, arguments: "['next']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 3, arguments: "['current']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 3, arguments: "['next']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 4, arguments: "['current']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 4, arguments: "['next']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 5, arguments: "['current']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 5, arguments: "['next']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 6, arguments: "['current']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 6, arguments: "['next']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 7, arguments: "['current']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 7, arguments: "['next']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 8, arguments: "['current']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 8, arguments: "['next']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 9, arguments: "['current']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 9, arguments: "['next']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 10, arguments: "['current']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 10, arguments: "['next']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 11, arguments: "['current']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 11, arguments: "['next']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 12, arguments: "['current']", result: "None"
03:21:44 component.component_api                  L0018 INFO   | Executing component API: "get_available_firmware_version", index: 12, arguments: "['next']", result: "None"
FAILED                                                                   [ 76%]
------------------------------ live log teardown -------------------------------
03:21:48 loganalyzer._verify_log                  L0140 INFO   | result_str 
'match: 1
expected_match: 0
expected_missing_match: 0

Match Messages:
2024 Sep  5 03:21:44.931413 as9736-64d-3 WARNING pmon#platform_api_server.py: API 'get_available_firmware_version' not implemented
'

platform_tests/api/test_component.py::TestComponentApi::test_get_available_firmware_version[as9736-64d-3] ERROR [ 76%]
platform_tests/api/test_component.py::TestComponentApi::test_get_firmware_update_notification[as9736-64d-3] 
-------------------------------- live log setup --------------------------------
03:21:48 __init__.set_default                     L0053 INFO   | Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
03:21:48 __init__.check_test_completeness         L0152 INFO   | Test has no defined levels. Continue without test completeness checks
03:21:48 __init__.loganalyzer                     L0045 INFO   | Log analyzer is disabled
03:21:51 __init__._fixture_func_decorator         L0069 INFO   | -------------------- fixture setup setup starts --------------------
03:21:51 chassis.chassis_api                      L0019 INFO   | Executing chassis API: "get_num_components", arguments: "[]", result: "13"
03:21:51 __init__._fixture_func_decorator         L0076 INFO   | -------------------- fixture setup setup ends --------------------
-------------------------------- live log call ---------------------------------
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 0, arguments: "['current']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 0, arguments: "['next']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 1, arguments: "['current']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 1, arguments: "['next']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 2, arguments: "['current']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 2, arguments: "['next']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 3, arguments: "['current']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 3, arguments: "['next']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 4, arguments: "['current']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 4, arguments: "['next']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 5, arguments: "['current']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 5, arguments: "['next']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 6, arguments: "['current']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 6, arguments: "['next']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 7, arguments: "['current']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 7, arguments: "['next']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 8, arguments: "['current']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 8, arguments: "['next']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 9, arguments: "['current']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 9, arguments: "['next']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 10, arguments: "['current']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 10, arguments: "['next']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 11, arguments: "['current']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 11, arguments: "['next']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 12, arguments: "['current']", result: "None"
03:21:51 component.component_api                  L0018 INFO   | Executing component API: "get_firmware_update_notification", index: 12, arguments: "['next']", result: "None"
PASSED                                                                   [ 84%]
------------------------------ live log teardown -------------------------------
03:21:56 loganalyzer._verify_log                  L0140 INFO   | result_str 
'match: 0
expected_match: 0
expected_missing_match: 0
'

platform_tests/api/test_component.py::TestComponentApi::test_install_firmware[as9736-64d-3] 
-------------------------------- live log setup --------------------------------
03:21:56 __init__.set_default                     L0053 INFO   | Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
03:21:56 __init__.check_test_completeness         L0152 INFO   | Test has no defined levels. Continue without test completeness checks
03:21:56 __init__.loganalyzer                     L0045 INFO   | Log analyzer is disabled
03:21:59 __init__._fixture_func_decorator         L0069 INFO   | -------------------- fixture setup setup starts --------------------
03:21:59 chassis.chassis_api                      L0019 INFO   | Executing chassis API: "get_num_components", arguments: "[]", result: "13"
03:21:59 __init__._fixture_func_decorator         L0076 INFO   | -------------------- fixture setup setup ends --------------------
-------------------------------- live log call ---------------------------------
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 0, arguments: "['current']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 0, arguments: "['next']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 1, arguments: "['current']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 1, arguments: "['next']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 2, arguments: "['current']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 2, arguments: "['next']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 3, arguments: "['current']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 3, arguments: "['next']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 4, arguments: "['current']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 4, arguments: "['next']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 5, arguments: "['current']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 5, arguments: "['next']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 6, arguments: "['current']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 6, arguments: "['next']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 7, arguments: "['current']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 7, arguments: "['next']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 8, arguments: "['current']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 8, arguments: "['next']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 9, arguments: "['current']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 9, arguments: "['next']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 10, arguments: "['current']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 10, arguments: "['next']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 11, arguments: "['current']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 11, arguments: "['next']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 12, arguments: "['current']", result: "None"
03:21:59 component.component_api                  L0018 INFO   | Executing component API: "install_firmware", index: 12, arguments: "['next']", result: "None"
FAILED                                                                   [ 92%]
------------------------------ live log teardown -------------------------------
03:22:04 loganalyzer._verify_log                  L0140 INFO   | result_str 
'match: 1
expected_match: 0
expected_missing_match: 0

Match Messages:
2024 Sep  5 03:22:00.738900 as9736-64d-3 WARNING pmon#platform_api_server.py: API 'install_firmware' not implemented
'

platform_tests/api/test_component.py::TestComponentApi::test_install_firmware[as9736-64d-3] ERROR [ 92%]
platform_tests/api/test_component.py::TestComponentApi::test_update_firmware[as9736-64d-3] 
-------------------------------- live log setup --------------------------------
03:22:04 __init__.set_default                     L0053 INFO   | Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
03:22:04 __init__.check_test_completeness         L0152 INFO   | Test has no defined levels. Continue without test completeness checks
03:22:04 __init__.loganalyzer                     L0045 INFO   | Log analyzer is disabled
03:22:07 __init__._fixture_func_decorator         L0069 INFO   | -------------------- fixture setup setup starts --------------------
03:22:07 chassis.chassis_api                      L0019 INFO   | Executing chassis API: "get_num_components", arguments: "[]", result: "13"
03:22:07 __init__._fixture_func_decorator         L0076 INFO   | -------------------- fixture setup setup ends --------------------
-------------------------------- live log call ---------------------------------
03:22:07 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 0, arguments: "['current']", result: "None"
03:22:07 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 0, arguments: "['next']", result: "None"
03:22:07 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 1, arguments: "['current']", result: "None"
03:22:07 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 1, arguments: "['next']", result: "None"
03:22:07 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 2, arguments: "['current']", result: "None"
03:22:07 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 2, arguments: "['next']", result: "None"
03:22:07 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 3, arguments: "['current']", result: "None"
03:22:07 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 3, arguments: "['next']", result: "None"
03:22:07 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 4, arguments: "['current']", result: "None"
03:22:07 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 4, arguments: "['next']", result: "None"
03:22:07 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 5, arguments: "['current']", result: "None"
03:22:07 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 5, arguments: "['next']", result: "None"
03:22:07 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 6, arguments: "['current']", result: "None"
03:22:07 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 6, arguments: "['next']", result: "None"
03:22:07 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 7, arguments: "['current']", result: "None"
03:22:07 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 7, arguments: "['next']", result: "None"
03:22:08 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 8, arguments: "['current']", result: "None"
03:22:08 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 8, arguments: "['next']", result: "None"
03:22:08 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 9, arguments: "['current']", result: "None"
03:22:08 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 9, arguments: "['next']", result: "None"
03:22:08 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 10, arguments: "['current']", result: "None"
03:22:08 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 10, arguments: "['next']", result: "None"
03:22:08 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 11, arguments: "['current']", result: "None"
03:22:08 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 11, arguments: "['next']", result: "None"
03:22:08 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 12, arguments: "['current']", result: "None"
03:22:08 component.component_api                  L0018 INFO   | Executing component API: "update_firmware", index: 12, arguments: "['next']", result: "None"
FAILED                                                                   [100%]
------------------------------ live log teardown -------------------------------
03:22:13 loganalyzer._verify_log                  L0140 INFO   | result_str 
'match: 1
expected_match: 0
expected_missing_match: 0

Match Messages:
2024 Sep  5 03:22:08.883848 as9736-64d-3 WARNING pmon#platform_api_server.py: API 'update_firmware' not implemented
'

platform_tests/api/test_component.py::TestComponentApi::test_update_firmware[as9736-64d-3] ERROR [100%]

==================================== ERRORS ====================================
_ ERROR at teardown of TestComponentApi.test_get_available_firmware_version[as9736-64d-3] _

duthosts = [<MultiAsicSonicHost as9736-64d-3>]
enum_rand_one_per_hwsku_hostname = 'as9736-64d-3'

    @pytest.fixture(autouse=True)
    def check_not_implemented_warnings(duthosts, enum_rand_one_per_hwsku_hostname):
        duthost = duthosts[enum_rand_one_per_hwsku_hostname]
    
        loganalyzer = LogAnalyzer(ansible_host=duthost, marker_prefix="platformapi_test")
        marker = loganalyzer.init()
        yield
        loganalyzer.match_regex.extend(['WARNING pmon#platform_api_server.py: API.+not implemented'])
>       loganalyzer.analyze(marker)

platform_tests/api/conftest.py:109: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
common/plugins/loganalyzer/loganalyzer.py:409: in analyze
    self._verify_log(analyzer_summary)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.common.plugins.loganalyzer.loganalyzer.LogAnalyzer object at 0x7fc6a8555ee0>
result = {'expect_messages': {'/tmp/syslog.as9736-64d-3.2024-09-05-03:21:44': []}, 'match_files': {'/tmp/syslog.as9736-64d-3.20...e_firmware_version' not implemented\n"]}, 'total': {'expected_match': 0, 'expected_missing_match': 0, 'match': 1}, ...}

    def _verify_log(self, result):
        """
        Verify that total match and expected missing match equals to zero or raise exception otherwise.
        Verify that expected_match is not equal to zero
        when there is configured expected regexp in self.expect_regex list
        """
        if not result:
            raise LogAnalyzerError("Log analyzer failed - no result.")
        else:
            result_str = self._results_repr(result)
            logging.info("result_str \n'{}'".format(result_str))
    
            # When the system on DUT is in abnormal state, many error messages are generated in syslog.
            # It has possibility to make loganalyzer hang when calling "raise LogAnalyzerError(result_str)".
            #
            # To avoid loganalyzer hanging and test case timeout when processing these error messages,
            # truncate the tail of string when error message is longer than 100000 characters
            if len(result_str) > MAX_ERR_STR_LEN:
                result_str = result_str[:MAX_ERR_STR_LEN]
    
            if result["total"]["match"] != 0 or result["total"]["expected_missing_match"] != 0:
>               raise LogAnalyzerError(result_str)
E               tests.common.plugins.loganalyzer.loganalyzer.LogAnalyzerError: match: 1
E               expected_match: 0
E               expected_missing_match: 0
E               
E               Match Messages:
E               2024 Sep  5 03:21:44.931413 as9736-64d-3 WARNING pmon#platform_api_server.py: API 'get_available_firmware_version' not implemented

common/plugins/loganalyzer/loganalyzer.py:151: LogAnalyzerError
------------------------------ Captured log setup ------------------------------
INFO     root:__init__.py:53 Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
INFO     root:__init__.py:152 Test has no defined levels. Continue without test completeness checks
INFO     root:__init__.py:45 Log analyzer is disabled
INFO     root:__init__.py:69 -------------------- fixture setup setup starts --------------------
INFO     tests.common.helpers.platform_api.chassis:chassis.py:19 Executing chassis API: "get_num_components", arguments: "[]", result: "13"
INFO     root:__init__.py:76 -------------------- fixture setup setup ends --------------------
------------------------------ Captured log call -------------------------------
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 0, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 0, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 1, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 1, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 2, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 2, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 3, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 3, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 4, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 4, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 5, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 5, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 6, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 6, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 7, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 7, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 8, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 8, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 9, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 9, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 10, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 10, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 11, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 11, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 12, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 12, arguments: "['next']", result: "None"
---------------------------- Captured log teardown -----------------------------
INFO     root:loganalyzer.py:140 result_str 
'match: 1
expected_match: 0
expected_missing_match: 0

Match Messages:
2024 Sep  5 03:21:44.931413 as9736-64d-3 WARNING pmon#platform_api_server.py: API 'get_available_firmware_version' not implemented
'
__ ERROR at teardown of TestComponentApi.test_install_firmware[as9736-64d-3] ___

duthosts = [<MultiAsicSonicHost as9736-64d-3>]
enum_rand_one_per_hwsku_hostname = 'as9736-64d-3'

    @pytest.fixture(autouse=True)
    def check_not_implemented_warnings(duthosts, enum_rand_one_per_hwsku_hostname):
        duthost = duthosts[enum_rand_one_per_hwsku_hostname]
    
        loganalyzer = LogAnalyzer(ansible_host=duthost, marker_prefix="platformapi_test")
        marker = loganalyzer.init()
        yield
        loganalyzer.match_regex.extend(['WARNING pmon#platform_api_server.py: API.+not implemented'])
>       loganalyzer.analyze(marker)

platform_tests/api/conftest.py:109: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
common/plugins/loganalyzer/loganalyzer.py:409: in analyze
    self._verify_log(analyzer_summary)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.common.plugins.loganalyzer.loganalyzer.LogAnalyzer object at 0x7fc6a3e60880>
result = {'expect_messages': {'/tmp/syslog.as9736-64d-3.2024-09-05-03:21:59': []}, 'match_files': {'/tmp/syslog.as9736-64d-3.20... 'install_firmware' not implemented\n"]}, 'total': {'expected_match': 0, 'expected_missing_match': 0, 'match': 1}, ...}

    def _verify_log(self, result):
        """
        Verify that total match and expected missing match equals to zero or raise exception otherwise.
        Verify that expected_match is not equal to zero
        when there is configured expected regexp in self.expect_regex list
        """
        if not result:
            raise LogAnalyzerError("Log analyzer failed - no result.")
        else:
            result_str = self._results_repr(result)
            logging.info("result_str \n'{}'".format(result_str))
    
            # When the system on DUT is in abnormal state, many error messages are generated in syslog.
            # It has possibility to make loganalyzer hang when calling "raise LogAnalyzerError(result_str)".
            #
            # To avoid loganalyzer hanging and test case timeout when processing these error messages,
            # truncate the tail of string when error message is longer than 100000 characters
            if len(result_str) > MAX_ERR_STR_LEN:
                result_str = result_str[:MAX_ERR_STR_LEN]
    
            if result["total"]["match"] != 0 or result["total"]["expected_missing_match"] != 0:
>               raise LogAnalyzerError(result_str)
E               tests.common.plugins.loganalyzer.loganalyzer.LogAnalyzerError: match: 1
E               expected_match: 0
E               expected_missing_match: 0
E               
E               Match Messages:
E               2024 Sep  5 03:22:00.738900 as9736-64d-3 WARNING pmon#platform_api_server.py: API 'install_firmware' not implemented

common/plugins/loganalyzer/loganalyzer.py:151: LogAnalyzerError
------------------------------ Captured log setup ------------------------------
INFO     root:__init__.py:53 Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
INFO     root:__init__.py:152 Test has no defined levels. Continue without test completeness checks
INFO     root:__init__.py:45 Log analyzer is disabled
INFO     root:__init__.py:69 -------------------- fixture setup setup starts --------------------
INFO     tests.common.helpers.platform_api.chassis:chassis.py:19 Executing chassis API: "get_num_components", arguments: "[]", result: "13"
INFO     root:__init__.py:76 -------------------- fixture setup setup ends --------------------
------------------------------ Captured log call -------------------------------
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 0, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 0, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 1, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 1, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 2, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 2, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 3, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 3, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 4, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 4, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 5, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 5, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 6, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 6, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 7, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 7, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 8, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 8, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 9, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 9, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 10, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 10, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 11, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 11, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 12, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 12, arguments: "['next']", result: "None"
---------------------------- Captured log teardown -----------------------------
INFO     root:loganalyzer.py:140 result_str 
'match: 1
expected_match: 0
expected_missing_match: 0

Match Messages:
2024 Sep  5 03:22:00.738900 as9736-64d-3 WARNING pmon#platform_api_server.py: API 'install_firmware' not implemented
'
___ ERROR at teardown of TestComponentApi.test_update_firmware[as9736-64d-3] ___

duthosts = [<MultiAsicSonicHost as9736-64d-3>]
enum_rand_one_per_hwsku_hostname = 'as9736-64d-3'

    @pytest.fixture(autouse=True)
    def check_not_implemented_warnings(duthosts, enum_rand_one_per_hwsku_hostname):
        duthost = duthosts[enum_rand_one_per_hwsku_hostname]
    
        loganalyzer = LogAnalyzer(ansible_host=duthost, marker_prefix="platformapi_test")
        marker = loganalyzer.init()
        yield
        loganalyzer.match_regex.extend(['WARNING pmon#platform_api_server.py: API.+not implemented'])
>       loganalyzer.analyze(marker)

platform_tests/api/conftest.py:109: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
common/plugins/loganalyzer/loganalyzer.py:409: in analyze
    self._verify_log(analyzer_summary)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.common.plugins.loganalyzer.loganalyzer.LogAnalyzer object at 0x7fc6a3d26310>
result = {'expect_messages': {'/tmp/syslog.as9736-64d-3.2024-09-05-03:22:08': []}, 'match_files': {'/tmp/syslog.as9736-64d-3.20...I 'update_firmware' not implemented\n"]}, 'total': {'expected_match': 0, 'expected_missing_match': 0, 'match': 1}, ...}

    def _verify_log(self, result):
        """
        Verify that total match and expected missing match equals to zero or raise exception otherwise.
        Verify that expected_match is not equal to zero
        when there is configured expected regexp in self.expect_regex list
        """
        if not result:
            raise LogAnalyzerError("Log analyzer failed - no result.")
        else:
            result_str = self._results_repr(result)
            logging.info("result_str \n'{}'".format(result_str))
    
            # When the system on DUT is in abnormal state, many error messages are generated in syslog.
            # It has possibility to make loganalyzer hang when calling "raise LogAnalyzerError(result_str)".
            #
            # To avoid loganalyzer hanging and test case timeout when processing these error messages,
            # truncate the tail of string when error message is longer than 100000 characters
            if len(result_str) > MAX_ERR_STR_LEN:
                result_str = result_str[:MAX_ERR_STR_LEN]
    
            if result["total"]["match"] != 0 or result["total"]["expected_missing_match"] != 0:
>               raise LogAnalyzerError(result_str)
E               tests.common.plugins.loganalyzer.loganalyzer.LogAnalyzerError: match: 1
E               expected_match: 0
E               expected_missing_match: 0
E               
E               Match Messages:
E               2024 Sep  5 03:22:08.883848 as9736-64d-3 WARNING pmon#platform_api_server.py: API 'update_firmware' not implemented

common/plugins/loganalyzer/loganalyzer.py:151: LogAnalyzerError
------------------------------ Captured log setup ------------------------------
INFO     root:__init__.py:53 Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
INFO     root:__init__.py:152 Test has no defined levels. Continue without test completeness checks
INFO     root:__init__.py:45 Log analyzer is disabled
INFO     root:__init__.py:69 -------------------- fixture setup setup starts --------------------
INFO     tests.common.helpers.platform_api.chassis:chassis.py:19 Executing chassis API: "get_num_components", arguments: "[]", result: "13"
INFO     root:__init__.py:76 -------------------- fixture setup setup ends --------------------
------------------------------ Captured log call -------------------------------
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 0, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 0, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 1, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 1, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 2, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 2, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 3, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 3, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 4, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 4, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 5, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 5, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 6, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 6, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 7, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 7, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 8, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 8, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 9, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 9, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 10, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 10, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 11, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 11, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 12, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 12, arguments: "['next']", result: "None"
---------------------------- Captured log teardown -----------------------------
INFO     root:loganalyzer.py:140 result_str 
'match: 1
expected_match: 0
expected_missing_match: 0

Match Messages:
2024 Sep  5 03:22:08.883848 as9736-64d-3 WARNING pmon#platform_api_server.py: API 'update_firmware' not implemented
'
=================================== FAILURES ===================================
___________ TestComponentApi.test_get_firmware_version[as9736-64d-3] ___________

self = <tests.platform_tests.api.test_component.TestComponentApi object at 0x7fc6aa7a70d0>
duthosts = [<MultiAsicSonicHost as9736-64d-3>]
enum_rand_one_per_hwsku_hostname = 'as9736-64d-3'
localhost = <tests.common.devices.local.Localhost object at 0x7fc6a91ff730>
platform_api_conn = <http.client.HTTPConnection object at 0x7fc6a3c7deb0>

    def test_get_firmware_version(self, duthosts, enum_rand_one_per_hwsku_hostname, localhost, platform_api_conn):
    
        for i in range(self.num_components):
>           fw_version = component.get_firmware_version(platform_api_conn, i)

platform_tests/api/test_component.py:154: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
common/helpers/platform_api/component.py:64: in get_firmware_version
    return component_api(conn, comp_idx, 'get_firmware_version')
common/helpers/platform_api/component.py:16: in component_api
    resp = conn.getresponse()
/usr/lib/python3.8/http/client.py:1348: in getresponse
    response.begin()
/usr/lib/python3.8/http/client.py:316: in begin
    version, status, reason = self._read_status()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <http.client.HTTPResponse object at 0x7fc6a3c7d3a0>

    def _read_status(self):
        line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
        if len(line) > _MAXLINE:
            raise LineTooLong("status line")
        if self.debuglevel > 0:
            print("reply:", repr(line))
        if not line:
            # Presumably, the server closed the connection before
            # sending a valid response.
>           raise RemoteDisconnected("Remote end closed connection without"
                                     " response")
E           http.client.RemoteDisconnected: Remote end closed connection without response

/usr/lib/python3.8/http/client.py:285: RemoteDisconnected
------------------------------ Captured log setup ------------------------------
INFO     root:__init__.py:53 Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
INFO     root:__init__.py:152 Test has no defined levels. Continue without test completeness checks
INFO     root:__init__.py:45 Log analyzer is disabled
INFO     root:__init__.py:69 -------------------- fixture setup setup starts --------------------
INFO     tests.common.helpers.platform_api.chassis:chassis.py:19 Executing chassis API: "get_num_components", arguments: "[]", result: "13"
INFO     root:__init__.py:76 -------------------- fixture setup setup ends --------------------
------------------------------ Captured log call -------------------------------
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_firmware_version", index: 0, arguments: "[]", result: "1.23"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_firmware_version", index: 1, arguments: "[]", result: "1.23"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_firmware_version", index: 2, arguments: "[]", result: "1.17"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_firmware_version", index: 3, arguments: "[]", result: "1.23"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_firmware_version", index: 4, arguments: "[]", result: "3.0"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_firmware_version", index: 5, arguments: "[]", result: "3.0"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_firmware_version", index: 6, arguments: "[]", result: "3.0"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_firmware_version", index: 7, arguments: "[]", result: "3.0"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_firmware_version", index: 8, arguments: "[]", result: "1.22"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_firmware_version", index: 9, arguments: "[]", result: "1.22"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_firmware_version", index: 10, arguments: "[]", result: "1.22"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_firmware_version", index: 11, arguments: "[]", result: "v50.02.03.00"
ERROR    root:__init__.py:40 Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/_pytest/python.py", line 1788, in runtest
    self.ihook.pytest_pyfunc_call(pyfuncitem=self)
  File "/usr/local/lib/python3.8/dist-packages/pluggy/_hooks.py", line 501, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
  File "/usr/local/lib/python3.8/dist-packages/pluggy/_manager.py", line 119, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
  File "/usr/local/lib/python3.8/dist-packages/pluggy/_callers.py", line 138, in _multicall
    raise exception.with_traceback(exception.__traceback__)
  File "/usr/local/lib/python3.8/dist-packages/pluggy/_callers.py", line 102, in _multicall
    res = hook_impl.function(*args)
  File "/usr/local/lib/python3.8/dist-packages/_pytest/python.py", line 194, in pytest_pyfunc_call
    result = testfunction(**testargs)
  File "/var/ubuntu/sonic-mgmt/tests/platform_tests/api/test_component.py", line 154, in test_get_firmware_version
    fw_version = component.get_firmware_version(platform_api_conn, i)
  File "/var/ubuntu/sonic-mgmt/tests/common/helpers/platform_api/component.py", line 64, in get_firmware_version
    return component_api(conn, comp_idx, 'get_firmware_version')
  File "/var/ubuntu/sonic-mgmt/tests/common/helpers/platform_api/component.py", line 16, in component_api
    resp = conn.getresponse()
  File "/usr/lib/python3.8/http/client.py", line 1348, in getresponse
    response.begin()
  File "/usr/lib/python3.8/http/client.py", line 316, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.8/http/client.py", line 285, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response
---------------------------- Captured log teardown -----------------------------
INFO     root:loganalyzer.py:140 result_str 
'match: 0
expected_match: 0
expected_missing_match: 0
'
______ TestComponentApi.test_get_available_firmware_version[as9736-64d-3] ______

self = <tests.platform_tests.api.test_component.TestComponentApi object at 0x7fc6aa7a71c0>
duthosts = [<MultiAsicSonicHost as9736-64d-3>]
enum_rand_one_per_hwsku_hostname = 'as9736-64d-3'
localhost = <tests.common.devices.local.Localhost object at 0x7fc6a91ff730>
platform_api_conn = <http.client.HTTPConnection object at 0x7fc6a3d615e0>

    def test_get_available_firmware_version(self, duthosts, enum_rand_one_per_hwsku_hostname,
                                            localhost, platform_api_conn):
        duthost = duthosts[enum_rand_one_per_hwsku_hostname]
        skip_release_for_platform(duthost, ["202012", "201911", "201811"], ["nokia"])
    
        for i in range(self.num_components):
            for image in image_list:
                avail_fw_version = component.get_available_firmware_version(platform_api_conn, i, image)
                if self.expect(avail_fw_version is not None,
                               "Component {}: Failed to retrieve available firmware version from image {}"
                               .format(i, image)):
                    self.expect(isinstance(avail_fw_version, STRING_TYPE),
                                "Component {}: Available Firmware version appears to be incorrect from image {}"
                                .format(i, image))
>       self.assert_expectations()

platform_tests/api/test_component.py:174: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.platform_tests.api.test_component.TestComponentApi object at 0x7fc6aa7a71c0>

    def assert_expectations(self):
        """
        Checks if there are any error messages waiting in failed_expectations.
        If so, it will fail an assert and pass a concatenation of all pending
        error messages. It will also clear failed_expectations to prepare it
        for the next use.
        """
        if len(self.failed_expectations) > 0:
            err_msg = ", ".join(self.failed_expectations)
            # TODO: When we move to Python 3.3+, we can use self.failed_expectations.clear() instead
            del self.failed_expectations[:]
>           pytest_assert(False, err_msg)
E           Failed: Component 0: Failed to retrieve available firmware version from image current, Component 0: Failed to retrieve available firmware version from image next, Component 1: Failed to retrieve available firmware version from image current, Component 1: Failed to retrieve available firmware version from image next, Component 2: Failed to retrieve available firmware version from image current, Component 2: Failed to retrieve available firmware version from image next, Component 3: Failed to retrieve available firmware version from image current, Component 3: Failed to retrieve available firmware version from image next, Component 4: Failed to retrieve available firmware version from image current, Component 4: Failed to retrieve available firmware version from image next, Component 5: Failed to retrieve available firmware version from image current, Component 5: Failed to retrieve available firmware version from image next, Component 6: Failed to retrieve available firmware version from image current, Component 6: Failed to retrieve available firmware version from image next, Component 7: Failed to retrieve available firmware version from image current, Component 7: Failed to retrieve available firmware version from image next, Component 8: Failed to retrieve available firmware version from image current, Component 8: Failed to retrieve available firmware version from image next, Component 9: Failed to retrieve available firmware version from image current, Component 9: Failed to retrieve available firmware version from image next, Component 10: Failed to retrieve available firmware version from image current, Component 10: Failed to retrieve available firmware version from image next, Component 11: Failed to retrieve available firmware version from image current, Component 11: Failed to retrieve available firmware version from image next, Component 12: Failed to retrieve available firmware version from image current, Component 12: Failed to retrieve available firmware version from image next

platform_tests/api/platform_api_test_base.py:46: Failed
------------------------------ Captured log setup ------------------------------
INFO     root:__init__.py:53 Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
INFO     root:__init__.py:152 Test has no defined levels. Continue without test completeness checks
INFO     root:__init__.py:45 Log analyzer is disabled
INFO     root:__init__.py:69 -------------------- fixture setup setup starts --------------------
INFO     tests.common.helpers.platform_api.chassis:chassis.py:19 Executing chassis API: "get_num_components", arguments: "[]", result: "13"
INFO     root:__init__.py:76 -------------------- fixture setup setup ends --------------------
------------------------------ Captured log call -------------------------------
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 0, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 0, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 1, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 1, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 2, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 2, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 3, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 3, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 4, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 4, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 5, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 5, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 6, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 6, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 7, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 7, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 8, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 8, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 9, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 9, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 10, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 10, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 11, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 11, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 12, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "get_available_firmware_version", index: 12, arguments: "['next']", result: "None"
_____________ TestComponentApi.test_install_firmware[as9736-64d-3] _____________

self = <tests.platform_tests.api.test_component.TestComponentApi object at 0x7fc6aa7ac0a0>
duthosts = [<MultiAsicSonicHost as9736-64d-3>]
enum_rand_one_per_hwsku_hostname = 'as9736-64d-3'
localhost = <tests.common.devices.local.Localhost object at 0x7fc6a91ff730>
platform_api_conn = <http.client.HTTPConnection object at 0x7fc6a3ebd370>

    def test_install_firmware(self, duthosts, enum_rand_one_per_hwsku_hostname, localhost, platform_api_conn):
        duthost = duthosts[enum_rand_one_per_hwsku_hostname]
        skip_release_for_platform(duthost, ["202012", "201911", "201811"], ["nokia"])
    
        for i in range(self.num_components):
            for image in image_list:
                install_status = component.install_firmware(platform_api_conn, i, image)
                if self.expect(install_status is not None,
                               "Component {}: Failed to install firmware from image {}".format(i, image)):
                    self.expect(isinstance(install_status, bool),
                                "Component {}: Return of Firmware installation appears to be incorrect from image {}"
                                .format(i, image))
>       self.assert_expectations()

platform_tests/api/test_component.py:202: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.platform_tests.api.test_component.TestComponentApi object at 0x7fc6aa7ac0a0>

    def assert_expectations(self):
        """
        Checks if there are any error messages waiting in failed_expectations.
        If so, it will fail an assert and pass a concatenation of all pending
        error messages. It will also clear failed_expectations to prepare it
        for the next use.
        """
        if len(self.failed_expectations) > 0:
            err_msg = ", ".join(self.failed_expectations)
            # TODO: When we move to Python 3.3+, we can use self.failed_expectations.clear() instead
            del self.failed_expectations[:]
>           pytest_assert(False, err_msg)
E           Failed: Component 0: Failed to install firmware from image current, Component 0: Failed to install firmware from image next, Component 1: Failed to install firmware from image current, Component 1: Failed to install firmware from image next, Component 2: Failed to install firmware from image current, Component 2: Failed to install firmware from image next, Component 3: Failed to install firmware from image current, Component 3: Failed to install firmware from image next, Component 4: Failed to install firmware from image current, Component 4: Failed to install firmware from image next, Component 5: Failed to install firmware from image current, Component 5: Failed to install firmware from image next, Component 6: Failed to install firmware from image current, Component 6: Failed to install firmware from image next, Component 7: Failed to install firmware from image current, Component 7: Failed to install firmware from image next, Component 8: Failed to install firmware from image current, Component 8: Failed to install firmware from image next, Component 9: Failed to install firmware from image current, Component 9: Failed to install firmware from image next, Component 10: Failed to install firmware from image current, Component 10: Failed to install firmware from image next, Component 11: Failed to install firmware from image current, Component 11: Failed to install firmware from image next, Component 12: Failed to install firmware from image current, Component 12: Failed to install firmware from image next

platform_tests/api/platform_api_test_base.py:46: Failed
------------------------------ Captured log setup ------------------------------
INFO     root:__init__.py:53 Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
INFO     root:__init__.py:152 Test has no defined levels. Continue without test completeness checks
INFO     root:__init__.py:45 Log analyzer is disabled
INFO     root:__init__.py:69 -------------------- fixture setup setup starts --------------------
INFO     tests.common.helpers.platform_api.chassis:chassis.py:19 Executing chassis API: "get_num_components", arguments: "[]", result: "13"
INFO     root:__init__.py:76 -------------------- fixture setup setup ends --------------------
------------------------------ Captured log call -------------------------------
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 0, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 0, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 1, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 1, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 2, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 2, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 3, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 3, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 4, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 4, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 5, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 5, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 6, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 6, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 7, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 7, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 8, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 8, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 9, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 9, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 10, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 10, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 11, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 11, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 12, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "install_firmware", index: 12, arguments: "['next']", result: "None"
_____________ TestComponentApi.test_update_firmware[as9736-64d-3] ______________

self = <tests.platform_tests.api.test_component.TestComponentApi object at 0x7fc6aa7ac7f0>
duthosts = [<MultiAsicSonicHost as9736-64d-3>]
enum_rand_one_per_hwsku_hostname = 'as9736-64d-3'
localhost = <tests.common.devices.local.Localhost object at 0x7fc6a91ff730>
platform_api_conn = <http.client.HTTPConnection object at 0x7fc6a3ea6a90>

    def test_update_firmware(self, duthosts, enum_rand_one_per_hwsku_hostname, localhost, platform_api_conn):
        duthost = duthosts[enum_rand_one_per_hwsku_hostname]
        skip_release_for_platform(duthost, ["202012", "201911", "201811"], ["nokia"])
    
        for i in range(self.num_components):
            for image in image_list:
                update_status = component.update_firmware(platform_api_conn, i, image)
                if self.expect(update_status is not None,
                               "Component {}: Failed to update firmware from image {}".format(i, image)):
                    self.expect(isinstance(update_status, bool),
                                "Component {}: Return of Firmware update appears to be incorrect from image {}"
                                .format(i, image))
>       self.assert_expectations()

platform_tests/api/test_component.py:216: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.platform_tests.api.test_component.TestComponentApi object at 0x7fc6aa7ac7f0>

    def assert_expectations(self):
        """
        Checks if there are any error messages waiting in failed_expectations.
        If so, it will fail an assert and pass a concatenation of all pending
        error messages. It will also clear failed_expectations to prepare it
        for the next use.
        """
        if len(self.failed_expectations) > 0:
            err_msg = ", ".join(self.failed_expectations)
            # TODO: When we move to Python 3.3+, we can use self.failed_expectations.clear() instead
            del self.failed_expectations[:]
>           pytest_assert(False, err_msg)
E           Failed: Component 0: Failed to update firmware from image current, Component 0: Failed to update firmware from image next, Component 1: Failed to update firmware from image current, Component 1: Failed to update firmware from image next, Component 2: Failed to update firmware from image current, Component 2: Failed to update firmware from image next, Component 3: Failed to update firmware from image current, Component 3: Failed to update firmware from image next, Component 4: Failed to update firmware from image current, Component 4: Failed to update firmware from image next, Component 5: Failed to update firmware from image current, Component 5: Failed to update firmware from image next, Component 6: Failed to update firmware from image current, Component 6: Failed to update firmware from image next, Component 7: Failed to update firmware from image current, Component 7: Failed to update firmware from image next, Component 8: Failed to update firmware from image current, Component 8: Failed to update firmware from image next, Component 9: Failed to update firmware from image current, Component 9: Failed to update firmware from image next, Component 10: Failed to update firmware from image current, Component 10: Failed to update firmware from image next, Component 11: Failed to update firmware from image current, Component 11: Failed to update firmware from image next, Component 12: Failed to update firmware from image current, Component 12: Failed to update firmware from image next

platform_tests/api/platform_api_test_base.py:46: Failed
------------------------------ Captured log setup ------------------------------
INFO     root:__init__.py:53 Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
INFO     root:__init__.py:152 Test has no defined levels. Continue without test completeness checks
INFO     root:__init__.py:45 Log analyzer is disabled
INFO     root:__init__.py:69 -------------------- fixture setup setup starts --------------------
INFO     tests.common.helpers.platform_api.chassis:chassis.py:19 Executing chassis API: "get_num_components", arguments: "[]", result: "13"
INFO     root:__init__.py:76 -------------------- fixture setup setup ends --------------------
------------------------------ Captured log call -------------------------------
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 0, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 0, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 1, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 1, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 2, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 2, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 3, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 3, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 4, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 4, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 5, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 5, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 6, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 6, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 7, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 7, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 8, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 8, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 9, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 9, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 10, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 10, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 11, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 11, arguments: "['next']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 12, arguments: "['current']", result: "None"
INFO     tests.common.helpers.platform_api.component:component.py:18 Executing component API: "update_firmware", index: 12, arguments: "['next']", result: "None"
=============================== warnings summary ===============================
../../../../usr/local/lib/python3.8/dist-packages/scapy/layers/ipsec.py:471
  /usr/local/lib/python3.8/dist-packages/scapy/layers/ipsec.py:471: CryptographyDeprecationWarning: Blowfish has been deprecated
    cipher=algorithms.Blowfish,

../../../../usr/local/lib/python3.8/dist-packages/scapy/layers/ipsec.py:485
  /usr/local/lib/python3.8/dist-packages/scapy/layers/ipsec.py:485: CryptographyDeprecationWarning: CAST5 has been deprecated
    cipher=algorithms.CAST5,

../../../../usr/local/lib/python3.8/dist-packages/paramiko/transport.py:236
  /usr/local/lib/python3.8/dist-packages/paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated
    "class": algorithms.Blowfish,

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
---------------------------- live log sessionfinish ----------------------------
03:22:18 __init__.pytest_terminal_summary         L0064 INFO   | Can not get Allure report URL. Please check logs
=========================== short test summary info ============================
FAILED platform_tests/api/test_component.py::TestComponentApi::test_get_firmware_version[as9736-64d-3]
FAILED platform_tests/api/test_component.py::TestComponentApi::test_get_available_firmware_version[as9736-64d-3]
FAILED platform_tests/api/test_component.py::TestComponentApi::test_install_firmware[as9736-64d-3]
FAILED platform_tests/api/test_component.py::TestComponentApi::test_update_firmware[as9736-64d-3]
ERROR platform_tests/api/test_component.py::TestComponentApi::test_get_available_firmware_version[as9736-64d-3]
ERROR platform_tests/api/test_component.py::TestComponentApi::test_install_firmware[as9736-64d-3]
ERROR platform_tests/api/test_component.py::TestComponentApi::test_update_firmware[as9736-64d-3]
======== 4 failed, 9 passed, 3 warnings, 3 errors in 206.73s (0:03:26) =========
