From 531e7d0769b53bd4ceeaad933c3f45e67927ff44 Mon Sep 17 00:00:00 2001 From: Carl Baillargeon Date: Wed, 15 Nov 2023 01:00:48 -0500 Subject: [PATCH 01/26] Initial commit --- .../test_catalogs/dc1-leaf1a-catalog.yml | 14 +- .../test_catalogs/dc1-leaf1b-catalog.yml | 14 +- .../test_catalogs/dc1-leaf1c-catalog.yml | 14 +- .../test_catalogs/dc1-leaf2a-catalog.yml | 14 +- .../test_catalogs/dc1-leaf2b-catalog.yml | 14 +- .../test_catalogs/dc1-leaf2c-catalog.yml | 14 +- .../test_catalogs/dc1-spine1-catalog.yml | 14 +- .../test_catalogs/dc1-spine2-catalog.yml | 14 +- .../test_catalogs/dc2-leaf1a-catalog.yml | 14 +- .../test_catalogs/dc2-leaf1b-catalog.yml | 14 +- .../test_catalogs/dc2-leaf1c-catalog.yml | 14 +- .../test_catalogs/dc2-leaf2a-catalog.yml | 14 +- .../test_catalogs/dc2-leaf2b-catalog.yml | 14 +- .../test_catalogs/dc2-leaf2c-catalog.yml | 14 +- .../test_catalogs/dc2-spine1-catalog.yml | 14 +- .../test_catalogs/dc2-spine2-catalog.yml | 14 +- .../reports/FABRIC-state.csv | 1440 ++++++++-------- .../reports/FABRIC-state.md | 1511 +++++++++-------- .../action/eos_validate_state_reports.py | 117 ++ .../action/eos_validate_state_runner.py | 11 +- .../eos_validate_state_utils/csv_report.py | 60 + .../get_anta_results.py | 26 +- .../eos_validate_state_utils/md_report.py | 288 ++++ .../results_manager.py | 142 ++ .../eos_validate_state/defaults/main.yml | 6 + .../python_modules/tests/avdtesthardware.py | 22 +- .../eos_validate_state/tasks/anta_tests.yml | 2 +- .../roles/eos_validate_state/tasks/main.yml | 28 +- .../arista/avd/tests/sanity/ignore-2.12.txt | 1 + .../arista/avd/tests/sanity/ignore-2.13.txt | 1 + .../arista/avd/tests/sanity/ignore-2.14.txt | 1 + .../arista/avd/tests/sanity/ignore-2.15.txt | 1 + 32 files changed, 2360 insertions(+), 1521 deletions(-) create mode 100644 ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py create mode 100644 ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py create mode 100644 ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py create mode 100644 ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1a-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1a-catalog.yml index 69a72ae05a7..3c4a73c9016 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1a-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1a-catalog.yml @@ -185,17 +185,29 @@ anta.tests.connectivity: description: Loopback0 Reachability anta.tests.hardware: - VerifyEnvironmentPower: + result_overwrite: + categories: + - Hardware states: - ok - VerifyEnvironmentCooling: + result_overwrite: + categories: + - Hardware states: - ok -- VerifyTemperature: {} +- VerifyTemperature: + result_overwrite: + categories: + - Hardware - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present + result_overwrite: + categories: + - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1b-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1b-catalog.yml index 7e903f54dbf..58122b31170 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1b-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1b-catalog.yml @@ -205,17 +205,29 @@ anta.tests.connectivity: description: Loopback0 Reachability anta.tests.hardware: - VerifyEnvironmentPower: + result_overwrite: + categories: + - Hardware states: - ok - VerifyEnvironmentCooling: + result_overwrite: + categories: + - Hardware states: - ok -- VerifyTemperature: {} +- VerifyTemperature: + result_overwrite: + categories: + - Hardware - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present + result_overwrite: + categories: + - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1c-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1c-catalog.yml index 89097723b81..f356bcb1d3c 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1c-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1c-catalog.yml @@ -11,17 +11,29 @@ anta.tests.connectivity: description: LLDP topology - validate peer and interface anta.tests.hardware: - VerifyEnvironmentPower: + result_overwrite: + categories: + - Hardware states: - ok - VerifyEnvironmentCooling: + result_overwrite: + categories: + - Hardware states: - ok -- VerifyTemperature: {} +- VerifyTemperature: + result_overwrite: + categories: + - Hardware - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present + result_overwrite: + categories: + - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2a-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2a-catalog.yml index 352730f515b..1112b6831e0 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2a-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2a-catalog.yml @@ -226,17 +226,29 @@ anta.tests.connectivity: description: Loopback0 Reachability anta.tests.hardware: - VerifyEnvironmentPower: + result_overwrite: + categories: + - Hardware states: - ok - VerifyEnvironmentCooling: + result_overwrite: + categories: + - Hardware states: - ok -- VerifyTemperature: {} +- VerifyTemperature: + result_overwrite: + categories: + - Hardware - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present + result_overwrite: + categories: + - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2b-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2b-catalog.yml index f4d43a6308a..00a7f9a68c2 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2b-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2b-catalog.yml @@ -226,17 +226,29 @@ anta.tests.connectivity: description: Loopback0 Reachability anta.tests.hardware: - VerifyEnvironmentPower: + result_overwrite: + categories: + - Hardware states: - ok - VerifyEnvironmentCooling: + result_overwrite: + categories: + - Hardware states: - ok -- VerifyTemperature: {} +- VerifyTemperature: + result_overwrite: + categories: + - Hardware - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present + result_overwrite: + categories: + - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2c-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2c-catalog.yml index 78a9920d4da..05aab570c22 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2c-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2c-catalog.yml @@ -21,17 +21,29 @@ anta.tests.connectivity: description: LLDP topology - validate peer and interface anta.tests.hardware: - VerifyEnvironmentPower: + result_overwrite: + categories: + - Hardware states: - ok - VerifyEnvironmentCooling: + result_overwrite: + categories: + - Hardware states: - ok -- VerifyTemperature: {} +- VerifyTemperature: + result_overwrite: + categories: + - Hardware - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present + result_overwrite: + categories: + - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-spine1-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-spine1-catalog.yml index 1056ededa10..c71d7d31602 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-spine1-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-spine1-catalog.yml @@ -75,17 +75,29 @@ anta.tests.connectivity: description: ip reachability test p2p links anta.tests.hardware: - VerifyEnvironmentPower: + result_overwrite: + categories: + - Hardware states: - ok - VerifyEnvironmentCooling: + result_overwrite: + categories: + - Hardware states: - ok -- VerifyTemperature: {} +- VerifyTemperature: + result_overwrite: + categories: + - Hardware - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present + result_overwrite: + categories: + - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-spine2-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-spine2-catalog.yml index b4a95823de7..ba34354ed86 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-spine2-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-spine2-catalog.yml @@ -75,17 +75,29 @@ anta.tests.connectivity: description: ip reachability test p2p links anta.tests.hardware: - VerifyEnvironmentPower: + result_overwrite: + categories: + - Hardware states: - ok - VerifyEnvironmentCooling: + result_overwrite: + categories: + - Hardware states: - ok -- VerifyTemperature: {} +- VerifyTemperature: + result_overwrite: + categories: + - Hardware - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present + result_overwrite: + categories: + - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1a-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1a-catalog.yml index 74561801938..2837c17600e 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1a-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1a-catalog.yml @@ -205,17 +205,29 @@ anta.tests.connectivity: description: Loopback0 Reachability anta.tests.hardware: - VerifyEnvironmentPower: + result_overwrite: + categories: + - Hardware states: - ok - VerifyEnvironmentCooling: + result_overwrite: + categories: + - Hardware states: - ok -- VerifyTemperature: {} +- VerifyTemperature: + result_overwrite: + categories: + - Hardware - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present + result_overwrite: + categories: + - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1b-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1b-catalog.yml index e99090cbd06..72ea6d15173 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1b-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1b-catalog.yml @@ -205,17 +205,29 @@ anta.tests.connectivity: description: Loopback0 Reachability anta.tests.hardware: - VerifyEnvironmentPower: + result_overwrite: + categories: + - Hardware states: - ok - VerifyEnvironmentCooling: + result_overwrite: + categories: + - Hardware states: - ok -- VerifyTemperature: {} +- VerifyTemperature: + result_overwrite: + categories: + - Hardware - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present + result_overwrite: + categories: + - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1c-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1c-catalog.yml index 81effcb2f8f..7fd0f7d96f6 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1c-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1c-catalog.yml @@ -21,17 +21,29 @@ anta.tests.connectivity: description: LLDP topology - validate peer and interface anta.tests.hardware: - VerifyEnvironmentPower: + result_overwrite: + categories: + - Hardware states: - ok - VerifyEnvironmentCooling: + result_overwrite: + categories: + - Hardware states: - ok -- VerifyTemperature: {} +- VerifyTemperature: + result_overwrite: + categories: + - Hardware - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present + result_overwrite: + categories: + - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2a-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2a-catalog.yml index 6aa30844aca..9d83ba383b7 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2a-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2a-catalog.yml @@ -226,17 +226,29 @@ anta.tests.connectivity: description: Loopback0 Reachability anta.tests.hardware: - VerifyEnvironmentPower: + result_overwrite: + categories: + - Hardware states: - ok - VerifyEnvironmentCooling: + result_overwrite: + categories: + - Hardware states: - ok -- VerifyTemperature: {} +- VerifyTemperature: + result_overwrite: + categories: + - Hardware - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present + result_overwrite: + categories: + - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2b-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2b-catalog.yml index b5747c50507..2337100a0a0 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2b-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2b-catalog.yml @@ -226,17 +226,29 @@ anta.tests.connectivity: description: Loopback0 Reachability anta.tests.hardware: - VerifyEnvironmentPower: + result_overwrite: + categories: + - Hardware states: - ok - VerifyEnvironmentCooling: + result_overwrite: + categories: + - Hardware states: - ok -- VerifyTemperature: {} +- VerifyTemperature: + result_overwrite: + categories: + - Hardware - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present + result_overwrite: + categories: + - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2c-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2c-catalog.yml index 8d0af8b742f..c006e358e94 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2c-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2c-catalog.yml @@ -21,17 +21,29 @@ anta.tests.connectivity: description: LLDP topology - validate peer and interface anta.tests.hardware: - VerifyEnvironmentPower: + result_overwrite: + categories: + - Hardware states: - ok - VerifyEnvironmentCooling: + result_overwrite: + categories: + - Hardware states: - ok -- VerifyTemperature: {} +- VerifyTemperature: + result_overwrite: + categories: + - Hardware - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present + result_overwrite: + categories: + - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-spine1-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-spine1-catalog.yml index 3c87a8402fa..ff1be2ffab8 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-spine1-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-spine1-catalog.yml @@ -85,17 +85,29 @@ anta.tests.connectivity: description: ip reachability test p2p links anta.tests.hardware: - VerifyEnvironmentPower: + result_overwrite: + categories: + - Hardware states: - ok - VerifyEnvironmentCooling: + result_overwrite: + categories: + - Hardware states: - ok -- VerifyTemperature: {} +- VerifyTemperature: + result_overwrite: + categories: + - Hardware - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present + result_overwrite: + categories: + - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-spine2-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-spine2-catalog.yml index ed62f48c8be..997e5452734 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-spine2-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-spine2-catalog.yml @@ -85,17 +85,29 @@ anta.tests.connectivity: description: ip reachability test p2p links anta.tests.hardware: - VerifyEnvironmentPower: + result_overwrite: + categories: + - Hardware states: - ok - VerifyEnvironmentCooling: + result_overwrite: + categories: + - Hardware states: - ok -- VerifyTemperature: {} +- VerifyTemperature: + result_overwrite: + categories: + - Hardware - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present + result_overwrite: + categories: + - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.csv b/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.csv index 7c0ac078610..f5e7243b614 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.csv +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.csv @@ -1,720 +1,720 @@ -test_id,node,test_category,test_description,test,result,failure_reason -1,dc1-leaf1a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -2,dc1-leaf1a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -3,dc1-leaf1a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -4,dc1-leaf1a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -5,dc1-leaf1a,NTP,Synchronised with NTP server,NTP,NOT RUN, -6,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - MLAG_PEER_dc1-leaf1b_Ethernet3,NOT RUN, -7,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - MLAG_PEER_dc1-leaf1b_Ethernet4,NOT RUN, -8,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet1,NOT RUN, -9,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet1,NOT RUN, -10,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet8 - DC1-LEAF1C_Ethernet1,NOT RUN, -11,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc1-leaf1-server1_PCI1,NOT RUN, -12,dc1-leaf1a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel3 - MLAG_PEER_dc1-leaf1b_Po3,NOT RUN, -13,dc1-leaf1a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel8 - DC1-LEAF1C_Po1,NOT RUN, -14,dc1-leaf1a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1,NOT RUN, -15,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -16,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan4094 - MLAG_PEER,NOT RUN, -17,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan11 - VRF10_VLAN11,NOT RUN, -18,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan12 - VRF10_VLAN12,NOT RUN, -19,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -20,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan21 - VRF11_VLAN21,NOT RUN, -21,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan22 - VRF11_VLAN22,NOT RUN, -22,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -23,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -24,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -25,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -26,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -27,dc1-leaf1a,Interface State,Vxlan Interface Status & Line Protocol == "up",Vxlan1,NOT RUN, -28,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet1,NOT RUN, -29,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet1,NOT RUN, -30,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf1c_Ethernet1,NOT RUN, -31,dc1-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1a_Ethernet1 - Destination: dc1-spine1_Ethernet1,NOT RUN, -32,dc1-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1a_Ethernet2 - Destination: dc1-spine2_Ethernet1,NOT RUN, -33,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.3,NOT RUN, -34,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.1,NOT RUN, -35,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.2,NOT RUN, -36,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.4,NOT RUN, -37,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.5,NOT RUN, -38,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.6,NOT RUN, -39,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.11,NOT RUN, -40,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.12,NOT RUN, -41,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.13,NOT RUN, -42,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.14,NOT RUN, -43,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.15,NOT RUN, -44,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.16,NOT RUN, -45,dc1-leaf1a,MLAG,MLAG State active & Status connected,MLAG,NOT RUN, -46,dc1-leaf1a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -47,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.97,NOT RUN, -48,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.0,NOT RUN, -49,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.2,NOT RUN, -50,dc1-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,NOT RUN, -51,dc1-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,NOT RUN, -52,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -53,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -54,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -55,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -56,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -57,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.6,NOT RUN, -58,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -59,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -60,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -61,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -62,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -63,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -64,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -65,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -66,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -67,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -68,dc1-leaf1b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -69,dc1-leaf1b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -70,dc1-leaf1b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -71,dc1-leaf1b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -72,dc1-leaf1b,NTP,Synchronised with NTP server,NTP,NOT RUN, -73,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - MLAG_PEER_dc1-leaf1a_Ethernet3,NOT RUN, -74,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - MLAG_PEER_dc1-leaf1a_Ethernet4,NOT RUN, -75,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet2,NOT RUN, -76,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet2,NOT RUN, -77,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet8 - DC1-LEAF1C_Ethernet2,NOT RUN, -78,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc1-leaf1-server1_PCI2,NOT RUN, -79,dc1-leaf1b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel3 - MLAG_PEER_dc1-leaf1a_Po3,NOT RUN, -80,dc1-leaf1b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel8 - DC1-LEAF1C_Po1,NOT RUN, -81,dc1-leaf1b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1,NOT RUN, -82,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -83,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan4094 - MLAG_PEER,NOT RUN, -84,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan11 - VRF10_VLAN11,NOT RUN, -85,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan12 - VRF10_VLAN12,NOT RUN, -86,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -87,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan21 - VRF11_VLAN21,NOT RUN, -88,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan22 - VRF11_VLAN22,NOT RUN, -89,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -90,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -91,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -92,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -93,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -94,dc1-leaf1b,Interface State,Vxlan Interface Status & Line Protocol == "up",Vxlan1,NOT RUN, -95,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf1a_Ethernet3,NOT RUN, -96,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf1a_Ethernet4,NOT RUN, -97,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet2,NOT RUN, -98,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet2,NOT RUN, -99,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf1c_Ethernet2,NOT RUN, -100,dc1-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1b_Ethernet1 - Destination: dc1-spine1_Ethernet2,NOT RUN, -101,dc1-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1b_Ethernet2 - Destination: dc1-spine2_Ethernet2,NOT RUN, -102,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.3,NOT RUN, -103,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.1,NOT RUN, -104,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.2,NOT RUN, -105,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.4,NOT RUN, -106,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.5,NOT RUN, -107,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.6,NOT RUN, -108,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.11,NOT RUN, -109,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.12,NOT RUN, -110,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.13,NOT RUN, -111,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.14,NOT RUN, -112,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.15,NOT RUN, -113,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.16,NOT RUN, -114,dc1-leaf1b,MLAG,MLAG State active & Status connected,MLAG,NOT RUN, -115,dc1-leaf1b,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -116,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.96,NOT RUN, -117,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.4,NOT RUN, -118,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.6,NOT RUN, -119,dc1-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,NOT RUN, -120,dc1-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,NOT RUN, -121,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -122,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -123,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -124,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -125,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -126,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.6,NOT RUN, -127,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -128,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -129,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -130,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -131,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -132,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -133,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -134,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -135,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -136,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -137,dc1-leaf1c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -138,dc1-leaf1c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -139,dc1-leaf1c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -140,dc1-leaf1c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -141,dc1-leaf1c,NTP,Synchronised with NTP server,NTP,NOT RUN, -142,dc1-leaf1c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - DC1-LEAF1A_Ethernet8,NOT RUN, -143,dc1-leaf1c,Interface State,Ethernet Interface & Line Protocol == "adminDown",Ethernet2 - DC1-LEAF1B_Ethernet8,NOT RUN, -144,dc1-leaf1c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc1-leaf1-server1_iLO,NOT RUN, -145,dc1-leaf1c,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel1 - DC1_L3_LEAF1_Po8,NOT RUN, -146,dc1-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet8,NOT RUN, -147,dc1-leaf2a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -148,dc1-leaf2a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -149,dc1-leaf2a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -150,dc1-leaf2a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -151,dc1-leaf2a,NTP,Synchronised with NTP server,NTP,NOT RUN, -152,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - MLAG_PEER_dc1-leaf2b_Ethernet3,NOT RUN, -153,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - MLAG_PEER_dc1-leaf2b_Ethernet4,NOT RUN, -154,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet3,NOT RUN, -155,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet3,NOT RUN, -156,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet8 - DC1-LEAF2C_Ethernet1,NOT RUN, -157,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet6 - P2P_LINK_TO_dc2-leaf2a_Ethernet6,NOT RUN, -158,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc1-leaf2-server1_PCI1,NOT RUN, -159,dc1-leaf2a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel3 - MLAG_PEER_dc1-leaf2b_Po3,NOT RUN, -160,dc1-leaf2a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel8 - DC1-LEAF2C_Po1,NOT RUN, -161,dc1-leaf2a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1,NOT RUN, -162,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -163,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan4094 - MLAG_PEER,NOT RUN, -164,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan11 - VRF10_VLAN11,NOT RUN, -165,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan12 - VRF10_VLAN12,NOT RUN, -166,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -167,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan21 - VRF11_VLAN21,NOT RUN, -168,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan22 - VRF11_VLAN22,NOT RUN, -169,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -170,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -171,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -172,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -173,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -174,dc1-leaf2a,Interface State,Vxlan Interface Status & Line Protocol == "up",Vxlan1,NOT RUN, -175,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2b_Ethernet3,NOT RUN, -176,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf2b_Ethernet4,NOT RUN, -177,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet3,NOT RUN, -178,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet3,NOT RUN, -179,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf2c_Ethernet1,NOT RUN, -180,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc2-leaf2a_Ethernet6,NOT RUN, -181,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet1 - Destination: dc1-spine1_Ethernet3,NOT RUN, -182,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet2 - Destination: dc1-spine2_Ethernet3,NOT RUN, -183,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet6 - Destination: dc2-leaf2a_Ethernet6,NOT RUN, -184,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.3,NOT RUN, -185,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.1,NOT RUN, -186,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.2,NOT RUN, -187,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.4,NOT RUN, -188,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.5,NOT RUN, -189,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.6,NOT RUN, -190,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.11,NOT RUN, -191,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.12,NOT RUN, -192,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.13,NOT RUN, -193,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.14,NOT RUN, -194,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.15,NOT RUN, -195,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.16,NOT RUN, -196,dc1-leaf2a,MLAG,MLAG State active & Status connected,MLAG,NOT RUN, -197,dc1-leaf2a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -198,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.101,NOT RUN, -199,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.8,NOT RUN, -200,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.10,NOT RUN, -201,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,NOT RUN, -202,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,NOT RUN, -203,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,NOT RUN, -204,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.1,NOT RUN, -205,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -206,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -207,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -208,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -209,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -210,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.6,NOT RUN, -211,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -212,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -213,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -214,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -215,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -216,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -217,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -218,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -219,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -220,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -221,dc1-leaf2b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -222,dc1-leaf2b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -223,dc1-leaf2b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -224,dc1-leaf2b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -225,dc1-leaf2b,NTP,Synchronised with NTP server,NTP,NOT RUN, -226,dc1-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - MLAG_PEER_dc1-leaf2a_Ethernet3,NOT RUN, -227,dc1-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - MLAG_PEER_dc1-leaf2a_Ethernet4,NOT RUN, -228,dc1-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet4,NOT RUN, -229,dc1-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet4,NOT RUN, -230,dc1-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet8 - DC1-LEAF2C_Ethernet2,NOT RUN, -231,dc1-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet6 - P2P_LINK_TO_dc2-leaf2b_Ethernet6,NOT RUN, -232,dc1-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc1-leaf2-server1_PCI2,NOT RUN, -233,dc1-leaf2b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel3 - MLAG_PEER_dc1-leaf2a_Po3,NOT RUN, -234,dc1-leaf2b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel8 - DC1-LEAF2C_Po1,NOT RUN, -235,dc1-leaf2b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1,NOT RUN, -236,dc1-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -237,dc1-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan4094 - MLAG_PEER,NOT RUN, -238,dc1-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan11 - VRF10_VLAN11,NOT RUN, -239,dc1-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan12 - VRF10_VLAN12,NOT RUN, -240,dc1-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -241,dc1-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan21 - VRF11_VLAN21,NOT RUN, -242,dc1-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan22 - VRF11_VLAN22,NOT RUN, -243,dc1-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -244,dc1-leaf2b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -245,dc1-leaf2b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -246,dc1-leaf2b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -247,dc1-leaf2b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -248,dc1-leaf2b,Interface State,Vxlan Interface Status & Line Protocol == "up",Vxlan1,NOT RUN, -249,dc1-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2a_Ethernet3,NOT RUN, -250,dc1-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf2a_Ethernet4,NOT RUN, -251,dc1-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet4,NOT RUN, -252,dc1-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet4,NOT RUN, -253,dc1-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf2c_Ethernet2,NOT RUN, -254,dc1-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc2-leaf2b_Ethernet6,NOT RUN, -255,dc1-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2b_Ethernet1 - Destination: dc1-spine1_Ethernet4,NOT RUN, -256,dc1-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2b_Ethernet2 - Destination: dc1-spine2_Ethernet4,NOT RUN, -257,dc1-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2b_Ethernet6 - Destination: dc2-leaf2b_Ethernet6,NOT RUN, -258,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.3,NOT RUN, -259,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.1,NOT RUN, -260,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.2,NOT RUN, -261,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.4,NOT RUN, -262,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.5,NOT RUN, -263,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.6,NOT RUN, -264,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.11,NOT RUN, -265,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.12,NOT RUN, -266,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.13,NOT RUN, -267,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.14,NOT RUN, -268,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.15,NOT RUN, -269,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.16,NOT RUN, -270,dc1-leaf2b,MLAG,MLAG State active & Status connected,MLAG,NOT RUN, -271,dc1-leaf2b,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -272,dc1-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.100,NOT RUN, -273,dc1-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.12,NOT RUN, -274,dc1-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.14,NOT RUN, -275,dc1-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,NOT RUN, -276,dc1-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,NOT RUN, -277,dc1-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.16,NOT RUN, -278,dc1-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.3,NOT RUN, -279,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -280,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -281,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -282,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -283,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -284,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.0.6,NOT RUN, -285,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -286,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -287,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -288,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -289,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -290,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -291,dc1-leaf2b,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -292,dc1-leaf2b,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -293,dc1-leaf2b,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -294,dc1-leaf2b,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -295,dc1-leaf2c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -296,dc1-leaf2c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -297,dc1-leaf2c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -298,dc1-leaf2c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -299,dc1-leaf2c,NTP,Synchronised with NTP server,NTP,NOT RUN, -300,dc1-leaf2c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - DC1-LEAF2A_Ethernet8,NOT RUN, -301,dc1-leaf2c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - DC1-LEAF2B_Ethernet8,NOT RUN, -302,dc1-leaf2c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc1-leaf2-server1_iLO,NOT RUN, -303,dc1-leaf2c,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel1 - DC1_L3_LEAF2_Po8,NOT RUN, -304,dc1-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf2a_Ethernet8,NOT RUN, -305,dc1-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf2b_Ethernet8,NOT RUN, -306,dc1-spine1,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -307,dc1-spine1,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -308,dc1-spine1,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -309,dc1-spine1,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -310,dc1-spine1,NTP,Synchronised with NTP server,NTP,NOT RUN, -311,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet1,NOT RUN, -312,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == "adminDown",Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet1,NOT RUN, -313,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet1,NOT RUN, -314,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet1,NOT RUN, -315,dc1-spine1,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -316,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet1,NOT RUN, -317,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2a_Ethernet1,NOT RUN, -318,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf2b_Ethernet1,NOT RUN, -319,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet1 - Destination: dc1-leaf1a_Ethernet1,NOT RUN, -320,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet2 - Destination: dc1-leaf1b_Ethernet1,NOT RUN, -321,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet3 - Destination: dc1-leaf2a_Ethernet1,NOT RUN, -322,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet4 - Destination: dc1-leaf2b_Ethernet1,NOT RUN, -323,dc1-spine1,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -324,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.1,NOT RUN, -325,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.5,NOT RUN, -326,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.9,NOT RUN, -327,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.13,NOT RUN, -328,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.3,NOT RUN, -329,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.4,NOT RUN, -330,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,NOT RUN, -331,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.6,NOT RUN, -332,dc1-spine2,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -333,dc1-spine2,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -334,dc1-spine2,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -335,dc1-spine2,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -336,dc1-spine2,NTP,Synchronised with NTP server,NTP,NOT RUN, -337,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet2,NOT RUN, -338,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == "adminDown",Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet2,NOT RUN, -339,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet2,NOT RUN, -340,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet2,NOT RUN, -341,dc1-spine2,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -342,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet2,NOT RUN, -343,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2a_Ethernet2,NOT RUN, -344,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf2b_Ethernet2,NOT RUN, -345,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet1 - Destination: dc1-leaf1a_Ethernet2,NOT RUN, -346,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet2 - Destination: dc1-leaf1b_Ethernet2,NOT RUN, -347,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet3 - Destination: dc1-leaf2a_Ethernet2,NOT RUN, -348,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet4 - Destination: dc1-leaf2b_Ethernet2,NOT RUN, -349,dc1-spine2,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -350,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.3,NOT RUN, -351,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.7,NOT RUN, -352,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.11,NOT RUN, -353,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.15,NOT RUN, -354,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.3,NOT RUN, -355,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.4,NOT RUN, -356,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,NOT RUN, -357,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.6,NOT RUN, -358,dc2-leaf1a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -359,dc2-leaf1a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -360,dc2-leaf1a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -361,dc2-leaf1a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -362,dc2-leaf1a,NTP,Synchronised with NTP server,NTP,NOT RUN, -363,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - MLAG_PEER_dc2-leaf1b_Ethernet3,NOT RUN, -364,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - MLAG_PEER_dc2-leaf1b_Ethernet4,NOT RUN, -365,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet1,NOT RUN, -366,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet1,NOT RUN, -367,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet8 - DC2-LEAF1C_Ethernet1,NOT RUN, -368,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc2-leaf1-server1_PCI1,NOT RUN, -369,dc2-leaf1a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel3 - MLAG_PEER_dc2-leaf1b_Po3,NOT RUN, -370,dc2-leaf1a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel8 - DC2-LEAF1C_Po1,NOT RUN, -371,dc2-leaf1a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1,NOT RUN, -372,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -373,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan4094 - MLAG_PEER,NOT RUN, -374,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan11 - VRF10_VLAN11,NOT RUN, -375,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan12 - VRF10_VLAN12,NOT RUN, -376,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -377,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan21 - VRF11_VLAN21,NOT RUN, -378,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan22 - VRF11_VLAN22,NOT RUN, -379,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -380,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -381,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -382,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -383,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -384,dc2-leaf1a,Interface State,Vxlan Interface Status & Line Protocol == "up",Vxlan1,NOT RUN, -385,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf1b_Ethernet3,NOT RUN, -386,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf1b_Ethernet4,NOT RUN, -387,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet1,NOT RUN, -388,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet1,NOT RUN, -389,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf1c_Ethernet1,NOT RUN, -390,dc2-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1a_Ethernet1 - Destination: dc2-spine1_Ethernet1,NOT RUN, -391,dc2-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1a_Ethernet2 - Destination: dc2-spine2_Ethernet1,NOT RUN, -392,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.3,NOT RUN, -393,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.1,NOT RUN, -394,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.2,NOT RUN, -395,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.4,NOT RUN, -396,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.5,NOT RUN, -397,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.6,NOT RUN, -398,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.11,NOT RUN, -399,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.12,NOT RUN, -400,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.13,NOT RUN, -401,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.14,NOT RUN, -402,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.15,NOT RUN, -403,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.16,NOT RUN, -404,dc2-leaf1a,MLAG,MLAG State active & Status connected,MLAG,NOT RUN, -405,dc2-leaf1a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -406,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.117,NOT RUN, -407,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.104,NOT RUN, -408,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.106,NOT RUN, -409,dc2-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, -410,dc2-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, -411,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -412,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -413,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -414,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -415,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -416,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.6,NOT RUN, -417,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -418,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -419,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -420,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -421,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -422,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -423,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -424,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -425,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -426,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -427,dc2-leaf1b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -428,dc2-leaf1b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -429,dc2-leaf1b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -430,dc2-leaf1b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -431,dc2-leaf1b,NTP,Synchronised with NTP server,NTP,NOT RUN, -432,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - MLAG_PEER_dc2-leaf1a_Ethernet3,NOT RUN, -433,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - MLAG_PEER_dc2-leaf1a_Ethernet4,NOT RUN, -434,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet2,NOT RUN, -435,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet2,NOT RUN, -436,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet8 - DC2-LEAF1C_Ethernet2,NOT RUN, -437,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc2-leaf1-server1_PCI2,NOT RUN, -438,dc2-leaf1b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel3 - MLAG_PEER_dc2-leaf1a_Po3,NOT RUN, -439,dc2-leaf1b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel8 - DC2-LEAF1C_Po1,NOT RUN, -440,dc2-leaf1b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1,NOT RUN, -441,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -442,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan4094 - MLAG_PEER,NOT RUN, -443,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan11 - VRF10_VLAN11,NOT RUN, -444,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan12 - VRF10_VLAN12,NOT RUN, -445,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -446,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan21 - VRF11_VLAN21,NOT RUN, -447,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan22 - VRF11_VLAN22,NOT RUN, -448,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -449,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -450,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -451,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -452,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -453,dc2-leaf1b,Interface State,Vxlan Interface Status & Line Protocol == "up",Vxlan1,NOT RUN, -454,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf1a_Ethernet3,NOT RUN, -455,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf1a_Ethernet4,NOT RUN, -456,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet2,NOT RUN, -457,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet2,NOT RUN, -458,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf1c_Ethernet2,NOT RUN, -459,dc2-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1b_Ethernet1 - Destination: dc2-spine1_Ethernet2,NOT RUN, -460,dc2-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1b_Ethernet2 - Destination: dc2-spine2_Ethernet2,NOT RUN, -461,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.3,NOT RUN, -462,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.1,NOT RUN, -463,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.2,NOT RUN, -464,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.4,NOT RUN, -465,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.5,NOT RUN, -466,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.6,NOT RUN, -467,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.11,NOT RUN, -468,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.12,NOT RUN, -469,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.13,NOT RUN, -470,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.14,NOT RUN, -471,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.15,NOT RUN, -472,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.16,NOT RUN, -473,dc2-leaf1b,MLAG,MLAG State active & Status connected,MLAG,NOT RUN, -474,dc2-leaf1b,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -475,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.116,NOT RUN, -476,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.108,NOT RUN, -477,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.110,NOT RUN, -478,dc2-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, -479,dc2-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, -480,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -481,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -482,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -483,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -484,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -485,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.6,NOT RUN, -486,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -487,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -488,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -489,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -490,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -491,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -492,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -493,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -494,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -495,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -496,dc2-leaf1c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -497,dc2-leaf1c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -498,dc2-leaf1c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -499,dc2-leaf1c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -500,dc2-leaf1c,NTP,Synchronised with NTP server,NTP,NOT RUN, -501,dc2-leaf1c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - DC2-LEAF1A_Ethernet8,NOT RUN, -502,dc2-leaf1c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - DC2-LEAF1B_Ethernet8,NOT RUN, -503,dc2-leaf1c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc2-leaf1-server1_iLO,NOT RUN, -504,dc2-leaf1c,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel1 - DC2_L3_LEAF1_Po8,NOT RUN, -505,dc2-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet8,NOT RUN, -506,dc2-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet8,NOT RUN, -507,dc2-leaf2a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -508,dc2-leaf2a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -509,dc2-leaf2a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -510,dc2-leaf2a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -511,dc2-leaf2a,NTP,Synchronised with NTP server,NTP,NOT RUN, -512,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - MLAG_PEER_dc2-leaf2b_Ethernet3,NOT RUN, -513,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - MLAG_PEER_dc2-leaf2b_Ethernet4,NOT RUN, -514,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet3,NOT RUN, -515,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet3,NOT RUN, -516,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet8 - DC2-LEAF2C_Ethernet1,NOT RUN, -517,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet6 - P2P_LINK_TO_dc1-leaf2a_Ethernet6,NOT RUN, -518,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc2-leaf2-server1_PCI1,NOT RUN, -519,dc2-leaf2a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel3 - MLAG_PEER_dc2-leaf2b_Po3,NOT RUN, -520,dc2-leaf2a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel8 - DC2-LEAF2C_Po1,NOT RUN, -521,dc2-leaf2a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1,NOT RUN, -522,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -523,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan4094 - MLAG_PEER,NOT RUN, -524,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan11 - VRF10_VLAN11,NOT RUN, -525,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan12 - VRF10_VLAN12,NOT RUN, -526,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -527,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan21 - VRF11_VLAN21,NOT RUN, -528,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan22 - VRF11_VLAN22,NOT RUN, -529,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -530,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -531,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -532,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -533,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -534,dc2-leaf2a,Interface State,Vxlan Interface Status & Line Protocol == "up",Vxlan1,NOT RUN, -535,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2b_Ethernet3,NOT RUN, -536,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet4,NOT RUN, -537,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet3,NOT RUN, -538,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet3,NOT RUN, -539,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf2c_Ethernet1,NOT RUN, -540,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc1-leaf2a_Ethernet6,NOT RUN, -541,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet1 - Destination: dc2-spine1_Ethernet3,NOT RUN, -542,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet2 - Destination: dc2-spine2_Ethernet3,NOT RUN, -543,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet6 - Destination: dc1-leaf2a_Ethernet6,NOT RUN, -544,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.3,NOT RUN, -545,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.1,NOT RUN, -546,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.2,NOT RUN, -547,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.4,NOT RUN, -548,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.5,NOT RUN, -549,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.6,NOT RUN, -550,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.11,NOT RUN, -551,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.12,NOT RUN, -552,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.13,NOT RUN, -553,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.14,NOT RUN, -554,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.15,NOT RUN, -555,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.16,NOT RUN, -556,dc2-leaf2a,MLAG,MLAG State active & Status connected,MLAG,NOT RUN, -557,dc2-leaf2a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -558,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.121,NOT RUN, -559,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.112,NOT RUN, -560,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.114,NOT RUN, -561,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, -562,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, -563,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,NOT RUN, -564,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.0,NOT RUN, -565,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -566,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -567,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -568,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -569,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -570,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.6,NOT RUN, -571,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -572,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -573,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -574,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -575,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -576,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -577,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -578,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -579,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -580,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -581,dc2-leaf2b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -582,dc2-leaf2b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -583,dc2-leaf2b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -584,dc2-leaf2b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -585,dc2-leaf2b,NTP,Synchronised with NTP server,NTP,NOT RUN, -586,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - MLAG_PEER_dc2-leaf2a_Ethernet3,NOT RUN, -587,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - MLAG_PEER_dc2-leaf2a_Ethernet4,NOT RUN, -588,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet4,NOT RUN, -589,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet4,NOT RUN, -590,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet8 - DC2-LEAF2C_Ethernet2,NOT RUN, -591,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet6 - P2P_LINK_TO_dc1-leaf2b_Ethernet6,NOT RUN, -592,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc2-leaf2-server1_PCI2,NOT RUN, -593,dc2-leaf2b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel3 - MLAG_PEER_dc2-leaf2a_Po3,NOT RUN, -594,dc2-leaf2b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel8 - DC2-LEAF2C_Po1,NOT RUN, -595,dc2-leaf2b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1,NOT RUN, -596,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -597,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan4094 - MLAG_PEER,NOT RUN, -598,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan11 - VRF10_VLAN11,NOT RUN, -599,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan12 - VRF10_VLAN12,NOT RUN, -600,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -601,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan21 - VRF11_VLAN21,NOT RUN, -602,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan22 - VRF11_VLAN22,NOT RUN, -603,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -604,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -605,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -606,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -607,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -608,dc2-leaf2b,Interface State,Vxlan Interface Status & Line Protocol == "up",Vxlan1,NOT RUN, -609,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet3,NOT RUN, -610,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2a_Ethernet4,NOT RUN, -611,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet4,NOT RUN, -612,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet4,NOT RUN, -613,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf2c_Ethernet2,NOT RUN, -614,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc1-leaf2b_Ethernet6,NOT RUN, -615,dc2-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2b_Ethernet1 - Destination: dc2-spine1_Ethernet4,NOT RUN, -616,dc2-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2b_Ethernet2 - Destination: dc2-spine2_Ethernet4,NOT RUN, -617,dc2-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2b_Ethernet6 - Destination: dc1-leaf2b_Ethernet6,NOT RUN, -618,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.3,NOT RUN, -619,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.1,NOT RUN, -620,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.2,NOT RUN, -621,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.4,NOT RUN, -622,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.5,NOT RUN, -623,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.6,NOT RUN, -624,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.11,NOT RUN, -625,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.12,NOT RUN, -626,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.13,NOT RUN, -627,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.14,NOT RUN, -628,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.15,NOT RUN, -629,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.16,NOT RUN, -630,dc2-leaf2b,MLAG,MLAG State active & Status connected,MLAG,NOT RUN, -631,dc2-leaf2b,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -632,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.120,NOT RUN, -633,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.116,NOT RUN, -634,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.118,NOT RUN, -635,dc2-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, -636,dc2-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, -637,dc2-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.6,NOT RUN, -638,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.2,NOT RUN, -639,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -640,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -641,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -642,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -643,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -644,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.6,NOT RUN, -645,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -646,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -647,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -648,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -649,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -650,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -651,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -652,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -653,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -654,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -655,dc2-leaf2c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -656,dc2-leaf2c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -657,dc2-leaf2c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -658,dc2-leaf2c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -659,dc2-leaf2c,NTP,Synchronised with NTP server,NTP,NOT RUN, -660,dc2-leaf2c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - DC2-LEAF2A_Ethernet8,NOT RUN, -661,dc2-leaf2c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - DC2-LEAF2B_Ethernet8,NOT RUN, -662,dc2-leaf2c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc2-leaf2-server1_iLO,NOT RUN, -663,dc2-leaf2c,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel1 - DC2_L3_LEAF2_Po8,NOT RUN, -664,dc2-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf2a_Ethernet8,NOT RUN, -665,dc2-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf2b_Ethernet8,NOT RUN, -666,dc2-spine1,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -667,dc2-spine1,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -668,dc2-spine1,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -669,dc2-spine1,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -670,dc2-spine1,NTP,Synchronised with NTP server,NTP,NOT RUN, -671,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet1,NOT RUN, -672,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet1,NOT RUN, -673,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet1,NOT RUN, -674,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet1,NOT RUN, -675,dc2-spine1,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -676,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet1,NOT RUN, -677,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet1,NOT RUN, -678,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet1,NOT RUN, -679,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet1,NOT RUN, -680,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet1 - Destination: dc2-leaf1a_Ethernet1,NOT RUN, -681,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet2 - Destination: dc2-leaf1b_Ethernet1,NOT RUN, -682,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet3 - Destination: dc2-leaf2a_Ethernet1,NOT RUN, -683,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet4 - Destination: dc2-leaf2b_Ethernet1,NOT RUN, -684,dc2-spine1,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -685,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.105,NOT RUN, -686,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.109,NOT RUN, -687,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.113,NOT RUN, -688,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.117,NOT RUN, -689,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.13,NOT RUN, -690,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.14,NOT RUN, -691,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,NOT RUN, -692,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.16,NOT RUN, -693,dc2-spine2,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -694,dc2-spine2,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -695,dc2-spine2,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -696,dc2-spine2,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -697,dc2-spine2,NTP,Synchronised with NTP server,NTP,NOT RUN, -698,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet2,NOT RUN, -699,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet2,NOT RUN, -700,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet2,NOT RUN, -701,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet2,NOT RUN, -702,dc2-spine2,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -703,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet2,NOT RUN, -704,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet2,NOT RUN, -705,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet2,NOT RUN, -706,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet2,NOT RUN, -707,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet1 - Destination: dc2-leaf1a_Ethernet2,NOT RUN, -708,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet2 - Destination: dc2-leaf1b_Ethernet2,NOT RUN, -709,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet3 - Destination: dc2-leaf2a_Ethernet2,NOT RUN, -710,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet4 - Destination: dc2-leaf2b_Ethernet2,NOT RUN, -711,dc2-spine2,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -712,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.107,NOT RUN, -713,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.111,NOT RUN, -714,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.115,NOT RUN, -715,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.119,NOT RUN, -716,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.13,NOT RUN, -717,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.14,NOT RUN, -718,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,NOT RUN, -719,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.16,NOT RUN, +test_id,node,test_category,test_description,test,result,failure_reasons +1,dc1-leaf1a,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +2,dc1-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,SKIPPED,Dry run! +3,dc1-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,SKIPPED,Dry run! +4,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.97,SKIPPED,Dry run! +5,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.0,SKIPPED,Dry run! +6,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.2,SKIPPED,Dry run! +7,dc1-leaf1a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +8,dc1-leaf1a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +9,dc1-leaf1a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +10,dc1-leaf1a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +11,dc1-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1a_Ethernet1 - Destination: dc1-spine1_Ethernet1,SKIPPED,Dry run! +12,dc1-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1a_Ethernet2 - Destination: dc1-spine2_Ethernet1,SKIPPED,Dry run! +13,dc1-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet1,SKIPPED,Dry run! +14,dc1-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet1,SKIPPED,Dry run! +15,dc1-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc1-leaf1b_Ethernet3,SKIPPED,Dry run! +16,dc1-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc1-leaf1b_Ethernet4,SKIPPED,Dry run! +17,dc1-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc1-leaf1-server1_PCI1,SKIPPED,Dry run! +18,dc1-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC1-LEAF1C_Ethernet1,SKIPPED,Dry run! +19,dc1-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +20,dc1-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! +21,dc1-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +22,dc1-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +23,dc1-leaf1a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc1-leaf1b_Po3,SKIPPED,Dry run! +24,dc1-leaf1a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1,SKIPPED,Dry run! +25,dc1-leaf1a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC1-LEAF1C_Po1,SKIPPED,Dry run! +26,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! +27,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! +28,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! +29,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! +30,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! +31,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! +32,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! +33,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! +34,dc1-leaf1a,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! +35,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet1,SKIPPED,Dry run! +36,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet1,SKIPPED,Dry run! +37,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf1c_Ethernet1,SKIPPED,Dry run! +38,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.1,SKIPPED,Dry run! +39,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.2,SKIPPED,Dry run! +40,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.3,SKIPPED,Dry run! +41,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.4,SKIPPED,Dry run! +42,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.5,SKIPPED,Dry run! +43,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.6,SKIPPED,Dry run! +44,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.11,SKIPPED,Dry run! +45,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.12,SKIPPED,Dry run! +46,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.13,SKIPPED,Dry run! +47,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.14,SKIPPED,Dry run! +48,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.15,SKIPPED,Dry run! +49,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.16,SKIPPED,Dry run! +50,dc1-leaf1a,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! +51,dc1-leaf1a,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +52,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! +53,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! +54,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! +55,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! +56,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! +57,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.6,SKIPPED,Dry run! +58,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! +59,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! +60,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! +61,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! +62,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! +63,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! +64,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! +65,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! +66,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! +67,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! +68,dc1-leaf1b,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +69,dc1-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,SKIPPED,Dry run! +70,dc1-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,SKIPPED,Dry run! +71,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.96,SKIPPED,Dry run! +72,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.4,SKIPPED,Dry run! +73,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.6,SKIPPED,Dry run! +74,dc1-leaf1b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +75,dc1-leaf1b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +76,dc1-leaf1b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +77,dc1-leaf1b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +78,dc1-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1b_Ethernet1 - Destination: dc1-spine1_Ethernet2,SKIPPED,Dry run! +79,dc1-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1b_Ethernet2 - Destination: dc1-spine2_Ethernet2,SKIPPED,Dry run! +80,dc1-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet2,SKIPPED,Dry run! +81,dc1-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet2,SKIPPED,Dry run! +82,dc1-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc1-leaf1a_Ethernet3,SKIPPED,Dry run! +83,dc1-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc1-leaf1a_Ethernet4,SKIPPED,Dry run! +84,dc1-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc1-leaf1-server1_PCI2,SKIPPED,Dry run! +85,dc1-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC1-LEAF1C_Ethernet2,SKIPPED,Dry run! +86,dc1-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +87,dc1-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! +88,dc1-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +89,dc1-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +90,dc1-leaf1b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc1-leaf1a_Po3,SKIPPED,Dry run! +91,dc1-leaf1b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1,SKIPPED,Dry run! +92,dc1-leaf1b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC1-LEAF1C_Po1,SKIPPED,Dry run! +93,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! +94,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! +95,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! +96,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! +97,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! +98,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! +99,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! +100,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! +101,dc1-leaf1b,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! +102,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet2,SKIPPED,Dry run! +103,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet2,SKIPPED,Dry run! +104,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf1a_Ethernet3,SKIPPED,Dry run! +105,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf1a_Ethernet4,SKIPPED,Dry run! +106,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf1c_Ethernet2,SKIPPED,Dry run! +107,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.1,SKIPPED,Dry run! +108,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.2,SKIPPED,Dry run! +109,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.3,SKIPPED,Dry run! +110,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.4,SKIPPED,Dry run! +111,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.5,SKIPPED,Dry run! +112,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.6,SKIPPED,Dry run! +113,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.11,SKIPPED,Dry run! +114,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.12,SKIPPED,Dry run! +115,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.13,SKIPPED,Dry run! +116,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.14,SKIPPED,Dry run! +117,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.15,SKIPPED,Dry run! +118,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.16,SKIPPED,Dry run! +119,dc1-leaf1b,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! +120,dc1-leaf1b,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +121,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! +122,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! +123,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! +124,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! +125,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! +126,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.6,SKIPPED,Dry run! +127,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! +128,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! +129,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! +130,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! +131,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! +132,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! +133,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! +134,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! +135,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! +136,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! +137,dc1-leaf1c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +138,dc1-leaf1c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +139,dc1-leaf1c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +140,dc1-leaf1c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +141,dc1-leaf1c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - DC1-LEAF1A_Ethernet8,SKIPPED,Dry run! +142,dc1-leaf1c,Interface State,"Ethernet Interface & Line Protocol == \""adminDown\""",Ethernet2 - DC1-LEAF1B_Ethernet8,SKIPPED,Dry run! +143,dc1-leaf1c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc1-leaf1-server1_iLO,SKIPPED,Dry run! +144,dc1-leaf1c,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel1 - DC1_L3_LEAF1_Po8,SKIPPED,Dry run! +145,dc1-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet8,SKIPPED,Dry run! +146,dc1-leaf1c,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +147,dc1-leaf2a,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +148,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,SKIPPED,Dry run! +149,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,SKIPPED,Dry run! +150,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.101,SKIPPED,Dry run! +151,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,SKIPPED,Dry run! +152,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.10,SKIPPED,Dry run! +153,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.8,SKIPPED,Dry run! +154,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.1,SKIPPED,Dry run! +155,dc1-leaf2a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +156,dc1-leaf2a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +157,dc1-leaf2a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +158,dc1-leaf2a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +159,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet1 - Destination: dc1-spine1_Ethernet3,SKIPPED,Dry run! +160,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet2 - Destination: dc1-spine2_Ethernet3,SKIPPED,Dry run! +161,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet6 - Destination: dc2-leaf2a_Ethernet6,SKIPPED,Dry run! +162,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet3,SKIPPED,Dry run! +163,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet3,SKIPPED,Dry run! +164,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc1-leaf2b_Ethernet3,SKIPPED,Dry run! +165,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc1-leaf2b_Ethernet4,SKIPPED,Dry run! +166,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc1-leaf2-server1_PCI1,SKIPPED,Dry run! +167,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet6 - P2P_LINK_TO_dc2-leaf2a_Ethernet6,SKIPPED,Dry run! +168,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC1-LEAF2C_Ethernet1,SKIPPED,Dry run! +169,dc1-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +170,dc1-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! +171,dc1-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +172,dc1-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +173,dc1-leaf2a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc1-leaf2b_Po3,SKIPPED,Dry run! +174,dc1-leaf2a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1,SKIPPED,Dry run! +175,dc1-leaf2a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC1-LEAF2C_Po1,SKIPPED,Dry run! +176,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! +177,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! +178,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! +179,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! +180,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! +181,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! +182,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! +183,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! +184,dc1-leaf2a,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! +185,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet3,SKIPPED,Dry run! +186,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet3,SKIPPED,Dry run! +187,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2b_Ethernet3,SKIPPED,Dry run! +188,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf2b_Ethernet4,SKIPPED,Dry run! +189,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc2-leaf2a_Ethernet6,SKIPPED,Dry run! +190,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf2c_Ethernet1,SKIPPED,Dry run! +191,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.1,SKIPPED,Dry run! +192,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.2,SKIPPED,Dry run! +193,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.3,SKIPPED,Dry run! +194,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.4,SKIPPED,Dry run! +195,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.5,SKIPPED,Dry run! +196,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.6,SKIPPED,Dry run! +197,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.11,SKIPPED,Dry run! +198,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.12,SKIPPED,Dry run! +199,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.13,SKIPPED,Dry run! +200,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.14,SKIPPED,Dry run! +201,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.15,SKIPPED,Dry run! +202,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.16,SKIPPED,Dry run! +203,dc1-leaf2a,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! +204,dc1-leaf2a,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +205,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! +206,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! +207,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! +208,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! +209,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! +210,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.6,SKIPPED,Dry run! +211,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! +212,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! +213,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! +214,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! +215,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! +216,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! +217,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! +218,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! +219,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! +220,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! +221,dc1-leaf2b,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +222,dc1-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,SKIPPED,Dry run! +223,dc1-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,SKIPPED,Dry run! +224,dc1-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.100,SKIPPED,Dry run! +225,dc1-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.16,SKIPPED,Dry run! +226,dc1-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.12,SKIPPED,Dry run! +227,dc1-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.14,SKIPPED,Dry run! +228,dc1-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.3,SKIPPED,Dry run! +229,dc1-leaf2b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +230,dc1-leaf2b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +231,dc1-leaf2b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +232,dc1-leaf2b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +233,dc1-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2b_Ethernet1 - Destination: dc1-spine1_Ethernet4,SKIPPED,Dry run! +234,dc1-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2b_Ethernet2 - Destination: dc1-spine2_Ethernet4,SKIPPED,Dry run! +235,dc1-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2b_Ethernet6 - Destination: dc2-leaf2b_Ethernet6,SKIPPED,Dry run! +236,dc1-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet4,SKIPPED,Dry run! +237,dc1-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet4,SKIPPED,Dry run! +238,dc1-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc1-leaf2a_Ethernet3,SKIPPED,Dry run! +239,dc1-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc1-leaf2a_Ethernet4,SKIPPED,Dry run! +240,dc1-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc1-leaf2-server1_PCI2,SKIPPED,Dry run! +241,dc1-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet6 - P2P_LINK_TO_dc2-leaf2b_Ethernet6,SKIPPED,Dry run! +242,dc1-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC1-LEAF2C_Ethernet2,SKIPPED,Dry run! +243,dc1-leaf2b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +244,dc1-leaf2b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! +245,dc1-leaf2b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +246,dc1-leaf2b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +247,dc1-leaf2b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc1-leaf2a_Po3,SKIPPED,Dry run! +248,dc1-leaf2b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1,SKIPPED,Dry run! +249,dc1-leaf2b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC1-LEAF2C_Po1,SKIPPED,Dry run! +250,dc1-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! +251,dc1-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! +252,dc1-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! +253,dc1-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! +254,dc1-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! +255,dc1-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! +256,dc1-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! +257,dc1-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! +258,dc1-leaf2b,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! +259,dc1-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet4,SKIPPED,Dry run! +260,dc1-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet4,SKIPPED,Dry run! +261,dc1-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2a_Ethernet3,SKIPPED,Dry run! +262,dc1-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf2a_Ethernet4,SKIPPED,Dry run! +263,dc1-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc2-leaf2b_Ethernet6,SKIPPED,Dry run! +264,dc1-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf2c_Ethernet2,SKIPPED,Dry run! +265,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.1,SKIPPED,Dry run! +266,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.2,SKIPPED,Dry run! +267,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.3,SKIPPED,Dry run! +268,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.4,SKIPPED,Dry run! +269,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.5,SKIPPED,Dry run! +270,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.6,SKIPPED,Dry run! +271,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.11,SKIPPED,Dry run! +272,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.12,SKIPPED,Dry run! +273,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.13,SKIPPED,Dry run! +274,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.14,SKIPPED,Dry run! +275,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.15,SKIPPED,Dry run! +276,dc1-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.16,SKIPPED,Dry run! +277,dc1-leaf2b,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! +278,dc1-leaf2b,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +279,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! +280,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! +281,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! +282,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! +283,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! +284,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.0.6,SKIPPED,Dry run! +285,dc1-leaf2b,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! +286,dc1-leaf2b,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! +287,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! +288,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! +289,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! +290,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! +291,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! +292,dc1-leaf2b,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! +293,dc1-leaf2b,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! +294,dc1-leaf2b,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! +295,dc1-leaf2c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +296,dc1-leaf2c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +297,dc1-leaf2c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +298,dc1-leaf2c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +299,dc1-leaf2c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - DC1-LEAF2A_Ethernet8,SKIPPED,Dry run! +300,dc1-leaf2c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - DC1-LEAF2B_Ethernet8,SKIPPED,Dry run! +301,dc1-leaf2c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc1-leaf2-server1_iLO,SKIPPED,Dry run! +302,dc1-leaf2c,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel1 - DC1_L3_LEAF2_Po8,SKIPPED,Dry run! +303,dc1-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf2a_Ethernet8,SKIPPED,Dry run! +304,dc1-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf2b_Ethernet8,SKIPPED,Dry run! +305,dc1-leaf2c,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +306,dc1-spine1,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +307,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.3,SKIPPED,Dry run! +308,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.4,SKIPPED,Dry run! +309,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,SKIPPED,Dry run! +310,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.6,SKIPPED,Dry run! +311,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.1,SKIPPED,Dry run! +312,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.13,SKIPPED,Dry run! +313,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.5,SKIPPED,Dry run! +314,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.9,SKIPPED,Dry run! +315,dc1-spine1,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +316,dc1-spine1,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +317,dc1-spine1,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +318,dc1-spine1,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +319,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet1 - Destination: dc1-leaf1a_Ethernet1,SKIPPED,Dry run! +320,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet2 - Destination: dc1-leaf1b_Ethernet1,SKIPPED,Dry run! +321,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet3 - Destination: dc1-leaf2a_Ethernet1,SKIPPED,Dry run! +322,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet4 - Destination: dc1-leaf2b_Ethernet1,SKIPPED,Dry run! +323,dc1-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet1,SKIPPED,Dry run! +324,dc1-spine1,Interface State,"Ethernet Interface & Line Protocol == \""adminDown\""",Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet1,SKIPPED,Dry run! +325,dc1-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet1,SKIPPED,Dry run! +326,dc1-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet1,SKIPPED,Dry run! +327,dc1-spine1,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +328,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet1,SKIPPED,Dry run! +329,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2a_Ethernet1,SKIPPED,Dry run! +330,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf2b_Ethernet1,SKIPPED,Dry run! +331,dc1-spine1,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +332,dc1-spine2,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +333,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.3,SKIPPED,Dry run! +334,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.4,SKIPPED,Dry run! +335,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,SKIPPED,Dry run! +336,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.6,SKIPPED,Dry run! +337,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.11,SKIPPED,Dry run! +338,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.15,SKIPPED,Dry run! +339,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.3,SKIPPED,Dry run! +340,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.7,SKIPPED,Dry run! +341,dc1-spine2,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +342,dc1-spine2,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +343,dc1-spine2,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +344,dc1-spine2,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +345,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet1 - Destination: dc1-leaf1a_Ethernet2,SKIPPED,Dry run! +346,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet2 - Destination: dc1-leaf1b_Ethernet2,SKIPPED,Dry run! +347,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet3 - Destination: dc1-leaf2a_Ethernet2,SKIPPED,Dry run! +348,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet4 - Destination: dc1-leaf2b_Ethernet2,SKIPPED,Dry run! +349,dc1-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet2,SKIPPED,Dry run! +350,dc1-spine2,Interface State,"Ethernet Interface & Line Protocol == \""adminDown\""",Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet2,SKIPPED,Dry run! +351,dc1-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet2,SKIPPED,Dry run! +352,dc1-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet2,SKIPPED,Dry run! +353,dc1-spine2,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +354,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet2,SKIPPED,Dry run! +355,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2a_Ethernet2,SKIPPED,Dry run! +356,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf2b_Ethernet2,SKIPPED,Dry run! +357,dc1-spine2,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +358,dc2-leaf1a,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +359,dc2-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,SKIPPED,Dry run! +360,dc2-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,SKIPPED,Dry run! +361,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.117,SKIPPED,Dry run! +362,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.104,SKIPPED,Dry run! +363,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.106,SKIPPED,Dry run! +364,dc2-leaf1a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +365,dc2-leaf1a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +366,dc2-leaf1a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +367,dc2-leaf1a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +368,dc2-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1a_Ethernet1 - Destination: dc2-spine1_Ethernet1,SKIPPED,Dry run! +369,dc2-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1a_Ethernet2 - Destination: dc2-spine2_Ethernet1,SKIPPED,Dry run! +370,dc2-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet1,SKIPPED,Dry run! +371,dc2-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet1,SKIPPED,Dry run! +372,dc2-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc2-leaf1b_Ethernet3,SKIPPED,Dry run! +373,dc2-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc2-leaf1b_Ethernet4,SKIPPED,Dry run! +374,dc2-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc2-leaf1-server1_PCI1,SKIPPED,Dry run! +375,dc2-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC2-LEAF1C_Ethernet1,SKIPPED,Dry run! +376,dc2-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +377,dc2-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! +378,dc2-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +379,dc2-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +380,dc2-leaf1a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc2-leaf1b_Po3,SKIPPED,Dry run! +381,dc2-leaf1a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1,SKIPPED,Dry run! +382,dc2-leaf1a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC2-LEAF1C_Po1,SKIPPED,Dry run! +383,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! +384,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! +385,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! +386,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! +387,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! +388,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! +389,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! +390,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! +391,dc2-leaf1a,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! +392,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet1,SKIPPED,Dry run! +393,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet1,SKIPPED,Dry run! +394,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf1b_Ethernet3,SKIPPED,Dry run! +395,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf1b_Ethernet4,SKIPPED,Dry run! +396,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf1c_Ethernet1,SKIPPED,Dry run! +397,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.1,SKIPPED,Dry run! +398,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.2,SKIPPED,Dry run! +399,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.3,SKIPPED,Dry run! +400,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.4,SKIPPED,Dry run! +401,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.5,SKIPPED,Dry run! +402,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.6,SKIPPED,Dry run! +403,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.11,SKIPPED,Dry run! +404,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.12,SKIPPED,Dry run! +405,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.13,SKIPPED,Dry run! +406,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.14,SKIPPED,Dry run! +407,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.15,SKIPPED,Dry run! +408,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.16,SKIPPED,Dry run! +409,dc2-leaf1a,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! +410,dc2-leaf1a,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +411,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! +412,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! +413,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! +414,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! +415,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! +416,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.6,SKIPPED,Dry run! +417,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! +418,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! +419,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! +420,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! +421,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! +422,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! +423,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! +424,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! +425,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! +426,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! +427,dc2-leaf1b,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +428,dc2-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,SKIPPED,Dry run! +429,dc2-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,SKIPPED,Dry run! +430,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.116,SKIPPED,Dry run! +431,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.108,SKIPPED,Dry run! +432,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.110,SKIPPED,Dry run! +433,dc2-leaf1b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +434,dc2-leaf1b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +435,dc2-leaf1b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +436,dc2-leaf1b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +437,dc2-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1b_Ethernet1 - Destination: dc2-spine1_Ethernet2,SKIPPED,Dry run! +438,dc2-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1b_Ethernet2 - Destination: dc2-spine2_Ethernet2,SKIPPED,Dry run! +439,dc2-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet2,SKIPPED,Dry run! +440,dc2-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet2,SKIPPED,Dry run! +441,dc2-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc2-leaf1a_Ethernet3,SKIPPED,Dry run! +442,dc2-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc2-leaf1a_Ethernet4,SKIPPED,Dry run! +443,dc2-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc2-leaf1-server1_PCI2,SKIPPED,Dry run! +444,dc2-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC2-LEAF1C_Ethernet2,SKIPPED,Dry run! +445,dc2-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +446,dc2-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! +447,dc2-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +448,dc2-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +449,dc2-leaf1b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc2-leaf1a_Po3,SKIPPED,Dry run! +450,dc2-leaf1b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1,SKIPPED,Dry run! +451,dc2-leaf1b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC2-LEAF1C_Po1,SKIPPED,Dry run! +452,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! +453,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! +454,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! +455,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! +456,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! +457,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! +458,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! +459,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! +460,dc2-leaf1b,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! +461,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet2,SKIPPED,Dry run! +462,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet2,SKIPPED,Dry run! +463,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf1a_Ethernet3,SKIPPED,Dry run! +464,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf1a_Ethernet4,SKIPPED,Dry run! +465,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf1c_Ethernet2,SKIPPED,Dry run! +466,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.1,SKIPPED,Dry run! +467,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.2,SKIPPED,Dry run! +468,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.3,SKIPPED,Dry run! +469,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.4,SKIPPED,Dry run! +470,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.5,SKIPPED,Dry run! +471,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.6,SKIPPED,Dry run! +472,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.11,SKIPPED,Dry run! +473,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.12,SKIPPED,Dry run! +474,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.13,SKIPPED,Dry run! +475,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.14,SKIPPED,Dry run! +476,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.15,SKIPPED,Dry run! +477,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.16,SKIPPED,Dry run! +478,dc2-leaf1b,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! +479,dc2-leaf1b,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +480,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! +481,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! +482,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! +483,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! +484,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! +485,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.6,SKIPPED,Dry run! +486,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! +487,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! +488,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! +489,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! +490,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! +491,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! +492,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! +493,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! +494,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! +495,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! +496,dc2-leaf1c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +497,dc2-leaf1c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +498,dc2-leaf1c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +499,dc2-leaf1c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +500,dc2-leaf1c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - DC2-LEAF1A_Ethernet8,SKIPPED,Dry run! +501,dc2-leaf1c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - DC2-LEAF1B_Ethernet8,SKIPPED,Dry run! +502,dc2-leaf1c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc2-leaf1-server1_iLO,SKIPPED,Dry run! +503,dc2-leaf1c,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel1 - DC2_L3_LEAF1_Po8,SKIPPED,Dry run! +504,dc2-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet8,SKIPPED,Dry run! +505,dc2-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet8,SKIPPED,Dry run! +506,dc2-leaf1c,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +507,dc2-leaf2a,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +508,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,SKIPPED,Dry run! +509,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,SKIPPED,Dry run! +510,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,SKIPPED,Dry run! +511,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.121,SKIPPED,Dry run! +512,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.112,SKIPPED,Dry run! +513,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.114,SKIPPED,Dry run! +514,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.0,SKIPPED,Dry run! +515,dc2-leaf2a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +516,dc2-leaf2a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +517,dc2-leaf2a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +518,dc2-leaf2a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +519,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet1 - Destination: dc2-spine1_Ethernet3,SKIPPED,Dry run! +520,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet2 - Destination: dc2-spine2_Ethernet3,SKIPPED,Dry run! +521,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet6 - Destination: dc1-leaf2a_Ethernet6,SKIPPED,Dry run! +522,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet3,SKIPPED,Dry run! +523,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet3,SKIPPED,Dry run! +524,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc2-leaf2b_Ethernet3,SKIPPED,Dry run! +525,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc2-leaf2b_Ethernet4,SKIPPED,Dry run! +526,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc2-leaf2-server1_PCI1,SKIPPED,Dry run! +527,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet6 - P2P_LINK_TO_dc1-leaf2a_Ethernet6,SKIPPED,Dry run! +528,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC2-LEAF2C_Ethernet1,SKIPPED,Dry run! +529,dc2-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +530,dc2-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! +531,dc2-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +532,dc2-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +533,dc2-leaf2a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc2-leaf2b_Po3,SKIPPED,Dry run! +534,dc2-leaf2a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1,SKIPPED,Dry run! +535,dc2-leaf2a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC2-LEAF2C_Po1,SKIPPED,Dry run! +536,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! +537,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! +538,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! +539,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! +540,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! +541,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! +542,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! +543,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! +544,dc2-leaf2a,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! +545,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet3,SKIPPED,Dry run! +546,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet3,SKIPPED,Dry run! +547,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2b_Ethernet3,SKIPPED,Dry run! +548,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet4,SKIPPED,Dry run! +549,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc1-leaf2a_Ethernet6,SKIPPED,Dry run! +550,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf2c_Ethernet1,SKIPPED,Dry run! +551,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.1,SKIPPED,Dry run! +552,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.2,SKIPPED,Dry run! +553,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.3,SKIPPED,Dry run! +554,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.4,SKIPPED,Dry run! +555,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.5,SKIPPED,Dry run! +556,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.6,SKIPPED,Dry run! +557,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.11,SKIPPED,Dry run! +558,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.12,SKIPPED,Dry run! +559,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.13,SKIPPED,Dry run! +560,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.14,SKIPPED,Dry run! +561,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.15,SKIPPED,Dry run! +562,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.16,SKIPPED,Dry run! +563,dc2-leaf2a,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! +564,dc2-leaf2a,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +565,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! +566,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! +567,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! +568,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! +569,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! +570,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.6,SKIPPED,Dry run! +571,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! +572,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! +573,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! +574,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! +575,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! +576,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! +577,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! +578,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! +579,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! +580,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! +581,dc2-leaf2b,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +582,dc2-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.6,SKIPPED,Dry run! +583,dc2-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,SKIPPED,Dry run! +584,dc2-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,SKIPPED,Dry run! +585,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.120,SKIPPED,Dry run! +586,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.116,SKIPPED,Dry run! +587,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.118,SKIPPED,Dry run! +588,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.2,SKIPPED,Dry run! +589,dc2-leaf2b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +590,dc2-leaf2b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +591,dc2-leaf2b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +592,dc2-leaf2b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +593,dc2-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2b_Ethernet1 - Destination: dc2-spine1_Ethernet4,SKIPPED,Dry run! +594,dc2-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2b_Ethernet2 - Destination: dc2-spine2_Ethernet4,SKIPPED,Dry run! +595,dc2-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2b_Ethernet6 - Destination: dc1-leaf2b_Ethernet6,SKIPPED,Dry run! +596,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet4,SKIPPED,Dry run! +597,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet4,SKIPPED,Dry run! +598,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc2-leaf2a_Ethernet3,SKIPPED,Dry run! +599,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc2-leaf2a_Ethernet4,SKIPPED,Dry run! +600,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc2-leaf2-server1_PCI2,SKIPPED,Dry run! +601,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet6 - P2P_LINK_TO_dc1-leaf2b_Ethernet6,SKIPPED,Dry run! +602,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC2-LEAF2C_Ethernet2,SKIPPED,Dry run! +603,dc2-leaf2b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +604,dc2-leaf2b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! +605,dc2-leaf2b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +606,dc2-leaf2b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +607,dc2-leaf2b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc2-leaf2a_Po3,SKIPPED,Dry run! +608,dc2-leaf2b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1,SKIPPED,Dry run! +609,dc2-leaf2b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC2-LEAF2C_Po1,SKIPPED,Dry run! +610,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! +611,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! +612,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! +613,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! +614,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! +615,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! +616,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! +617,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! +618,dc2-leaf2b,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! +619,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet4,SKIPPED,Dry run! +620,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet4,SKIPPED,Dry run! +621,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet3,SKIPPED,Dry run! +622,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2a_Ethernet4,SKIPPED,Dry run! +623,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc1-leaf2b_Ethernet6,SKIPPED,Dry run! +624,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf2c_Ethernet2,SKIPPED,Dry run! +625,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.1,SKIPPED,Dry run! +626,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.2,SKIPPED,Dry run! +627,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.3,SKIPPED,Dry run! +628,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.4,SKIPPED,Dry run! +629,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.5,SKIPPED,Dry run! +630,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.6,SKIPPED,Dry run! +631,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.11,SKIPPED,Dry run! +632,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.12,SKIPPED,Dry run! +633,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.13,SKIPPED,Dry run! +634,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.14,SKIPPED,Dry run! +635,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.15,SKIPPED,Dry run! +636,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.16,SKIPPED,Dry run! +637,dc2-leaf2b,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! +638,dc2-leaf2b,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +639,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! +640,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! +641,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! +642,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! +643,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! +644,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.6,SKIPPED,Dry run! +645,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! +646,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! +647,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! +648,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! +649,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! +650,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! +651,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! +652,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! +653,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! +654,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! +655,dc2-leaf2c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +656,dc2-leaf2c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +657,dc2-leaf2c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +658,dc2-leaf2c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +659,dc2-leaf2c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - DC2-LEAF2A_Ethernet8,SKIPPED,Dry run! +660,dc2-leaf2c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - DC2-LEAF2B_Ethernet8,SKIPPED,Dry run! +661,dc2-leaf2c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc2-leaf2-server1_iLO,SKIPPED,Dry run! +662,dc2-leaf2c,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel1 - DC2_L3_LEAF2_Po8,SKIPPED,Dry run! +663,dc2-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf2a_Ethernet8,SKIPPED,Dry run! +664,dc2-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf2b_Ethernet8,SKIPPED,Dry run! +665,dc2-leaf2c,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +666,dc2-spine1,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +667,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.13,SKIPPED,Dry run! +668,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.14,SKIPPED,Dry run! +669,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,SKIPPED,Dry run! +670,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.16,SKIPPED,Dry run! +671,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.105,SKIPPED,Dry run! +672,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.109,SKIPPED,Dry run! +673,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.113,SKIPPED,Dry run! +674,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.117,SKIPPED,Dry run! +675,dc2-spine1,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +676,dc2-spine1,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +677,dc2-spine1,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +678,dc2-spine1,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +679,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet1 - Destination: dc2-leaf1a_Ethernet1,SKIPPED,Dry run! +680,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet2 - Destination: dc2-leaf1b_Ethernet1,SKIPPED,Dry run! +681,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet3 - Destination: dc2-leaf2a_Ethernet1,SKIPPED,Dry run! +682,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet4 - Destination: dc2-leaf2b_Ethernet1,SKIPPED,Dry run! +683,dc2-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet1,SKIPPED,Dry run! +684,dc2-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet1,SKIPPED,Dry run! +685,dc2-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet1,SKIPPED,Dry run! +686,dc2-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet1,SKIPPED,Dry run! +687,dc2-spine1,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +688,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet1,SKIPPED,Dry run! +689,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet1,SKIPPED,Dry run! +690,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet1,SKIPPED,Dry run! +691,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet1,SKIPPED,Dry run! +692,dc2-spine1,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +693,dc2-spine2,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +694,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.13,SKIPPED,Dry run! +695,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.14,SKIPPED,Dry run! +696,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,SKIPPED,Dry run! +697,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.16,SKIPPED,Dry run! +698,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.107,SKIPPED,Dry run! +699,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.111,SKIPPED,Dry run! +700,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.115,SKIPPED,Dry run! +701,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.119,SKIPPED,Dry run! +702,dc2-spine2,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +703,dc2-spine2,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +704,dc2-spine2,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +705,dc2-spine2,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +706,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet1 - Destination: dc2-leaf1a_Ethernet2,SKIPPED,Dry run! +707,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet2 - Destination: dc2-leaf1b_Ethernet2,SKIPPED,Dry run! +708,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet3 - Destination: dc2-leaf2a_Ethernet2,SKIPPED,Dry run! +709,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet4 - Destination: dc2-leaf2b_Ethernet2,SKIPPED,Dry run! +710,dc2-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet2,SKIPPED,Dry run! +711,dc2-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet2,SKIPPED,Dry run! +712,dc2-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet2,SKIPPED,Dry run! +713,dc2-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet2,SKIPPED,Dry run! +714,dc2-spine2,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +715,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet2,SKIPPED,Dry run! +716,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet2,SKIPPED,Dry run! +717,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet2,SKIPPED,Dry run! +718,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet2,SKIPPED,Dry run! +719,dc2-spine2,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.md b/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.md index 51c7f6fa89d..cc81699b653 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.md +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.md @@ -11,770 +11,771 @@ ### Summary Totals -| Total Tests | Total Tests Passed | Total Tests Failed | -| ----------- | ------------------ | ------------------ | -| 719 | 0 | 0 | +| Total Tests | Total Tests Passed | Total Tests Failed | Total Tests Skipped | +| ----------- | ------------------ | ------------------ | ------------------- | +| 719 | 0 | 0 | 719 | ### Summary Totals Devices Under Tests -| DUT | Total Tests | Tests Passed | Tests Failed | Categories Failed | -| --- | ----------- | ------------ | ------------ | ----------------- | -| dc1-leaf1a | 67 | 0 | 0 | | -| dc1-leaf1b | 69 | 0 | 0 | | -| dc1-leaf1c | 10 | 0 | 0 | | -| dc1-leaf2a | 74 | 0 | 0 | | -| dc1-leaf2b | 74 | 0 | 0 | | -| dc1-leaf2c | 11 | 0 | 0 | | -| dc1-spine1 | 26 | 0 | 0 | | -| dc1-spine2 | 26 | 0 | 0 | | -| dc2-leaf1a | 69 | 0 | 0 | | -| dc2-leaf1b | 69 | 0 | 0 | | -| dc2-leaf1c | 11 | 0 | 0 | | -| dc2-leaf2a | 74 | 0 | 0 | | -| dc2-leaf2b | 74 | 0 | 0 | | -| dc2-leaf2c | 11 | 0 | 0 | | -| dc2-spine1 | 27 | 0 | 0 | | -| dc2-spine2 | 27 | 0 | 0 | | +| DUT | Total Tests | Tests Passed | Tests Failed | Tests Skipped | Categories Failed | Categories Skipped | +| --- | ----------- | ------------ | ------------ | ------------- | ----------------- | ------------------ | +| dc1-leaf1a | 67 | 0 | 0 | 67 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | +| dc1-leaf1b | 69 | 0 | 0 | 69 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | +| dc1-leaf1c | 10 | 0 | 0 | 10 | | Hardware, Interface State, LLDP Topology, NTP | +| dc1-leaf2a | 74 | 0 | 0 | 74 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | +| dc1-leaf2b | 74 | 0 | 0 | 74 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | +| dc1-leaf2c | 11 | 0 | 0 | 11 | | Hardware, Interface State, LLDP Topology, NTP | +| dc1-spine1 | 26 | 0 | 0 | 26 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, NTP | +| dc1-spine2 | 26 | 0 | 0 | 26 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, NTP | +| dc2-leaf1a | 69 | 0 | 0 | 69 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | +| dc2-leaf1b | 69 | 0 | 0 | 69 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | +| dc2-leaf1c | 11 | 0 | 0 | 11 | | Hardware, Interface State, LLDP Topology, NTP | +| dc2-leaf2a | 74 | 0 | 0 | 74 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | +| dc2-leaf2b | 74 | 0 | 0 | 74 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | +| dc2-leaf2c | 11 | 0 | 0 | 11 | | Hardware, Interface State, LLDP Topology, NTP | +| dc2-spine1 | 27 | 0 | 0 | 27 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, NTP | +| dc2-spine2 | 27 | 0 | 0 | 27 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, NTP | ### Summary Totals Per Category -| Test Category | Total Tests | Tests Passed | Tests Failed | -| ------------- | ----------- | ------------ | ------------ | -| Hardware | 64 | 0 | 0 | -| NTP | 16 | 0 | 0 | -| Interface State | 216 | 0 | 0 | -| LLDP Topology | 63 | 0 | 0 | -| IP Reachability | 36 | 0 | 0 | -| Loopback0 Reachability | 96 | 0 | 0 | -| MLAG | 8 | 0 | 0 | -| BGP | 92 | 0 | 0 | -| Routing Table | 128 | 0 | 0 | +| Test Category | Total Tests | Tests Passed | Tests Failed | Tests Skipped | +| ------------- | ----------- | ------------ | ------------ | ------------- | +| BGP | 92 | 0 | 0 | 92 | +| Hardware | 64 | 0 | 0 | 64 | +| IP Reachability | 36 | 0 | 0 | 36 | +| Interface State | 216 | 0 | 0 | 216 | +| LLDP Topology | 63 | 0 | 0 | 63 | +| Loopback0 Reachability | 96 | 0 | 0 | 96 | +| MLAG | 8 | 0 | 0 | 8 | +| NTP | 16 | 0 | 0 | 16 | +| Routing Table | 128 | 0 | 0 | 128 | ## Failed Test Results Summary -| Test ID | Node | Test Category | Test Description | Test | Test Result | Failure Reason | -| ------- | ---- | ------------- | ---------------- | ---- | ----------- | -------------- | +| Test ID | Node | Test Category | Test Description | Test | Test Result | Failure Reasons | +| ------- | ---- | ------------- | ---------------- | ---- | ----------- | --------------- | ## All Test Results -| Test ID | Node | Test Category | Test Description | Test | Test Result | Failure Reason | -| ------- | ---- | ------------- | ---------------- | ---- | ----------- | -------------- | -| 1 | dc1-leaf1a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 2 | dc1-leaf1a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 3 | dc1-leaf1a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 4 | dc1-leaf1a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 5 | dc1-leaf1a | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 6 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - MLAG_PEER_dc1-leaf1b_Ethernet3 | NOT RUN | - | -| 7 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - MLAG_PEER_dc1-leaf1b_Ethernet4 | NOT RUN | - | -| 8 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet1 | NOT RUN | - | -| 9 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet1 | NOT RUN | - | -| 10 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet8 - DC1-LEAF1C_Ethernet1 | NOT RUN | - | -| 11 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc1-leaf1-server1_PCI1 | NOT RUN | - | -| 12 | dc1-leaf1a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel3 - MLAG_PEER_dc1-leaf1b_Po3 | NOT RUN | - | -| 13 | dc1-leaf1a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel8 - DC1-LEAF1C_Po1 | NOT RUN | - | -| 14 | dc1-leaf1a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1 | NOT RUN | - | -| 15 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | -| 16 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4094 - MLAG_PEER | NOT RUN | - | -| 17 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan11 - VRF10_VLAN11 | NOT RUN | - | -| 18 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan12 - VRF10_VLAN12 | NOT RUN | - | -| 19 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | -| 20 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan21 - VRF11_VLAN21 | NOT RUN | - | -| 21 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan22 - VRF11_VLAN22 | NOT RUN | - | -| 22 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | -| 23 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 24 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | -| 25 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | -| 26 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | -| 27 | dc1-leaf1a | Interface State | Vxlan Interface Status & Line Protocol == "up" | Vxlan1 | NOT RUN | - | -| 28 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet1 | NOT RUN | - | -| 29 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet1 | NOT RUN | - | -| 30 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf1c_Ethernet1 | NOT RUN | - | -| 31 | dc1-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1a_Ethernet1 - Destination: dc1-spine1_Ethernet1 | NOT RUN | - | -| 32 | dc1-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1a_Ethernet2 - Destination: dc1-spine2_Ethernet1 | NOT RUN | - | -| 33 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.3 | NOT RUN | - | -| 34 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.1 | NOT RUN | - | -| 35 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.2 | NOT RUN | - | -| 36 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.4 | NOT RUN | - | -| 37 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.5 | NOT RUN | - | -| 38 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.6 | NOT RUN | - | -| 39 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.11 | NOT RUN | - | -| 40 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.12 | NOT RUN | - | -| 41 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.13 | NOT RUN | - | -| 42 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.14 | NOT RUN | - | -| 43 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.15 | NOT RUN | - | -| 44 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.16 | NOT RUN | - | -| 45 | dc1-leaf1a | MLAG | MLAG State active & Status connected | MLAG | NOT RUN | - | -| 46 | dc1-leaf1a | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 47 | dc1-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.1.97 | NOT RUN | - | -| 48 | dc1-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.0 | NOT RUN | - | -| 49 | dc1-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.2 | NOT RUN | - | -| 50 | dc1-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | NOT RUN | - | -| 51 | dc1-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | NOT RUN | - | -| 52 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | -| 53 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | -| 54 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | -| 55 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | -| 56 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | -| 57 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.6 | NOT RUN | - | -| 58 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | -| 59 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | -| 60 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | -| 61 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | -| 62 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | -| 63 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | -| 64 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | -| 65 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | -| 66 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | -| 67 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | -| 68 | dc1-leaf1b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 69 | dc1-leaf1b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 70 | dc1-leaf1b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 71 | dc1-leaf1b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 72 | dc1-leaf1b | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 73 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - MLAG_PEER_dc1-leaf1a_Ethernet3 | NOT RUN | - | -| 74 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - MLAG_PEER_dc1-leaf1a_Ethernet4 | NOT RUN | - | -| 75 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet2 | NOT RUN | - | -| 76 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet2 | NOT RUN | - | -| 77 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet8 - DC1-LEAF1C_Ethernet2 | NOT RUN | - | -| 78 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc1-leaf1-server1_PCI2 | NOT RUN | - | -| 79 | dc1-leaf1b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel3 - MLAG_PEER_dc1-leaf1a_Po3 | NOT RUN | - | -| 80 | dc1-leaf1b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel8 - DC1-LEAF1C_Po1 | NOT RUN | - | -| 81 | dc1-leaf1b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1 | NOT RUN | - | -| 82 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | -| 83 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4094 - MLAG_PEER | NOT RUN | - | -| 84 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan11 - VRF10_VLAN11 | NOT RUN | - | -| 85 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan12 - VRF10_VLAN12 | NOT RUN | - | -| 86 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | -| 87 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan21 - VRF11_VLAN21 | NOT RUN | - | -| 88 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan22 - VRF11_VLAN22 | NOT RUN | - | -| 89 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | -| 90 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 91 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | -| 92 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | -| 93 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | -| 94 | dc1-leaf1b | Interface State | Vxlan Interface Status & Line Protocol == "up" | Vxlan1 | NOT RUN | - | -| 95 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf1a_Ethernet3 | NOT RUN | - | -| 96 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc1-leaf1a_Ethernet4 | NOT RUN | - | -| 97 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet2 | NOT RUN | - | -| 98 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet2 | NOT RUN | - | -| 99 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf1c_Ethernet2 | NOT RUN | - | -| 100 | dc1-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1b_Ethernet1 - Destination: dc1-spine1_Ethernet2 | NOT RUN | - | -| 101 | dc1-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1b_Ethernet2 - Destination: dc1-spine2_Ethernet2 | NOT RUN | - | -| 102 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.3 | NOT RUN | - | -| 103 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.1 | NOT RUN | - | -| 104 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.2 | NOT RUN | - | -| 105 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.4 | NOT RUN | - | -| 106 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.5 | NOT RUN | - | -| 107 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.6 | NOT RUN | - | -| 108 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.11 | NOT RUN | - | -| 109 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.12 | NOT RUN | - | -| 110 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.13 | NOT RUN | - | -| 111 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.14 | NOT RUN | - | -| 112 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.15 | NOT RUN | - | -| 113 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.16 | NOT RUN | - | -| 114 | dc1-leaf1b | MLAG | MLAG State active & Status connected | MLAG | NOT RUN | - | -| 115 | dc1-leaf1b | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 116 | dc1-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.1.96 | NOT RUN | - | -| 117 | dc1-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.4 | NOT RUN | - | -| 118 | dc1-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.6 | NOT RUN | - | -| 119 | dc1-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | NOT RUN | - | -| 120 | dc1-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | NOT RUN | - | -| 121 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | -| 122 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | -| 123 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | -| 124 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | -| 125 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | -| 126 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.6 | NOT RUN | - | -| 127 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | -| 128 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | -| 129 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | -| 130 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | -| 131 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | -| 132 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | -| 133 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | -| 134 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | -| 135 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | -| 136 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | -| 137 | dc1-leaf1c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 138 | dc1-leaf1c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 139 | dc1-leaf1c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 140 | dc1-leaf1c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 141 | dc1-leaf1c | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 142 | dc1-leaf1c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - DC1-LEAF1A_Ethernet8 | NOT RUN | - | -| 143 | dc1-leaf1c | Interface State | Ethernet Interface & Line Protocol == "adminDown" | Ethernet2 - DC1-LEAF1B_Ethernet8 | NOT RUN | - | -| 144 | dc1-leaf1c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc1-leaf1-server1_iLO | NOT RUN | - | -| 145 | dc1-leaf1c | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel1 - DC1_L3_LEAF1_Po8 | NOT RUN | - | -| 146 | dc1-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf1a_Ethernet8 | NOT RUN | - | -| 147 | dc1-leaf2a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 148 | dc1-leaf2a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 149 | dc1-leaf2a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 150 | dc1-leaf2a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 151 | dc1-leaf2a | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 152 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - MLAG_PEER_dc1-leaf2b_Ethernet3 | NOT RUN | - | -| 153 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - MLAG_PEER_dc1-leaf2b_Ethernet4 | NOT RUN | - | -| 154 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet3 | NOT RUN | - | -| 155 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet3 | NOT RUN | - | -| 156 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet8 - DC1-LEAF2C_Ethernet1 | NOT RUN | - | -| 157 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet6 - P2P_LINK_TO_dc2-leaf2a_Ethernet6 | NOT RUN | - | -| 158 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc1-leaf2-server1_PCI1 | NOT RUN | - | -| 159 | dc1-leaf2a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel3 - MLAG_PEER_dc1-leaf2b_Po3 | NOT RUN | - | -| 160 | dc1-leaf2a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel8 - DC1-LEAF2C_Po1 | NOT RUN | - | -| 161 | dc1-leaf2a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1 | NOT RUN | - | -| 162 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | -| 163 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4094 - MLAG_PEER | NOT RUN | - | -| 164 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan11 - VRF10_VLAN11 | NOT RUN | - | -| 165 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan12 - VRF10_VLAN12 | NOT RUN | - | -| 166 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | -| 167 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan21 - VRF11_VLAN21 | NOT RUN | - | -| 168 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan22 - VRF11_VLAN22 | NOT RUN | - | -| 169 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | -| 170 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 171 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | -| 172 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | -| 173 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | -| 174 | dc1-leaf2a | Interface State | Vxlan Interface Status & Line Protocol == "up" | Vxlan1 | NOT RUN | - | -| 175 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf2b_Ethernet3 | NOT RUN | - | -| 176 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc1-leaf2b_Ethernet4 | NOT RUN | - | -| 177 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet3 | NOT RUN | - | -| 178 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet3 | NOT RUN | - | -| 179 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf2c_Ethernet1 | NOT RUN | - | -| 180 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet6 - remote: dc2-leaf2a_Ethernet6 | NOT RUN | - | -| 181 | dc1-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2a_Ethernet1 - Destination: dc1-spine1_Ethernet3 | NOT RUN | - | -| 182 | dc1-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2a_Ethernet2 - Destination: dc1-spine2_Ethernet3 | NOT RUN | - | -| 183 | dc1-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2a_Ethernet6 - Destination: dc2-leaf2a_Ethernet6 | NOT RUN | - | -| 184 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.3 | NOT RUN | - | -| 185 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.1 | NOT RUN | - | -| 186 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.2 | NOT RUN | - | -| 187 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.4 | NOT RUN | - | -| 188 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.5 | NOT RUN | - | -| 189 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.6 | NOT RUN | - | -| 190 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.11 | NOT RUN | - | -| 191 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.12 | NOT RUN | - | -| 192 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.13 | NOT RUN | - | -| 193 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.14 | NOT RUN | - | -| 194 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.15 | NOT RUN | - | -| 195 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.16 | NOT RUN | - | -| 196 | dc1-leaf2a | MLAG | MLAG State active & Status connected | MLAG | NOT RUN | - | -| 197 | dc1-leaf2a | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 198 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.1.101 | NOT RUN | - | -| 199 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.8 | NOT RUN | - | -| 200 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.10 | NOT RUN | - | -| 201 | dc1-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | NOT RUN | - | -| 202 | dc1-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | NOT RUN | - | -| 203 | dc1-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.15 | NOT RUN | - | -| 204 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 192.168.100.1 | NOT RUN | - | -| 205 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | -| 206 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | -| 207 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | -| 208 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | -| 209 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | -| 210 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.6 | NOT RUN | - | -| 211 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | -| 212 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | -| 213 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | -| 214 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | -| 215 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | -| 216 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | -| 217 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | -| 218 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | -| 219 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | -| 220 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | -| 221 | dc1-leaf2b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 222 | dc1-leaf2b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 223 | dc1-leaf2b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 224 | dc1-leaf2b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 225 | dc1-leaf2b | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 226 | dc1-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - MLAG_PEER_dc1-leaf2a_Ethernet3 | NOT RUN | - | -| 227 | dc1-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - MLAG_PEER_dc1-leaf2a_Ethernet4 | NOT RUN | - | -| 228 | dc1-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet4 | NOT RUN | - | -| 229 | dc1-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet4 | NOT RUN | - | -| 230 | dc1-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet8 - DC1-LEAF2C_Ethernet2 | NOT RUN | - | -| 231 | dc1-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet6 - P2P_LINK_TO_dc2-leaf2b_Ethernet6 | NOT RUN | - | -| 232 | dc1-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc1-leaf2-server1_PCI2 | NOT RUN | - | -| 233 | dc1-leaf2b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel3 - MLAG_PEER_dc1-leaf2a_Po3 | NOT RUN | - | -| 234 | dc1-leaf2b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel8 - DC1-LEAF2C_Po1 | NOT RUN | - | -| 235 | dc1-leaf2b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1 | NOT RUN | - | -| 236 | dc1-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | -| 237 | dc1-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4094 - MLAG_PEER | NOT RUN | - | -| 238 | dc1-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan11 - VRF10_VLAN11 | NOT RUN | - | -| 239 | dc1-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan12 - VRF10_VLAN12 | NOT RUN | - | -| 240 | dc1-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | -| 241 | dc1-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan21 - VRF11_VLAN21 | NOT RUN | - | -| 242 | dc1-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan22 - VRF11_VLAN22 | NOT RUN | - | -| 243 | dc1-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | -| 244 | dc1-leaf2b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 245 | dc1-leaf2b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | -| 246 | dc1-leaf2b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | -| 247 | dc1-leaf2b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | -| 248 | dc1-leaf2b | Interface State | Vxlan Interface Status & Line Protocol == "up" | Vxlan1 | NOT RUN | - | -| 249 | dc1-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf2a_Ethernet3 | NOT RUN | - | -| 250 | dc1-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc1-leaf2a_Ethernet4 | NOT RUN | - | -| 251 | dc1-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet4 | NOT RUN | - | -| 252 | dc1-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet4 | NOT RUN | - | -| 253 | dc1-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf2c_Ethernet2 | NOT RUN | - | -| 254 | dc1-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet6 - remote: dc2-leaf2b_Ethernet6 | NOT RUN | - | -| 255 | dc1-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2b_Ethernet1 - Destination: dc1-spine1_Ethernet4 | NOT RUN | - | -| 256 | dc1-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2b_Ethernet2 - Destination: dc1-spine2_Ethernet4 | NOT RUN | - | -| 257 | dc1-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2b_Ethernet6 - Destination: dc2-leaf2b_Ethernet6 | NOT RUN | - | -| 258 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.3 | NOT RUN | - | -| 259 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.1 | NOT RUN | - | -| 260 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.2 | NOT RUN | - | -| 261 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.4 | NOT RUN | - | -| 262 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.5 | NOT RUN | - | -| 263 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.6 | NOT RUN | - | -| 264 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.11 | NOT RUN | - | -| 265 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.12 | NOT RUN | - | -| 266 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.13 | NOT RUN | - | -| 267 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.14 | NOT RUN | - | -| 268 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.15 | NOT RUN | - | -| 269 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.16 | NOT RUN | - | -| 270 | dc1-leaf2b | MLAG | MLAG State active & Status connected | MLAG | NOT RUN | - | -| 271 | dc1-leaf2b | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 272 | dc1-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.1.100 | NOT RUN | - | -| 273 | dc1-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.12 | NOT RUN | - | -| 274 | dc1-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.14 | NOT RUN | - | -| 275 | dc1-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | NOT RUN | - | -| 276 | dc1-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | NOT RUN | - | -| 277 | dc1-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.16 | NOT RUN | - | -| 278 | dc1-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 192.168.100.3 | NOT RUN | - | -| 279 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | -| 280 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | -| 281 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | -| 282 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | -| 283 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | -| 284 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.6 | NOT RUN | - | -| 285 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | -| 286 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | -| 287 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | -| 288 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | -| 289 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | -| 290 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | -| 291 | dc1-leaf2b | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | -| 292 | dc1-leaf2b | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | -| 293 | dc1-leaf2b | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | -| 294 | dc1-leaf2b | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | -| 295 | dc1-leaf2c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 296 | dc1-leaf2c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 297 | dc1-leaf2c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 298 | dc1-leaf2c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 299 | dc1-leaf2c | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 300 | dc1-leaf2c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - DC1-LEAF2A_Ethernet8 | NOT RUN | - | -| 301 | dc1-leaf2c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - DC1-LEAF2B_Ethernet8 | NOT RUN | - | -| 302 | dc1-leaf2c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc1-leaf2-server1_iLO | NOT RUN | - | -| 303 | dc1-leaf2c | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel1 - DC1_L3_LEAF2_Po8 | NOT RUN | - | -| 304 | dc1-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf2a_Ethernet8 | NOT RUN | - | -| 305 | dc1-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-leaf2b_Ethernet8 | NOT RUN | - | -| 306 | dc1-spine1 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 307 | dc1-spine1 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 308 | dc1-spine1 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 309 | dc1-spine1 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 310 | dc1-spine1 | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 311 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet1 | NOT RUN | - | -| 312 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == "adminDown" | Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet1 | NOT RUN | - | -| 313 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet1 | NOT RUN | - | -| 314 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet1 | NOT RUN | - | -| 315 | dc1-spine1 | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 316 | dc1-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf1a_Ethernet1 | NOT RUN | - | -| 317 | dc1-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf2a_Ethernet1 | NOT RUN | - | -| 318 | dc1-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc1-leaf2b_Ethernet1 | NOT RUN | - | -| 319 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet1 - Destination: dc1-leaf1a_Ethernet1 | NOT RUN | - | -| 320 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet2 - Destination: dc1-leaf1b_Ethernet1 | NOT RUN | - | -| 321 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet3 - Destination: dc1-leaf2a_Ethernet1 | NOT RUN | - | -| 322 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet4 - Destination: dc1-leaf2b_Ethernet1 | NOT RUN | - | -| 323 | dc1-spine1 | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 324 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.1 | NOT RUN | - | -| 325 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.5 | NOT RUN | - | -| 326 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.9 | NOT RUN | - | -| 327 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.13 | NOT RUN | - | -| 328 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.3 | NOT RUN | - | -| 329 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.4 | NOT RUN | - | -| 330 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.5 | NOT RUN | - | -| 331 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.6 | NOT RUN | - | -| 332 | dc1-spine2 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 333 | dc1-spine2 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 334 | dc1-spine2 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 335 | dc1-spine2 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 336 | dc1-spine2 | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 337 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet2 | NOT RUN | - | -| 338 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == "adminDown" | Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet2 | NOT RUN | - | -| 339 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet2 | NOT RUN | - | -| 340 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet2 | NOT RUN | - | -| 341 | dc1-spine2 | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 342 | dc1-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf1a_Ethernet2 | NOT RUN | - | -| 343 | dc1-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf2a_Ethernet2 | NOT RUN | - | -| 344 | dc1-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc1-leaf2b_Ethernet2 | NOT RUN | - | -| 345 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet1 - Destination: dc1-leaf1a_Ethernet2 | NOT RUN | - | -| 346 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet2 - Destination: dc1-leaf1b_Ethernet2 | NOT RUN | - | -| 347 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet3 - Destination: dc1-leaf2a_Ethernet2 | NOT RUN | - | -| 348 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet4 - Destination: dc1-leaf2b_Ethernet2 | NOT RUN | - | -| 349 | dc1-spine2 | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 350 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.3 | NOT RUN | - | -| 351 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.7 | NOT RUN | - | -| 352 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.11 | NOT RUN | - | -| 353 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.15 | NOT RUN | - | -| 354 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.3 | NOT RUN | - | -| 355 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.4 | NOT RUN | - | -| 356 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.5 | NOT RUN | - | -| 357 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.6 | NOT RUN | - | -| 358 | dc2-leaf1a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 359 | dc2-leaf1a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 360 | dc2-leaf1a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 361 | dc2-leaf1a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 362 | dc2-leaf1a | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 363 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - MLAG_PEER_dc2-leaf1b_Ethernet3 | NOT RUN | - | -| 364 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - MLAG_PEER_dc2-leaf1b_Ethernet4 | NOT RUN | - | -| 365 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet1 | NOT RUN | - | -| 366 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet1 | NOT RUN | - | -| 367 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet8 - DC2-LEAF1C_Ethernet1 | NOT RUN | - | -| 368 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc2-leaf1-server1_PCI1 | NOT RUN | - | -| 369 | dc2-leaf1a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel3 - MLAG_PEER_dc2-leaf1b_Po3 | NOT RUN | - | -| 370 | dc2-leaf1a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel8 - DC2-LEAF1C_Po1 | NOT RUN | - | -| 371 | dc2-leaf1a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1 | NOT RUN | - | -| 372 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | -| 373 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4094 - MLAG_PEER | NOT RUN | - | -| 374 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan11 - VRF10_VLAN11 | NOT RUN | - | -| 375 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan12 - VRF10_VLAN12 | NOT RUN | - | -| 376 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | -| 377 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan21 - VRF11_VLAN21 | NOT RUN | - | -| 378 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan22 - VRF11_VLAN22 | NOT RUN | - | -| 379 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | -| 380 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 381 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | -| 382 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | -| 383 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | -| 384 | dc2-leaf1a | Interface State | Vxlan Interface Status & Line Protocol == "up" | Vxlan1 | NOT RUN | - | -| 385 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf1b_Ethernet3 | NOT RUN | - | -| 386 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf1b_Ethernet4 | NOT RUN | - | -| 387 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet1 | NOT RUN | - | -| 388 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet1 | NOT RUN | - | -| 389 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf1c_Ethernet1 | NOT RUN | - | -| 390 | dc2-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1a_Ethernet1 - Destination: dc2-spine1_Ethernet1 | NOT RUN | - | -| 391 | dc2-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1a_Ethernet2 - Destination: dc2-spine2_Ethernet1 | NOT RUN | - | -| 392 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.3 | NOT RUN | - | -| 393 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.1 | NOT RUN | - | -| 394 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.2 | NOT RUN | - | -| 395 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.4 | NOT RUN | - | -| 396 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.5 | NOT RUN | - | -| 397 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.6 | NOT RUN | - | -| 398 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.11 | NOT RUN | - | -| 399 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.12 | NOT RUN | - | -| 400 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.13 | NOT RUN | - | -| 401 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.14 | NOT RUN | - | -| 402 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.15 | NOT RUN | - | -| 403 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.16 | NOT RUN | - | -| 404 | dc2-leaf1a | MLAG | MLAG State active & Status connected | MLAG | NOT RUN | - | -| 405 | dc2-leaf1a | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 406 | dc2-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.117 | NOT RUN | - | -| 407 | dc2-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.104 | NOT RUN | - | -| 408 | dc2-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.106 | NOT RUN | - | -| 409 | dc2-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | NOT RUN | - | -| 410 | dc2-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | NOT RUN | - | -| 411 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | -| 412 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | -| 413 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | -| 414 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | -| 415 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | -| 416 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.6 | NOT RUN | - | -| 417 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | -| 418 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | -| 419 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | -| 420 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | -| 421 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | -| 422 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | -| 423 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | -| 424 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | -| 425 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | -| 426 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | -| 427 | dc2-leaf1b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 428 | dc2-leaf1b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 429 | dc2-leaf1b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 430 | dc2-leaf1b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 431 | dc2-leaf1b | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 432 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - MLAG_PEER_dc2-leaf1a_Ethernet3 | NOT RUN | - | -| 433 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - MLAG_PEER_dc2-leaf1a_Ethernet4 | NOT RUN | - | -| 434 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet2 | NOT RUN | - | -| 435 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet2 | NOT RUN | - | -| 436 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet8 - DC2-LEAF1C_Ethernet2 | NOT RUN | - | -| 437 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc2-leaf1-server1_PCI2 | NOT RUN | - | -| 438 | dc2-leaf1b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel3 - MLAG_PEER_dc2-leaf1a_Po3 | NOT RUN | - | -| 439 | dc2-leaf1b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel8 - DC2-LEAF1C_Po1 | NOT RUN | - | -| 440 | dc2-leaf1b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1 | NOT RUN | - | -| 441 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | -| 442 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4094 - MLAG_PEER | NOT RUN | - | -| 443 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan11 - VRF10_VLAN11 | NOT RUN | - | -| 444 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan12 - VRF10_VLAN12 | NOT RUN | - | -| 445 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | -| 446 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan21 - VRF11_VLAN21 | NOT RUN | - | -| 447 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan22 - VRF11_VLAN22 | NOT RUN | - | -| 448 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | -| 449 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 450 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | -| 451 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | -| 452 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | -| 453 | dc2-leaf1b | Interface State | Vxlan Interface Status & Line Protocol == "up" | Vxlan1 | NOT RUN | - | -| 454 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf1a_Ethernet3 | NOT RUN | - | -| 455 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf1a_Ethernet4 | NOT RUN | - | -| 456 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet2 | NOT RUN | - | -| 457 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet2 | NOT RUN | - | -| 458 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf1c_Ethernet2 | NOT RUN | - | -| 459 | dc2-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1b_Ethernet1 - Destination: dc2-spine1_Ethernet2 | NOT RUN | - | -| 460 | dc2-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1b_Ethernet2 - Destination: dc2-spine2_Ethernet2 | NOT RUN | - | -| 461 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.3 | NOT RUN | - | -| 462 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.1 | NOT RUN | - | -| 463 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.2 | NOT RUN | - | -| 464 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.4 | NOT RUN | - | -| 465 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.5 | NOT RUN | - | -| 466 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.6 | NOT RUN | - | -| 467 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.11 | NOT RUN | - | -| 468 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.12 | NOT RUN | - | -| 469 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.13 | NOT RUN | - | -| 470 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.14 | NOT RUN | - | -| 471 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.15 | NOT RUN | - | -| 472 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.16 | NOT RUN | - | -| 473 | dc2-leaf1b | MLAG | MLAG State active & Status connected | MLAG | NOT RUN | - | -| 474 | dc2-leaf1b | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 475 | dc2-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.116 | NOT RUN | - | -| 476 | dc2-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.108 | NOT RUN | - | -| 477 | dc2-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.110 | NOT RUN | - | -| 478 | dc2-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | NOT RUN | - | -| 479 | dc2-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | NOT RUN | - | -| 480 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | -| 481 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | -| 482 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | -| 483 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | -| 484 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | -| 485 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.6 | NOT RUN | - | -| 486 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | -| 487 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | -| 488 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | -| 489 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | -| 490 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | -| 491 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | -| 492 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | -| 493 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | -| 494 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | -| 495 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | -| 496 | dc2-leaf1c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 497 | dc2-leaf1c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 498 | dc2-leaf1c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 499 | dc2-leaf1c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 500 | dc2-leaf1c | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 501 | dc2-leaf1c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - DC2-LEAF1A_Ethernet8 | NOT RUN | - | -| 502 | dc2-leaf1c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - DC2-LEAF1B_Ethernet8 | NOT RUN | - | -| 503 | dc2-leaf1c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc2-leaf1-server1_iLO | NOT RUN | - | -| 504 | dc2-leaf1c | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel1 - DC2_L3_LEAF1_Po8 | NOT RUN | - | -| 505 | dc2-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf1a_Ethernet8 | NOT RUN | - | -| 506 | dc2-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf1b_Ethernet8 | NOT RUN | - | -| 507 | dc2-leaf2a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 508 | dc2-leaf2a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 509 | dc2-leaf2a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 510 | dc2-leaf2a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 511 | dc2-leaf2a | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 512 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - MLAG_PEER_dc2-leaf2b_Ethernet3 | NOT RUN | - | -| 513 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - MLAG_PEER_dc2-leaf2b_Ethernet4 | NOT RUN | - | -| 514 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet3 | NOT RUN | - | -| 515 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet3 | NOT RUN | - | -| 516 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet8 - DC2-LEAF2C_Ethernet1 | NOT RUN | - | -| 517 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet6 - P2P_LINK_TO_dc1-leaf2a_Ethernet6 | NOT RUN | - | -| 518 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc2-leaf2-server1_PCI1 | NOT RUN | - | -| 519 | dc2-leaf2a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel3 - MLAG_PEER_dc2-leaf2b_Po3 | NOT RUN | - | -| 520 | dc2-leaf2a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel8 - DC2-LEAF2C_Po1 | NOT RUN | - | -| 521 | dc2-leaf2a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1 | NOT RUN | - | -| 522 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | -| 523 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4094 - MLAG_PEER | NOT RUN | - | -| 524 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan11 - VRF10_VLAN11 | NOT RUN | - | -| 525 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan12 - VRF10_VLAN12 | NOT RUN | - | -| 526 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | -| 527 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan21 - VRF11_VLAN21 | NOT RUN | - | -| 528 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan22 - VRF11_VLAN22 | NOT RUN | - | -| 529 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | -| 530 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 531 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | -| 532 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | -| 533 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | -| 534 | dc2-leaf2a | Interface State | Vxlan Interface Status & Line Protocol == "up" | Vxlan1 | NOT RUN | - | -| 535 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2b_Ethernet3 | NOT RUN | - | -| 536 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2b_Ethernet4 | NOT RUN | - | -| 537 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet3 | NOT RUN | - | -| 538 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet3 | NOT RUN | - | -| 539 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf2c_Ethernet1 | NOT RUN | - | -| 540 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet6 - remote: dc1-leaf2a_Ethernet6 | NOT RUN | - | -| 541 | dc2-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2a_Ethernet1 - Destination: dc2-spine1_Ethernet3 | NOT RUN | - | -| 542 | dc2-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2a_Ethernet2 - Destination: dc2-spine2_Ethernet3 | NOT RUN | - | -| 543 | dc2-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2a_Ethernet6 - Destination: dc1-leaf2a_Ethernet6 | NOT RUN | - | -| 544 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.3 | NOT RUN | - | -| 545 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.1 | NOT RUN | - | -| 546 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.2 | NOT RUN | - | -| 547 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.4 | NOT RUN | - | -| 548 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.5 | NOT RUN | - | -| 549 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.6 | NOT RUN | - | -| 550 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.11 | NOT RUN | - | -| 551 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.12 | NOT RUN | - | -| 552 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.13 | NOT RUN | - | -| 553 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.14 | NOT RUN | - | -| 554 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.15 | NOT RUN | - | -| 555 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.16 | NOT RUN | - | -| 556 | dc2-leaf2a | MLAG | MLAG State active & Status connected | MLAG | NOT RUN | - | -| 557 | dc2-leaf2a | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 558 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.121 | NOT RUN | - | -| 559 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.112 | NOT RUN | - | -| 560 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.114 | NOT RUN | - | -| 561 | dc2-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | NOT RUN | - | -| 562 | dc2-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | NOT RUN | - | -| 563 | dc2-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.5 | NOT RUN | - | -| 564 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 192.168.100.0 | NOT RUN | - | -| 565 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | -| 566 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | -| 567 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | -| 568 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | -| 569 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | -| 570 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.6 | NOT RUN | - | -| 571 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | -| 572 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | -| 573 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | -| 574 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | -| 575 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | -| 576 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | -| 577 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | -| 578 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | -| 579 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | -| 580 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | -| 581 | dc2-leaf2b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 582 | dc2-leaf2b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 583 | dc2-leaf2b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 584 | dc2-leaf2b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 585 | dc2-leaf2b | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 586 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - MLAG_PEER_dc2-leaf2a_Ethernet3 | NOT RUN | - | -| 587 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - MLAG_PEER_dc2-leaf2a_Ethernet4 | NOT RUN | - | -| 588 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet4 | NOT RUN | - | -| 589 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet4 | NOT RUN | - | -| 590 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet8 - DC2-LEAF2C_Ethernet2 | NOT RUN | - | -| 591 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet6 - P2P_LINK_TO_dc1-leaf2b_Ethernet6 | NOT RUN | - | -| 592 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc2-leaf2-server1_PCI2 | NOT RUN | - | -| 593 | dc2-leaf2b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel3 - MLAG_PEER_dc2-leaf2a_Po3 | NOT RUN | - | -| 594 | dc2-leaf2b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel8 - DC2-LEAF2C_Po1 | NOT RUN | - | -| 595 | dc2-leaf2b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1 | NOT RUN | - | -| 596 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | -| 597 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4094 - MLAG_PEER | NOT RUN | - | -| 598 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan11 - VRF10_VLAN11 | NOT RUN | - | -| 599 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan12 - VRF10_VLAN12 | NOT RUN | - | -| 600 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | -| 601 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan21 - VRF11_VLAN21 | NOT RUN | - | -| 602 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan22 - VRF11_VLAN22 | NOT RUN | - | -| 603 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | -| 604 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 605 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | -| 606 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | -| 607 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | -| 608 | dc2-leaf2b | Interface State | Vxlan Interface Status & Line Protocol == "up" | Vxlan1 | NOT RUN | - | -| 609 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2a_Ethernet3 | NOT RUN | - | -| 610 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2a_Ethernet4 | NOT RUN | - | -| 611 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet4 | NOT RUN | - | -| 612 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet4 | NOT RUN | - | -| 613 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf2c_Ethernet2 | NOT RUN | - | -| 614 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet6 - remote: dc1-leaf2b_Ethernet6 | NOT RUN | - | -| 615 | dc2-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2b_Ethernet1 - Destination: dc2-spine1_Ethernet4 | NOT RUN | - | -| 616 | dc2-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2b_Ethernet2 - Destination: dc2-spine2_Ethernet4 | NOT RUN | - | -| 617 | dc2-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2b_Ethernet6 - Destination: dc1-leaf2b_Ethernet6 | NOT RUN | - | -| 618 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.3 | NOT RUN | - | -| 619 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.1 | NOT RUN | - | -| 620 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.2 | NOT RUN | - | -| 621 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.4 | NOT RUN | - | -| 622 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.5 | NOT RUN | - | -| 623 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.6 | NOT RUN | - | -| 624 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.11 | NOT RUN | - | -| 625 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.12 | NOT RUN | - | -| 626 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.13 | NOT RUN | - | -| 627 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.14 | NOT RUN | - | -| 628 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.15 | NOT RUN | - | -| 629 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.16 | NOT RUN | - | -| 630 | dc2-leaf2b | MLAG | MLAG State active & Status connected | MLAG | NOT RUN | - | -| 631 | dc2-leaf2b | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 632 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.120 | NOT RUN | - | -| 633 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.116 | NOT RUN | - | -| 634 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.118 | NOT RUN | - | -| 635 | dc2-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | NOT RUN | - | -| 636 | dc2-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | NOT RUN | - | -| 637 | dc2-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.6 | NOT RUN | - | -| 638 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 192.168.100.2 | NOT RUN | - | -| 639 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | -| 640 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | -| 641 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | -| 642 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | -| 643 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | -| 644 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.6 | NOT RUN | - | -| 645 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | -| 646 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | -| 647 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | -| 648 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | -| 649 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | -| 650 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | -| 651 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | -| 652 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | -| 653 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | -| 654 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | -| 655 | dc2-leaf2c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 656 | dc2-leaf2c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 657 | dc2-leaf2c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 658 | dc2-leaf2c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 659 | dc2-leaf2c | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 660 | dc2-leaf2c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - DC2-LEAF2A_Ethernet8 | NOT RUN | - | -| 661 | dc2-leaf2c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - DC2-LEAF2B_Ethernet8 | NOT RUN | - | -| 662 | dc2-leaf2c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc2-leaf2-server1_iLO | NOT RUN | - | -| 663 | dc2-leaf2c | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel1 - DC2_L3_LEAF2_Po8 | NOT RUN | - | -| 664 | dc2-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf2a_Ethernet8 | NOT RUN | - | -| 665 | dc2-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf2b_Ethernet8 | NOT RUN | - | -| 666 | dc2-spine1 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 667 | dc2-spine1 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 668 | dc2-spine1 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 669 | dc2-spine1 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 670 | dc2-spine1 | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 671 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet1 | NOT RUN | - | -| 672 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet1 | NOT RUN | - | -| 673 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet1 | NOT RUN | - | -| 674 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet1 | NOT RUN | - | -| 675 | dc2-spine1 | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 676 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf1a_Ethernet1 | NOT RUN | - | -| 677 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf1b_Ethernet1 | NOT RUN | - | -| 678 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2a_Ethernet1 | NOT RUN | - | -| 679 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2b_Ethernet1 | NOT RUN | - | -| 680 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet1 - Destination: dc2-leaf1a_Ethernet1 | NOT RUN | - | -| 681 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet2 - Destination: dc2-leaf1b_Ethernet1 | NOT RUN | - | -| 682 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet3 - Destination: dc2-leaf2a_Ethernet1 | NOT RUN | - | -| 683 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet4 - Destination: dc2-leaf2b_Ethernet1 | NOT RUN | - | -| 684 | dc2-spine1 | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 685 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.105 | NOT RUN | - | -| 686 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.109 | NOT RUN | - | -| 687 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.113 | NOT RUN | - | -| 688 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.117 | NOT RUN | - | -| 689 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.13 | NOT RUN | - | -| 690 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.14 | NOT RUN | - | -| 691 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.15 | NOT RUN | - | -| 692 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.16 | NOT RUN | - | -| 693 | dc2-spine2 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 694 | dc2-spine2 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 695 | dc2-spine2 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 696 | dc2-spine2 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 697 | dc2-spine2 | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 698 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet2 | NOT RUN | - | -| 699 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet2 | NOT RUN | - | -| 700 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet2 | NOT RUN | - | -| 701 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet2 | NOT RUN | - | -| 702 | dc2-spine2 | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 703 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf1a_Ethernet2 | NOT RUN | - | -| 704 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf1b_Ethernet2 | NOT RUN | - | -| 705 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2a_Ethernet2 | NOT RUN | - | -| 706 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2b_Ethernet2 | NOT RUN | - | -| 707 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet1 - Destination: dc2-leaf1a_Ethernet2 | NOT RUN | - | -| 708 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet2 - Destination: dc2-leaf1b_Ethernet2 | NOT RUN | - | -| 709 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet3 - Destination: dc2-leaf2a_Ethernet2 | NOT RUN | - | -| 710 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet4 - Destination: dc2-leaf2b_Ethernet2 | NOT RUN | - | -| 711 | dc2-spine2 | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 712 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.107 | NOT RUN | - | -| 713 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.111 | NOT RUN | - | -| 714 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.115 | NOT RUN | - | -| 715 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.119 | NOT RUN | - | -| 716 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.13 | NOT RUN | - | -| 717 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.14 | NOT RUN | - | -| 718 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.15 | NOT RUN | - | -| 719 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.16 | NOT RUN | - | +| Test ID | Node | Test Category | Test Description | Test | Test Result | Failure Reasons | +| ------- | ---- | ------------- | ---------------- | ---- | ----------- | --------------- | +| 1 | dc1-leaf1a | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 2 | dc1-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | SKIPPED | Dry run! | +| 3 | dc1-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | SKIPPED | Dry run! | +| 4 | dc1-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.1.97 | SKIPPED | Dry run! | +| 5 | dc1-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.0 | SKIPPED | Dry run! | +| 6 | dc1-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.2 | SKIPPED | Dry run! | +| 7 | dc1-leaf1a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 8 | dc1-leaf1a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 9 | dc1-leaf1a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 10 | dc1-leaf1a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 11 | dc1-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1a_Ethernet1 - Destination: dc1-spine1_Ethernet1 | SKIPPED | Dry run! | +| 12 | dc1-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1a_Ethernet2 - Destination: dc1-spine2_Ethernet1 | SKIPPED | Dry run! | +| 13 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet1 | SKIPPED | Dry run! | +| 14 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet1 | SKIPPED | Dry run! | +| 15 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc1-leaf1b_Ethernet3 | SKIPPED | Dry run! | +| 16 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc1-leaf1b_Ethernet4 | SKIPPED | Dry run! | +| 17 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc1-leaf1-server1_PCI1 | SKIPPED | Dry run! | +| 18 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC1-LEAF1C_Ethernet1 | SKIPPED | Dry run! | +| 19 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 20 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | +| 21 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 22 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 23 | dc1-leaf1a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc1-leaf1b_Po3 | SKIPPED | Dry run! | +| 24 | dc1-leaf1a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1 | SKIPPED | Dry run! | +| 25 | dc1-leaf1a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC1-LEAF1C_Po1 | SKIPPED | Dry run! | +| 26 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | +| 27 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | +| 28 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | +| 29 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | +| 30 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | +| 31 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | +| 32 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | +| 33 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | +| 34 | dc1-leaf1a | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | +| 35 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet1 | SKIPPED | Dry run! | +| 36 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet1 | SKIPPED | Dry run! | +| 37 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf1c_Ethernet1 | SKIPPED | Dry run! | +| 38 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | +| 39 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | +| 40 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | +| 41 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | +| 42 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | +| 43 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.6 | SKIPPED | Dry run! | +| 44 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | +| 45 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | +| 46 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | +| 47 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | +| 48 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | +| 49 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | +| 50 | dc1-leaf1a | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | +| 51 | dc1-leaf1a | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 52 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | +| 53 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | +| 54 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | +| 55 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | +| 56 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | +| 57 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.6 | SKIPPED | Dry run! | +| 58 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | +| 59 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | +| 60 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | +| 61 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | +| 62 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | +| 63 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | +| 64 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | +| 65 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | +| 66 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | +| 67 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | +| 68 | dc1-leaf1b | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 69 | dc1-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | SKIPPED | Dry run! | +| 70 | dc1-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | SKIPPED | Dry run! | +| 71 | dc1-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.1.96 | SKIPPED | Dry run! | +| 72 | dc1-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.4 | SKIPPED | Dry run! | +| 73 | dc1-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.6 | SKIPPED | Dry run! | +| 74 | dc1-leaf1b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 75 | dc1-leaf1b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 76 | dc1-leaf1b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 77 | dc1-leaf1b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 78 | dc1-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1b_Ethernet1 - Destination: dc1-spine1_Ethernet2 | SKIPPED | Dry run! | +| 79 | dc1-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1b_Ethernet2 - Destination: dc1-spine2_Ethernet2 | SKIPPED | Dry run! | +| 80 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet2 | SKIPPED | Dry run! | +| 81 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet2 | SKIPPED | Dry run! | +| 82 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc1-leaf1a_Ethernet3 | SKIPPED | Dry run! | +| 83 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc1-leaf1a_Ethernet4 | SKIPPED | Dry run! | +| 84 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc1-leaf1-server1_PCI2 | SKIPPED | Dry run! | +| 85 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC1-LEAF1C_Ethernet2 | SKIPPED | Dry run! | +| 86 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 87 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | +| 88 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 89 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 90 | dc1-leaf1b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc1-leaf1a_Po3 | SKIPPED | Dry run! | +| 91 | dc1-leaf1b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1 | SKIPPED | Dry run! | +| 92 | dc1-leaf1b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC1-LEAF1C_Po1 | SKIPPED | Dry run! | +| 93 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | +| 94 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | +| 95 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | +| 96 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | +| 97 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | +| 98 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | +| 99 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | +| 100 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | +| 101 | dc1-leaf1b | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | +| 102 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet2 | SKIPPED | Dry run! | +| 103 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet2 | SKIPPED | Dry run! | +| 104 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf1a_Ethernet3 | SKIPPED | Dry run! | +| 105 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc1-leaf1a_Ethernet4 | SKIPPED | Dry run! | +| 106 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf1c_Ethernet2 | SKIPPED | Dry run! | +| 107 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | +| 108 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | +| 109 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | +| 110 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | +| 111 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | +| 112 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.6 | SKIPPED | Dry run! | +| 113 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | +| 114 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | +| 115 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | +| 116 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | +| 117 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | +| 118 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | +| 119 | dc1-leaf1b | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | +| 120 | dc1-leaf1b | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 121 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | +| 122 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | +| 123 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | +| 124 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | +| 125 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | +| 126 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.6 | SKIPPED | Dry run! | +| 127 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | +| 128 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | +| 129 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | +| 130 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | +| 131 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | +| 132 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | +| 133 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | +| 134 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | +| 135 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | +| 136 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | +| 137 | dc1-leaf1c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 138 | dc1-leaf1c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 139 | dc1-leaf1c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 140 | dc1-leaf1c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 141 | dc1-leaf1c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - DC1-LEAF1A_Ethernet8 | SKIPPED | Dry run! | +| 142 | dc1-leaf1c | Interface State | Ethernet Interface & Line Protocol == \"adminDown\" | Ethernet2 - DC1-LEAF1B_Ethernet8 | SKIPPED | Dry run! | +| 143 | dc1-leaf1c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc1-leaf1-server1_iLO | SKIPPED | Dry run! | +| 144 | dc1-leaf1c | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel1 - DC1_L3_LEAF1_Po8 | SKIPPED | Dry run! | +| 145 | dc1-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf1a_Ethernet8 | SKIPPED | Dry run! | +| 146 | dc1-leaf1c | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 147 | dc1-leaf2a | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 148 | dc1-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | SKIPPED | Dry run! | +| 149 | dc1-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | SKIPPED | Dry run! | +| 150 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.1.101 | SKIPPED | Dry run! | +| 151 | dc1-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.15 | SKIPPED | Dry run! | +| 152 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.10 | SKIPPED | Dry run! | +| 153 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.8 | SKIPPED | Dry run! | +| 154 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 192.168.100.1 | SKIPPED | Dry run! | +| 155 | dc1-leaf2a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 156 | dc1-leaf2a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 157 | dc1-leaf2a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 158 | dc1-leaf2a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 159 | dc1-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2a_Ethernet1 - Destination: dc1-spine1_Ethernet3 | SKIPPED | Dry run! | +| 160 | dc1-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2a_Ethernet2 - Destination: dc1-spine2_Ethernet3 | SKIPPED | Dry run! | +| 161 | dc1-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2a_Ethernet6 - Destination: dc2-leaf2a_Ethernet6 | SKIPPED | Dry run! | +| 162 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet3 | SKIPPED | Dry run! | +| 163 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet3 | SKIPPED | Dry run! | +| 164 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc1-leaf2b_Ethernet3 | SKIPPED | Dry run! | +| 165 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc1-leaf2b_Ethernet4 | SKIPPED | Dry run! | +| 166 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc1-leaf2-server1_PCI1 | SKIPPED | Dry run! | +| 167 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet6 - P2P_LINK_TO_dc2-leaf2a_Ethernet6 | SKIPPED | Dry run! | +| 168 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC1-LEAF2C_Ethernet1 | SKIPPED | Dry run! | +| 169 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 170 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | +| 171 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 172 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 173 | dc1-leaf2a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc1-leaf2b_Po3 | SKIPPED | Dry run! | +| 174 | dc1-leaf2a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1 | SKIPPED | Dry run! | +| 175 | dc1-leaf2a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC1-LEAF2C_Po1 | SKIPPED | Dry run! | +| 176 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | +| 177 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | +| 178 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | +| 179 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | +| 180 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | +| 181 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | +| 182 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | +| 183 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | +| 184 | dc1-leaf2a | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | +| 185 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet3 | SKIPPED | Dry run! | +| 186 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet3 | SKIPPED | Dry run! | +| 187 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf2b_Ethernet3 | SKIPPED | Dry run! | +| 188 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc1-leaf2b_Ethernet4 | SKIPPED | Dry run! | +| 189 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet6 - remote: dc2-leaf2a_Ethernet6 | SKIPPED | Dry run! | +| 190 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf2c_Ethernet1 | SKIPPED | Dry run! | +| 191 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | +| 192 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | +| 193 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | +| 194 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | +| 195 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | +| 196 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.6 | SKIPPED | Dry run! | +| 197 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | +| 198 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | +| 199 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | +| 200 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | +| 201 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | +| 202 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | +| 203 | dc1-leaf2a | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | +| 204 | dc1-leaf2a | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 205 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | +| 206 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | +| 207 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | +| 208 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | +| 209 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | +| 210 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.6 | SKIPPED | Dry run! | +| 211 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | +| 212 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | +| 213 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | +| 214 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | +| 215 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | +| 216 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | +| 217 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | +| 218 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | +| 219 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | +| 220 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | +| 221 | dc1-leaf2b | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 222 | dc1-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | SKIPPED | Dry run! | +| 223 | dc1-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | SKIPPED | Dry run! | +| 224 | dc1-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.1.100 | SKIPPED | Dry run! | +| 225 | dc1-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.16 | SKIPPED | Dry run! | +| 226 | dc1-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.12 | SKIPPED | Dry run! | +| 227 | dc1-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.14 | SKIPPED | Dry run! | +| 228 | dc1-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 192.168.100.3 | SKIPPED | Dry run! | +| 229 | dc1-leaf2b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 230 | dc1-leaf2b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 231 | dc1-leaf2b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 232 | dc1-leaf2b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 233 | dc1-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2b_Ethernet1 - Destination: dc1-spine1_Ethernet4 | SKIPPED | Dry run! | +| 234 | dc1-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2b_Ethernet2 - Destination: dc1-spine2_Ethernet4 | SKIPPED | Dry run! | +| 235 | dc1-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2b_Ethernet6 - Destination: dc2-leaf2b_Ethernet6 | SKIPPED | Dry run! | +| 236 | dc1-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet4 | SKIPPED | Dry run! | +| 237 | dc1-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet4 | SKIPPED | Dry run! | +| 238 | dc1-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc1-leaf2a_Ethernet3 | SKIPPED | Dry run! | +| 239 | dc1-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc1-leaf2a_Ethernet4 | SKIPPED | Dry run! | +| 240 | dc1-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc1-leaf2-server1_PCI2 | SKIPPED | Dry run! | +| 241 | dc1-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet6 - P2P_LINK_TO_dc2-leaf2b_Ethernet6 | SKIPPED | Dry run! | +| 242 | dc1-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC1-LEAF2C_Ethernet2 | SKIPPED | Dry run! | +| 243 | dc1-leaf2b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 244 | dc1-leaf2b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | +| 245 | dc1-leaf2b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 246 | dc1-leaf2b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 247 | dc1-leaf2b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc1-leaf2a_Po3 | SKIPPED | Dry run! | +| 248 | dc1-leaf2b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1 | SKIPPED | Dry run! | +| 249 | dc1-leaf2b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC1-LEAF2C_Po1 | SKIPPED | Dry run! | +| 250 | dc1-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | +| 251 | dc1-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | +| 252 | dc1-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | +| 253 | dc1-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | +| 254 | dc1-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | +| 255 | dc1-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | +| 256 | dc1-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | +| 257 | dc1-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | +| 258 | dc1-leaf2b | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | +| 259 | dc1-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet4 | SKIPPED | Dry run! | +| 260 | dc1-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet4 | SKIPPED | Dry run! | +| 261 | dc1-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf2a_Ethernet3 | SKIPPED | Dry run! | +| 262 | dc1-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc1-leaf2a_Ethernet4 | SKIPPED | Dry run! | +| 263 | dc1-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet6 - remote: dc2-leaf2b_Ethernet6 | SKIPPED | Dry run! | +| 264 | dc1-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf2c_Ethernet2 | SKIPPED | Dry run! | +| 265 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | +| 266 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | +| 267 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | +| 268 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | +| 269 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | +| 270 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.0.6 | SKIPPED | Dry run! | +| 271 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | +| 272 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | +| 273 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | +| 274 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | +| 275 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | +| 276 | dc1-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2b - 10.255.0.6/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | +| 277 | dc1-leaf2b | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | +| 278 | dc1-leaf2b | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 279 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | +| 280 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | +| 281 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | +| 282 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | +| 283 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | +| 284 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.6 | SKIPPED | Dry run! | +| 285 | dc1-leaf2b | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | +| 286 | dc1-leaf2b | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | +| 287 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | +| 288 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | +| 289 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | +| 290 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | +| 291 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | +| 292 | dc1-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | +| 293 | dc1-leaf2b | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | +| 294 | dc1-leaf2b | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | +| 295 | dc1-leaf2c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 296 | dc1-leaf2c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 297 | dc1-leaf2c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 298 | dc1-leaf2c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 299 | dc1-leaf2c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - DC1-LEAF2A_Ethernet8 | SKIPPED | Dry run! | +| 300 | dc1-leaf2c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - DC1-LEAF2B_Ethernet8 | SKIPPED | Dry run! | +| 301 | dc1-leaf2c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc1-leaf2-server1_iLO | SKIPPED | Dry run! | +| 302 | dc1-leaf2c | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel1 - DC1_L3_LEAF2_Po8 | SKIPPED | Dry run! | +| 303 | dc1-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf2a_Ethernet8 | SKIPPED | Dry run! | +| 304 | dc1-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-leaf2b_Ethernet8 | SKIPPED | Dry run! | +| 305 | dc1-leaf2c | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 306 | dc1-spine1 | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 307 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.3 | SKIPPED | Dry run! | +| 308 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.4 | SKIPPED | Dry run! | +| 309 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.5 | SKIPPED | Dry run! | +| 310 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.6 | SKIPPED | Dry run! | +| 311 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.1 | SKIPPED | Dry run! | +| 312 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.13 | SKIPPED | Dry run! | +| 313 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.5 | SKIPPED | Dry run! | +| 314 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.9 | SKIPPED | Dry run! | +| 315 | dc1-spine1 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 316 | dc1-spine1 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 317 | dc1-spine1 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 318 | dc1-spine1 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 319 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet1 - Destination: dc1-leaf1a_Ethernet1 | SKIPPED | Dry run! | +| 320 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet2 - Destination: dc1-leaf1b_Ethernet1 | SKIPPED | Dry run! | +| 321 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet3 - Destination: dc1-leaf2a_Ethernet1 | SKIPPED | Dry run! | +| 322 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet4 - Destination: dc1-leaf2b_Ethernet1 | SKIPPED | Dry run! | +| 323 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet1 | SKIPPED | Dry run! | +| 324 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == \"adminDown\" | Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet1 | SKIPPED | Dry run! | +| 325 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet1 | SKIPPED | Dry run! | +| 326 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet1 | SKIPPED | Dry run! | +| 327 | dc1-spine1 | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 328 | dc1-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf1a_Ethernet1 | SKIPPED | Dry run! | +| 329 | dc1-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf2a_Ethernet1 | SKIPPED | Dry run! | +| 330 | dc1-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc1-leaf2b_Ethernet1 | SKIPPED | Dry run! | +| 331 | dc1-spine1 | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 332 | dc1-spine2 | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 333 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.3 | SKIPPED | Dry run! | +| 334 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.4 | SKIPPED | Dry run! | +| 335 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.5 | SKIPPED | Dry run! | +| 336 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.6 | SKIPPED | Dry run! | +| 337 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.11 | SKIPPED | Dry run! | +| 338 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.15 | SKIPPED | Dry run! | +| 339 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.3 | SKIPPED | Dry run! | +| 340 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.7 | SKIPPED | Dry run! | +| 341 | dc1-spine2 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 342 | dc1-spine2 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 343 | dc1-spine2 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 344 | dc1-spine2 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 345 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet1 - Destination: dc1-leaf1a_Ethernet2 | SKIPPED | Dry run! | +| 346 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet2 - Destination: dc1-leaf1b_Ethernet2 | SKIPPED | Dry run! | +| 347 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet3 - Destination: dc1-leaf2a_Ethernet2 | SKIPPED | Dry run! | +| 348 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet4 - Destination: dc1-leaf2b_Ethernet2 | SKIPPED | Dry run! | +| 349 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet2 | SKIPPED | Dry run! | +| 350 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == \"adminDown\" | Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet2 | SKIPPED | Dry run! | +| 351 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet2 | SKIPPED | Dry run! | +| 352 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet2 | SKIPPED | Dry run! | +| 353 | dc1-spine2 | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 354 | dc1-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf1a_Ethernet2 | SKIPPED | Dry run! | +| 355 | dc1-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf2a_Ethernet2 | SKIPPED | Dry run! | +| 356 | dc1-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc1-leaf2b_Ethernet2 | SKIPPED | Dry run! | +| 357 | dc1-spine2 | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 358 | dc2-leaf1a | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 359 | dc2-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | SKIPPED | Dry run! | +| 360 | dc2-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | SKIPPED | Dry run! | +| 361 | dc2-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.117 | SKIPPED | Dry run! | +| 362 | dc2-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.104 | SKIPPED | Dry run! | +| 363 | dc2-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.106 | SKIPPED | Dry run! | +| 364 | dc2-leaf1a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 365 | dc2-leaf1a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 366 | dc2-leaf1a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 367 | dc2-leaf1a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 368 | dc2-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1a_Ethernet1 - Destination: dc2-spine1_Ethernet1 | SKIPPED | Dry run! | +| 369 | dc2-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1a_Ethernet2 - Destination: dc2-spine2_Ethernet1 | SKIPPED | Dry run! | +| 370 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet1 | SKIPPED | Dry run! | +| 371 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet1 | SKIPPED | Dry run! | +| 372 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc2-leaf1b_Ethernet3 | SKIPPED | Dry run! | +| 373 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc2-leaf1b_Ethernet4 | SKIPPED | Dry run! | +| 374 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc2-leaf1-server1_PCI1 | SKIPPED | Dry run! | +| 375 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC2-LEAF1C_Ethernet1 | SKIPPED | Dry run! | +| 376 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 377 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | +| 378 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 379 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 380 | dc2-leaf1a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc2-leaf1b_Po3 | SKIPPED | Dry run! | +| 381 | dc2-leaf1a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1 | SKIPPED | Dry run! | +| 382 | dc2-leaf1a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC2-LEAF1C_Po1 | SKIPPED | Dry run! | +| 383 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | +| 384 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | +| 385 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | +| 386 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | +| 387 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | +| 388 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | +| 389 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | +| 390 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | +| 391 | dc2-leaf1a | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | +| 392 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet1 | SKIPPED | Dry run! | +| 393 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet1 | SKIPPED | Dry run! | +| 394 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf1b_Ethernet3 | SKIPPED | Dry run! | +| 395 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf1b_Ethernet4 | SKIPPED | Dry run! | +| 396 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf1c_Ethernet1 | SKIPPED | Dry run! | +| 397 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | +| 398 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | +| 399 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | +| 400 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | +| 401 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | +| 402 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.6 | SKIPPED | Dry run! | +| 403 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | +| 404 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | +| 405 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | +| 406 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | +| 407 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | +| 408 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | +| 409 | dc2-leaf1a | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | +| 410 | dc2-leaf1a | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 411 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | +| 412 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | +| 413 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | +| 414 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | +| 415 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | +| 416 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.6 | SKIPPED | Dry run! | +| 417 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | +| 418 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | +| 419 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | +| 420 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | +| 421 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | +| 422 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | +| 423 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | +| 424 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | +| 425 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | +| 426 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | +| 427 | dc2-leaf1b | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 428 | dc2-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | SKIPPED | Dry run! | +| 429 | dc2-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | SKIPPED | Dry run! | +| 430 | dc2-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.116 | SKIPPED | Dry run! | +| 431 | dc2-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.108 | SKIPPED | Dry run! | +| 432 | dc2-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.110 | SKIPPED | Dry run! | +| 433 | dc2-leaf1b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 434 | dc2-leaf1b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 435 | dc2-leaf1b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 436 | dc2-leaf1b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 437 | dc2-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1b_Ethernet1 - Destination: dc2-spine1_Ethernet2 | SKIPPED | Dry run! | +| 438 | dc2-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1b_Ethernet2 - Destination: dc2-spine2_Ethernet2 | SKIPPED | Dry run! | +| 439 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet2 | SKIPPED | Dry run! | +| 440 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet2 | SKIPPED | Dry run! | +| 441 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc2-leaf1a_Ethernet3 | SKIPPED | Dry run! | +| 442 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc2-leaf1a_Ethernet4 | SKIPPED | Dry run! | +| 443 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc2-leaf1-server1_PCI2 | SKIPPED | Dry run! | +| 444 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC2-LEAF1C_Ethernet2 | SKIPPED | Dry run! | +| 445 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 446 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | +| 447 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 448 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 449 | dc2-leaf1b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc2-leaf1a_Po3 | SKIPPED | Dry run! | +| 450 | dc2-leaf1b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1 | SKIPPED | Dry run! | +| 451 | dc2-leaf1b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC2-LEAF1C_Po1 | SKIPPED | Dry run! | +| 452 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | +| 453 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | +| 454 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | +| 455 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | +| 456 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | +| 457 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | +| 458 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | +| 459 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | +| 460 | dc2-leaf1b | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | +| 461 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet2 | SKIPPED | Dry run! | +| 462 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet2 | SKIPPED | Dry run! | +| 463 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf1a_Ethernet3 | SKIPPED | Dry run! | +| 464 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf1a_Ethernet4 | SKIPPED | Dry run! | +| 465 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf1c_Ethernet2 | SKIPPED | Dry run! | +| 466 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | +| 467 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | +| 468 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | +| 469 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | +| 470 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | +| 471 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.6 | SKIPPED | Dry run! | +| 472 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | +| 473 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | +| 474 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | +| 475 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | +| 476 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | +| 477 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | +| 478 | dc2-leaf1b | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | +| 479 | dc2-leaf1b | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 480 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | +| 481 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | +| 482 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | +| 483 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | +| 484 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | +| 485 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.6 | SKIPPED | Dry run! | +| 486 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | +| 487 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | +| 488 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | +| 489 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | +| 490 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | +| 491 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | +| 492 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | +| 493 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | +| 494 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | +| 495 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | +| 496 | dc2-leaf1c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 497 | dc2-leaf1c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 498 | dc2-leaf1c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 499 | dc2-leaf1c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 500 | dc2-leaf1c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - DC2-LEAF1A_Ethernet8 | SKIPPED | Dry run! | +| 501 | dc2-leaf1c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - DC2-LEAF1B_Ethernet8 | SKIPPED | Dry run! | +| 502 | dc2-leaf1c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc2-leaf1-server1_iLO | SKIPPED | Dry run! | +| 503 | dc2-leaf1c | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel1 - DC2_L3_LEAF1_Po8 | SKIPPED | Dry run! | +| 504 | dc2-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf1a_Ethernet8 | SKIPPED | Dry run! | +| 505 | dc2-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf1b_Ethernet8 | SKIPPED | Dry run! | +| 506 | dc2-leaf1c | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 507 | dc2-leaf2a | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 508 | dc2-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.5 | SKIPPED | Dry run! | +| 509 | dc2-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | SKIPPED | Dry run! | +| 510 | dc2-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | SKIPPED | Dry run! | +| 511 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.121 | SKIPPED | Dry run! | +| 512 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.112 | SKIPPED | Dry run! | +| 513 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.114 | SKIPPED | Dry run! | +| 514 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 192.168.100.0 | SKIPPED | Dry run! | +| 515 | dc2-leaf2a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 516 | dc2-leaf2a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 517 | dc2-leaf2a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 518 | dc2-leaf2a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 519 | dc2-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2a_Ethernet1 - Destination: dc2-spine1_Ethernet3 | SKIPPED | Dry run! | +| 520 | dc2-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2a_Ethernet2 - Destination: dc2-spine2_Ethernet3 | SKIPPED | Dry run! | +| 521 | dc2-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2a_Ethernet6 - Destination: dc1-leaf2a_Ethernet6 | SKIPPED | Dry run! | +| 522 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet3 | SKIPPED | Dry run! | +| 523 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet3 | SKIPPED | Dry run! | +| 524 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc2-leaf2b_Ethernet3 | SKIPPED | Dry run! | +| 525 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc2-leaf2b_Ethernet4 | SKIPPED | Dry run! | +| 526 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc2-leaf2-server1_PCI1 | SKIPPED | Dry run! | +| 527 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet6 - P2P_LINK_TO_dc1-leaf2a_Ethernet6 | SKIPPED | Dry run! | +| 528 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC2-LEAF2C_Ethernet1 | SKIPPED | Dry run! | +| 529 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 530 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | +| 531 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 532 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 533 | dc2-leaf2a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc2-leaf2b_Po3 | SKIPPED | Dry run! | +| 534 | dc2-leaf2a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1 | SKIPPED | Dry run! | +| 535 | dc2-leaf2a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC2-LEAF2C_Po1 | SKIPPED | Dry run! | +| 536 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | +| 537 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | +| 538 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | +| 539 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | +| 540 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | +| 541 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | +| 542 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | +| 543 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | +| 544 | dc2-leaf2a | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | +| 545 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet3 | SKIPPED | Dry run! | +| 546 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet3 | SKIPPED | Dry run! | +| 547 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2b_Ethernet3 | SKIPPED | Dry run! | +| 548 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2b_Ethernet4 | SKIPPED | Dry run! | +| 549 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet6 - remote: dc1-leaf2a_Ethernet6 | SKIPPED | Dry run! | +| 550 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf2c_Ethernet1 | SKIPPED | Dry run! | +| 551 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | +| 552 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | +| 553 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | +| 554 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | +| 555 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | +| 556 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.6 | SKIPPED | Dry run! | +| 557 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | +| 558 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | +| 559 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | +| 560 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | +| 561 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | +| 562 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | +| 563 | dc2-leaf2a | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | +| 564 | dc2-leaf2a | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 565 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | +| 566 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | +| 567 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | +| 568 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | +| 569 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | +| 570 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.6 | SKIPPED | Dry run! | +| 571 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | +| 572 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | +| 573 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | +| 574 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | +| 575 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | +| 576 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | +| 577 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | +| 578 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | +| 579 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | +| 580 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | +| 581 | dc2-leaf2b | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 582 | dc2-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.6 | SKIPPED | Dry run! | +| 583 | dc2-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | SKIPPED | Dry run! | +| 584 | dc2-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | SKIPPED | Dry run! | +| 585 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.120 | SKIPPED | Dry run! | +| 586 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.116 | SKIPPED | Dry run! | +| 587 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.118 | SKIPPED | Dry run! | +| 588 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 192.168.100.2 | SKIPPED | Dry run! | +| 589 | dc2-leaf2b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 590 | dc2-leaf2b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 591 | dc2-leaf2b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 592 | dc2-leaf2b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 593 | dc2-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2b_Ethernet1 - Destination: dc2-spine1_Ethernet4 | SKIPPED | Dry run! | +| 594 | dc2-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2b_Ethernet2 - Destination: dc2-spine2_Ethernet4 | SKIPPED | Dry run! | +| 595 | dc2-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2b_Ethernet6 - Destination: dc1-leaf2b_Ethernet6 | SKIPPED | Dry run! | +| 596 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet4 | SKIPPED | Dry run! | +| 597 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet4 | SKIPPED | Dry run! | +| 598 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc2-leaf2a_Ethernet3 | SKIPPED | Dry run! | +| 599 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc2-leaf2a_Ethernet4 | SKIPPED | Dry run! | +| 600 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc2-leaf2-server1_PCI2 | SKIPPED | Dry run! | +| 601 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet6 - P2P_LINK_TO_dc1-leaf2b_Ethernet6 | SKIPPED | Dry run! | +| 602 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC2-LEAF2C_Ethernet2 | SKIPPED | Dry run! | +| 603 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 604 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | +| 605 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 606 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 607 | dc2-leaf2b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc2-leaf2a_Po3 | SKIPPED | Dry run! | +| 608 | dc2-leaf2b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1 | SKIPPED | Dry run! | +| 609 | dc2-leaf2b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC2-LEAF2C_Po1 | SKIPPED | Dry run! | +| 610 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | +| 611 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | +| 612 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | +| 613 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | +| 614 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | +| 615 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | +| 616 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | +| 617 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | +| 618 | dc2-leaf2b | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | +| 619 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet4 | SKIPPED | Dry run! | +| 620 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet4 | SKIPPED | Dry run! | +| 621 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2a_Ethernet3 | SKIPPED | Dry run! | +| 622 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2a_Ethernet4 | SKIPPED | Dry run! | +| 623 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet6 - remote: dc1-leaf2b_Ethernet6 | SKIPPED | Dry run! | +| 624 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf2c_Ethernet2 | SKIPPED | Dry run! | +| 625 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | +| 626 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | +| 627 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | +| 628 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | +| 629 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | +| 630 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.6 | SKIPPED | Dry run! | +| 631 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | +| 632 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | +| 633 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | +| 634 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | +| 635 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | +| 636 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | +| 637 | dc2-leaf2b | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | +| 638 | dc2-leaf2b | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 639 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | +| 640 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | +| 641 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | +| 642 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | +| 643 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | +| 644 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.6 | SKIPPED | Dry run! | +| 645 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | +| 646 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | +| 647 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | +| 648 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | +| 649 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | +| 650 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | +| 651 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | +| 652 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | +| 653 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | +| 654 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | +| 655 | dc2-leaf2c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 656 | dc2-leaf2c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 657 | dc2-leaf2c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 658 | dc2-leaf2c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 659 | dc2-leaf2c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - DC2-LEAF2A_Ethernet8 | SKIPPED | Dry run! | +| 660 | dc2-leaf2c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - DC2-LEAF2B_Ethernet8 | SKIPPED | Dry run! | +| 661 | dc2-leaf2c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc2-leaf2-server1_iLO | SKIPPED | Dry run! | +| 662 | dc2-leaf2c | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel1 - DC2_L3_LEAF2_Po8 | SKIPPED | Dry run! | +| 663 | dc2-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf2a_Ethernet8 | SKIPPED | Dry run! | +| 664 | dc2-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf2b_Ethernet8 | SKIPPED | Dry run! | +| 665 | dc2-leaf2c | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 666 | dc2-spine1 | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 667 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.13 | SKIPPED | Dry run! | +| 668 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.14 | SKIPPED | Dry run! | +| 669 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.15 | SKIPPED | Dry run! | +| 670 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.16 | SKIPPED | Dry run! | +| 671 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.105 | SKIPPED | Dry run! | +| 672 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.109 | SKIPPED | Dry run! | +| 673 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.113 | SKIPPED | Dry run! | +| 674 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.117 | SKIPPED | Dry run! | +| 675 | dc2-spine1 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 676 | dc2-spine1 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 677 | dc2-spine1 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 678 | dc2-spine1 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 679 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet1 - Destination: dc2-leaf1a_Ethernet1 | SKIPPED | Dry run! | +| 680 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet2 - Destination: dc2-leaf1b_Ethernet1 | SKIPPED | Dry run! | +| 681 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet3 - Destination: dc2-leaf2a_Ethernet1 | SKIPPED | Dry run! | +| 682 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet4 - Destination: dc2-leaf2b_Ethernet1 | SKIPPED | Dry run! | +| 683 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet1 | SKIPPED | Dry run! | +| 684 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet1 | SKIPPED | Dry run! | +| 685 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet1 | SKIPPED | Dry run! | +| 686 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet1 | SKIPPED | Dry run! | +| 687 | dc2-spine1 | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 688 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf1a_Ethernet1 | SKIPPED | Dry run! | +| 689 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf1b_Ethernet1 | SKIPPED | Dry run! | +| 690 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2a_Ethernet1 | SKIPPED | Dry run! | +| 691 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2b_Ethernet1 | SKIPPED | Dry run! | +| 692 | dc2-spine1 | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 693 | dc2-spine2 | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 694 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.13 | SKIPPED | Dry run! | +| 695 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.14 | SKIPPED | Dry run! | +| 696 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.15 | SKIPPED | Dry run! | +| 697 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.16 | SKIPPED | Dry run! | +| 698 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.107 | SKIPPED | Dry run! | +| 699 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.111 | SKIPPED | Dry run! | +| 700 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.115 | SKIPPED | Dry run! | +| 701 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.119 | SKIPPED | Dry run! | +| 702 | dc2-spine2 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 703 | dc2-spine2 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 704 | dc2-spine2 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 705 | dc2-spine2 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 706 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet1 - Destination: dc2-leaf1a_Ethernet2 | SKIPPED | Dry run! | +| 707 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet2 - Destination: dc2-leaf1b_Ethernet2 | SKIPPED | Dry run! | +| 708 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet3 - Destination: dc2-leaf2a_Ethernet2 | SKIPPED | Dry run! | +| 709 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet4 - Destination: dc2-leaf2b_Ethernet2 | SKIPPED | Dry run! | +| 710 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet2 | SKIPPED | Dry run! | +| 711 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet2 | SKIPPED | Dry run! | +| 712 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet2 | SKIPPED | Dry run! | +| 713 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet2 | SKIPPED | Dry run! | +| 714 | dc2-spine2 | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 715 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf1a_Ethernet2 | SKIPPED | Dry run! | +| 716 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf1b_Ethernet2 | SKIPPED | Dry run! | +| 717 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2a_Ethernet2 | SKIPPED | Dry run! | +| 718 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2b_Ethernet2 | SKIPPED | Dry run! | +| 719 | dc2-spine2 | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | + diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py new file mode 100644 index 00000000000..4e453866b2c --- /dev/null +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py @@ -0,0 +1,117 @@ +# Copyright (c) 2023 Arista Networks, Inc. +# Use of this source code is governed by the Apache License 2.0 +# that can be found in the LICENSE file. +from __future__ import absolute_import, annotations, division, print_function + +__metaclass__ = type + +from pathlib import Path +from typing import Generator + +from ansible.errors import AnsibleActionFail +from ansible.plugins.action import ActionBase, display +from yaml import safe_load_all + +from ansible_collections.arista.avd.plugins.plugin_utils.eos_validate_state_utils.csv_report import CSVReport +from ansible_collections.arista.avd.plugins.plugin_utils.eos_validate_state_utils.md_report import ValidateStateReport +from ansible_collections.arista.avd.plugins.plugin_utils.eos_validate_state_utils.results_manager import ResultsManager +from ansible_collections.arista.avd.plugins.plugin_utils.utils import get + + +def _test_results_stream(input_path: str) -> Generator[dict, None, None]: + """ + Streams test results from a YAML file for a specific host. + + Each YAML document in the file represents a single test result. This function + opens the temporary file created by the `eos_validate_state_runner` action plugin, + reads it, and yields each test result as a dictionary. + + Args: + input_path (str): Path to the temporary YAML file containing test results for a host. + + Yields: + Generator[dict, None, None]: Test result as a dictionary. + """ + with open(input_path, "r", encoding="UTF-8") as file: + yield from safe_load_all(stream=file) + + +class ActionModule(ActionBase): + def run(self, tmp=None, task_vars=None): + if task_vars is None: + task_vars = {} + + result = super().run(tmp, task_vars) + del tmp # tmp no longer has any effect + + # Get task arguments and validate them + only_failed_tests = self._task.args.get("only_failed_tests", False) + if not isinstance(only_failed_tests, bool): + raise AnsibleActionFail(f"'only_failed_tests' must be a boolean, got {only_failed_tests}.") + + validation_report_csv = self._task.args.get("validation_report_csv", True) + if not isinstance(validation_report_csv, bool): + raise AnsibleActionFail(f"'validation_report_csv' must be a boolean, got {validation_report_csv}.") + + validation_report_md = self._task.args.get("validation_report_md", True) + if not isinstance(validation_report_md, bool): + raise AnsibleActionFail(f"'validation_report_md' must be a boolean, got {validation_report_md}.") + + if validation_report_csv: + csv_report_path = self._task.args.get("csv_report_path") + if not isinstance(csv_report_path, str) or not Path(csv_report_path).parent.exists(): + raise AnsibleActionFail("'csv_report_path' must be a valid path and his directory must exist.") + + if validation_report_md: + md_report_path = self._task.args.get("md_report_path") + if not isinstance(md_report_path, str) or not Path(md_report_path).parent.exists(): + raise AnsibleActionFail("'md_report_path' must be a valid path and his directory must exist.") + + # This is not all the hostvars, but just the Ansible Hostvars Manager object where we can retrieve hostvars for each host on-demand + hostvars = task_vars["hostvars"] + + # For now we support the existing behavior of eos_validate_state, all hosts from the play + ansible_play_hosts_all = task_vars.get("ansible_play_hosts_all", []) + + # Initialize an empty ResultsManager that will be used to store results and statistics + try: + test_results = ResultsManager(only_failed_tests=only_failed_tests) + except Exception as error: + raise AnsibleActionFail(f"Error while initializing ResultsManager: {str(error)}") from error + + for host in sorted(ansible_play_hosts_all): + # Getting the host results temp file saved by eos_validate_state_runner action plugin + temp_file = get(hostvars[host], "anta_results.results_temp_file") + if not isinstance(temp_file, str) or not Path(temp_file).exists(): + display.warning(f"Results temporary file path is invalid or does not exist for host {host}.") + continue + try: + # Process the host test results + for test_result in _test_results_stream(temp_file): + test_results.update_results(test_result) + except Exception as error: + display.warning(f"Error while processing the test results of host {host}: {str(error)}") + + # Delete the host results temp file + Path(temp_file).unlink() + + try: + # Generate the CSV report + if validation_report_csv: + with open(csv_report_path, "w", encoding="UTF-8", newline="\n") as csvfile: + csv_report = CSVReport(csvfile=csvfile, results=test_results) + csv_report.generate_report() + + # Generate the MD report + if validation_report_md: + with open(md_report_path, "w", encoding="UTF-8") as mdfile: + md_report = ValidateStateReport(mdfile=mdfile, results=test_results) + md_report.generate_report() + except Exception as error: + raise AnsibleActionFail(f"Error while generating the reports: {str(error)}") from error + + # Make sure the ResultsManager temp file is getting closed and deleted + if test_results.tmp_test_results_file and not test_results.tmp_test_results_file.closed: + test_results.tmp_test_results_file.close() + + return result diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py index 2ed0a4b90ab..6ec3d8745dc 100644 --- a/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py @@ -6,7 +6,9 @@ __metaclass__ = type import logging +import tempfile +import yaml from ansible.errors import AnsibleActionFail from ansible.parsing.yaml.dumper import AnsibleDumper from ansible.plugins.action import ActionBase, display @@ -15,7 +17,7 @@ from ansible_collections.arista.avd.plugins.plugin_utils.utils import PythonToAnsibleContextFilter, PythonToAnsibleHandler LOGGER = logging.getLogger("ansible_collections.arista.avd") -# ANTA 0.8.0 currently add some RichHandler to the root logger so need to disable propagation +# ANTA 0.10.0 currently add some RichHandler to the root logger so need to disable propagation LOGGER.propagate = False @@ -85,10 +87,15 @@ def run(self, tmp=None, task_vars=None): dry_run=ansible_check_mode, yaml_dumper=AnsibleNoAliasDumper, ) + # Create the temp YAML file to save the ANTA results + with tempfile.NamedTemporaryFile(mode="w+", encoding="UTF-8", suffix=".yml", delete=False) as temp_file: + # Each YAML document in the file represents a single test result + temp_file.write(yaml.dump_all(anta_results, Dumper=AnsibleDumper, indent=2, sort_keys=False, width=130)) except Exception as error: raise AnsibleActionFail(message=str(error)) from error - result["results"] = anta_results + # Add the temp file path to the Ansible result + result["results_temp_file"] = temp_file.name return result diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py new file mode 100644 index 00000000000..01e101c2f94 --- /dev/null +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py @@ -0,0 +1,60 @@ +# Copyright (c) 2023 Arista Networks, Inc. +# Use of this source code is governed by the Apache License 2.0 +# that can be found in the LICENSE file. +from __future__ import annotations + +import csv +from json import loads +from typing import TYPE_CHECKING, Generator + +if TYPE_CHECKING: + from io import TextIOWrapper + + from .results_manager import ResultsManager + + +class CSVReport: + """ + Generates and writes the validation CSV report based on test results managed by ResultsManager. + """ + + def __init__(self, csvfile: TextIOWrapper, results: ResultsManager): + """ + Initializes the CSVReport with an open CSV file object to write to and a ResultsManager instance. + + Args: + csvfile (TextIOWrapper): An open file object to write the CSV data into. + results (ResultsManager): The ResultsManager instance containing all test results. + """ + self.csvfile: TextIOWrapper = csvfile + self.results: ResultsManager = results + + def generate_rows(self) -> Generator[dict, None, None]: + """ + Generates rows of test result data for the CSV report. + + Results are sourced from `failed_tests` or from a temporary file managed by ResultsManager, + based on whether the report includes only failed tests or all results. + + Yields: + Generator[dict, None, None]: A generator of test result dictionaries representing CSV rows. + """ + if self.results.only_failed_tests: + for result in self.results.failed_tests: + yield {**result, "failure_reasons": ";".join(result["failure_reasons"])} + else: + self.results.tmp_test_results_file.seek(0) + for result in self.results.tmp_test_results_file: + result_dict = loads(result.strip()) + yield {**result_dict, "failure_reasons": ";".join(result_dict["failure_reasons"])} + + def generate_report(self) -> None: + """ + Generates and writes the CSV report using the collected test results. + """ + fieldnames = ["test_id", "node", "test_category", "test_description", "test", "result", "failure_reasons"] + writer = csv.DictWriter(self.csvfile, fieldnames=fieldnames) + writer.writeheader() + + for row in self.generate_rows(): + writer.writerow(row) diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/get_anta_results.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/get_anta_results.py index 53fac88ded9..b28ddd37c3c 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/get_anta_results.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/get_anta_results.py @@ -10,7 +10,7 @@ from ansible_collections.arista.avd.plugins.plugin_utils.errors import AristaAvdError from ansible_collections.arista.avd.plugins.plugin_utils.utils import NoAliasDumper -from ansible_collections.arista.avd.roles.eos_validate_state.python_modules.constants import ACRONYM_CATEGORIES, AVD_TEST_CLASSES +from ansible_collections.arista.avd.roles.eos_validate_state.python_modules.constants import AVD_TEST_CLASSES from .catalog import Catalog @@ -35,7 +35,7 @@ def _get_skipped_tests_from_tags(run_tags: tuple, skip_tags: tuple) -> list[dict]: """ Arguments: - run_tags (tupe): Tuple of run_tags used to run the playbook. + run_tags (tuple): Tuple of run_tags used to run the playbook. skip_tags (tuple): Tuple of skip_tags used to run the playbook. Returns: @@ -70,7 +70,7 @@ def get_anta_results( save_catalog_name: str | None = None, dry_run: bool = False, yaml_dumper: Dumper | None = NoAliasDumper, -) -> dict: +) -> list[dict]: """ Args: anta_device (AntaDevice): An instantiated AntaDevice @@ -131,20 +131,10 @@ def get_anta_results( run(anta_runner(manager, inventory, catalog.tests)) # Save the results - results = loads(manager.get_results(output_format="json")) + results: list[dict] = loads(manager.get_results(output_format="json")) - # Format the data properly for the eos_validate_state report - for item in results: - categories_list = [] - for category in item["categories"]: - category_list = [word.upper() if word.lower() in ACRONYM_CATEGORIES else word.title() for word in category.split()] - categories_list.append(" ".join(category_list)) - item["categories"] = ", ".join(categories_list) - - # Need to remove `,` for the CSV dump - item["messages"] = "\n".join(item["messages"]).replace(",", "-") - - return results + # Return sorted results + return sorted(results, key=lambda result: (result["categories"], result["custom_field"])) def _create_dry_run_report(device_name: str, tests: list[tuple], manager: ResultManager) -> None: @@ -167,4 +157,6 @@ def _create_dry_run_report(device_name: str, tests: list[tuple], manager: Result categories = result_overwrite.get("categories", test_class.categories) custom_field = result_overwrite.get("custom_field", None) - manager.add_test_result(TestResult(name=device_name, test=test_class.name, categories=categories, description=description, custom_field=custom_field)) + manager.add_test_result( + TestResult(name=device_name, test=test_class.name, categories=categories, description=description, custom_field=custom_field, messages=["Dry run!"]) + ) diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py new file mode 100644 index 00000000000..53c2e2a405a --- /dev/null +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py @@ -0,0 +1,288 @@ +# Copyright (c) 2023 Arista Networks, Inc. +# Use of this source code is governed by the Apache License 2.0 +# that can be found in the LICENSE file. +from __future__ import annotations + +import re +from abc import ABC, abstractmethod +from json import loads +from typing import TYPE_CHECKING, Generator + +if TYPE_CHECKING: + from io import TextIOWrapper + + from .results_manager import ResultsManager + + +class MDReportBase(ABC): + """ + Base class for generating the validation markdown report based on test results managed by ResultsManager. + """ + + def __init__(self, mdfile: TextIOWrapper, results: ResultsManager): + """ + Initializes the MDReportBase with an open markdown file object to write to and a ResultsManager instance. + + Args: + mdfile (TextIOWrapper): An open file object to write the markdown data into. + results (ResultsManager): The ResultsManager instance containing all test results. + """ + self.mdfile: TextIOWrapper = mdfile + self.results: ResultsManager = results + + @abstractmethod + def generate_section(self): + """ + Abstract method to generate a specific section of the markdown report. + Must be implemented by subclasses. + """ + + def generate_header_name(self) -> str: + """ + Generates a formatted header name based on the class name. + + Returns: + str: Formatted header name. + + Example: + `ValidateStateReport` will become Validate State Report. + """ + class_name = self.__class__.__name__ + header_name = re.sub(r"(? None: + """ + Writes a markdown header to the markdown file. + + Args: + heading_level (int): The level of the heading (1-6). + + Example: + ## Test Results Summary + """ + + # Ensure the heading level is within the valid range of 1 to 6 + heading_level = max(1, min(heading_level, 6)) + header_name = self.generate_header_name() + heading = "#" * heading_level + " " + header_name + self.mdfile.write(f"{heading}\n\n") + + def write_table_header(self, headers: list[str]) -> None: + """ + Writes a table header to the markdown file. + + Args: + headers (list[str]): List of header strings for the table. + """ + self.mdfile.write("\n".join(headers) + "\n") + + +class ValidateStateReport(MDReportBase): + """ + Generates the `# Validate State Report` section of the markdown report. + """ + + def generate_report(self, cls=None, is_root=True) -> None: + """ + Recursively generates report sections for each inner classes. + + Args: + cls: Internal use for recursive calls. + is_root (bool): Flag indicating if this is the root call. + """ + + # Determine the class to process; default to the current class on the first call. + if cls is None: + cls = self.__class__ + + if is_root: + self.generate_section() + + # Iterate through inner classes and generate their respective sections + for element in cls.__dict__.values(): + if isinstance(element, type) and issubclass(element, MDReportBase): + inner_cls_instance = element(self.mdfile, self.results) + inner_cls_instance.generate_section() + self.generate_report(cls=element, is_root=False) + + def generate_section(self) -> None: + """ + Generates the `# Validate State Report` section of the markdown report. + """ + self.write_header(heading_level=1) + self.mdfile.write( + """**Table of Contents:** + +- [Validate State Report](validate-state-report) + - [Test Results Summary](#test-results-summary) + - [Failed Test Results Summary](#failed-test-results-summary) + - [All Test Results](#all-test-results) + +""" + ) + + class TestResultsSummary(MDReportBase): + """ + Generates the `## Test Results Summary` section of the markdown report. + """ + + def generate_section(self) -> None: + """ + Generates the `## Test Results Summary` section of the markdown report. + """ + self.write_header(heading_level=2) + + class SummaryTotals(MDReportBase): + """ + Generates the `### Summary Totals` section of the markdown report. + """ + + TABLE_HEADER = [ + "| Total Tests | Total Tests Passed | Total Tests Failed | Total Tests Skipped |", + "| ----------- | ------------------ | ------------------ | ------------------- |", + ] + + def generate_section(self) -> None: + """ + Generates the `### Summary Totals` section of the markdown report. + """ + self.write_header(heading_level=3) + self.write_table_header(self.TABLE_HEADER) + self.mdfile.write( + f"| {self.results.total_tests} | {self.results.total_tests_passed} | {self.results.total_tests_failed} |" + f" {self.results.total_tests_skipped} |\n\n" + ) + + class SummaryTotalsDevicesUnderTests(MDReportBase): + """ + Generates the `### Summary Totals Devices Under Tests` section of the markdown report. + """ + + TABLE_HEADER = [ + "| DUT | Total Tests | Tests Passed | Tests Failed | Tests Skipped | Categories Failed | Categories Skipped |", + "| --- | ----------- | ------------ | ------------ | ------------- | ----------------- | ------------------ |", + ] + + def generate_rows(self) -> Generator[str, None, None]: + """ + Generates the rows of the results table. + """ + for dut, stat in self.results.dut_stats.items(): + total_tests = stat["tests_passed"] + stat["tests_failed"] + stat["tests_skipped"] + categories_failed = ", ".join(sorted(stat["categories_failed"])) + categories_skipped = ", ".join(sorted(stat["categories_skipped"])) + yield ( + f"| {dut} | {total_tests} | {stat['tests_passed']} | {stat['tests_failed']} | {stat['tests_skipped']} | {categories_failed} |" + f" {categories_skipped} |\n" + ) + + def generate_section(self) -> None: + """ + Generates the `### Summary Totals Devices Under Tests` section of the markdown report. + """ + self.write_header(heading_level=3) + self.write_table_header(self.TABLE_HEADER) + for row in self.generate_rows(): + self.mdfile.write(row) + self.mdfile.write("\n") + + class SummaryTotalsPerCategory(MDReportBase): + """ + Generates the `### Summary Totals Per Category` section of the markdown report. + """ + + TABLE_HEADER = [ + "| Test Category | Total Tests | Tests Passed | Tests Failed | Tests Skipped |", + "| ------------- | ----------- | ------------ | ------------ | ------------- |", + ] + + def generate_rows(self) -> Generator[str, None, None]: + """ + Generates the rows of the results table. + """ + for category, stat in self.results.category_stats.items(): + total_tests = stat["tests_passed"] + stat["tests_failed"] + stat["tests_skipped"] + yield f"| {category} | {total_tests} | {stat['tests_passed']} | {stat['tests_failed']} | {stat['tests_skipped']} |\n" + + def generate_section(self) -> None: + """ + Generates the `### Summary Totals Per Category` section of the markdown report. + """ + self.write_header(heading_level=3) + self.write_table_header(self.TABLE_HEADER) + for row in self.generate_rows(): + self.mdfile.write(row) + self.mdfile.write("\n") + + class FailedTestResultsSummary(MDReportBase): + """ + Generates the `## Failed Test Results Summary` section of the markdown report. + """ + + TABLE_HEADER = [ + "| Test ID | Node | Test Category | Test Description | Test | Test Result | Failure Reasons |", + "| ------- | ---- | ------------- | ---------------- | ---- | ----------- | --------------- |", + ] + + def generate_rows(self) -> Generator[str, None, None]: + """ + Generates the rows of the results table. + """ + for result in self.results.failed_tests: + failure_reasons = "\n".join(result["failure_reasons"]) + yield ( + f"| {result['test_id'] or '-'} | {result['node'] or '-'} | {result['test_category'] or '-'} | {result['test_description'] or '-'} |" + f" {result['test'] or '-'} | {result['result'] or '-'} | {failure_reasons or '-'} |\n" + ) + + def generate_section(self) -> None: + """ + Generates the `## Failed Test Results Summary` section of the markdown report. + """ + self.write_header(heading_level=2) + self.write_table_header(self.TABLE_HEADER) + for row in self.generate_rows(): + self.mdfile.write(row) + self.mdfile.write("\n") + + class AllTestResults(MDReportBase): + """ + Generates the `## All Test Results` section of the markdown report. + + This section is generated only if the report includes all results. + """ + + TABLE_HEADER = [ + "| Test ID | Node | Test Category | Test Description | Test | Test Result | Failure Reasons |", + "| ------- | ---- | ------------- | ---------------- | ---- | ----------- | --------------- |", + ] + + def generate_rows(self) -> Generator[str, None, None]: + """ + Generates the rows of the results table. + """ + + # Go at the beginning of the temp file + self.results.tmp_test_results_file.seek(0) + + for row in self.results.tmp_test_results_file: + result = loads(row.strip()) + failure_reasons = "\n".join(result["failure_reasons"]) + yield ( + f"| {result['test_id'] or '-'} | {result['node'] or '-'} | {result['test_category'] or '-'} | {result['test_description'] or '-'} |" + f" {result['test'] or '-'} | {result['result'] or '-'} | {failure_reasons or '-'} |\n" + ) + + def generate_section(self) -> None: + """ + Generates the `## All Test Results` section of the markdown report. + + This section is generated only if the report includes all results. + """ + if not self.results.only_failed_tests: + self.write_header(heading_level=2) + self.write_table_header(self.TABLE_HEADER) + for row in self.generate_rows(): + self.mdfile.write(row) + self.mdfile.write("\n") diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py new file mode 100644 index 00000000000..607656c935b --- /dev/null +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py @@ -0,0 +1,142 @@ +# Copyright (c) 2023 Arista Networks, Inc. +# Use of this source code is governed by the Apache License 2.0 +# that can be found in the LICENSE file. +from __future__ import annotations + +from json import dumps +from tempfile import TemporaryFile +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from io import TextIOWrapper + + +class ResultsManager: + """ + Manages and stores test results from eos_validate_state running ANTA. + + This class processes individual test results, categorizes them based on their outcomes, + and maintains statistics on various aspects like total tests passed, failed, and skipped. + + It also handles temporary storage of all test results if needed. + + An instance of this class holding all results can then be passed to the report classes to + generate the validation reports. + """ + + def __init__(self, only_failed_tests: bool = True): + """ + Initializes the ResultsManager with default values and optional temporary file + creation to hold all test results. + + Args: + only_failed_tests (bool): Flag to determine if only failed tests are considered. + Defaults to True. If set to False, a temporary file will + be created to hold all test results. + """ + self.test_id: int = 0 + self.total_tests_passed: int = 0 + self.total_tests_failed: int = 0 + self.total_tests_skipped: int = 0 + self.dut_stats: dict[str, dict[str, int]] = {} + self.category_stats: dict[str, dict[str, int]] = {} + self.failed_tests: list[dict] = [] + self.only_failed_tests: bool = only_failed_tests + + # Initialize a temp file to hold all test results + self.tmp_test_results_file: TextIOWrapper | None = TemporaryFile(mode="w+", encoding="UTF-8") if not only_failed_tests else None + + def parse_result(self, result: dict) -> dict: + """ + Parses a single test result and converts it into a standardized format for the reports. + + Args: + result (dict): The test result data to parse. + + Returns: + dict: The parsed and standardized test result. + """ + + # All AVD tests have a single category and overwrite the native ANTA tests categories + categories = result.get("categories", []) + new_test_category = categories[0] if categories else "" + + # Convert the ANTA test result + if (anta_result := result.get("result", "")) == "success": + new_result = "PASS" + elif anta_result == "failure" or anta_result == "error": + new_result = "FAIL" + elif anta_result == "skipped" or anta_result == "unset": + new_result = "SKIPPED" + else: + new_result = "" + + # Since AVD tests can have the same description and category, ANTA's custom_field is used to differentiate tests + custom_field = result.get("custom_field", "") + new_test = result.get("test", "") if custom_field == "None" else custom_field + + # Create the parsed result dictionary + parsed_result = { + "test_id": self.test_id, + "node": result.get("name", ""), + "test_category": new_test_category, + "test_description": result.get("description", ""), + "test": new_test, + "result": new_result, + "failure_reasons": result.get("messages", []), + } + + return parsed_result + + def update_results(self, result: dict) -> None: + """ + Updates the internal statistics and test results based on the given test result. + + Args: + result (dict): The test result data to be added and processed. + """ + + # Update the test_id counter when we add a result + self.test_id += 1 + + # Parse and convert the result data + parsed_result = self.parse_result(result) + + # Update the statistics + category = parsed_result["test_category"] + dut = parsed_result["node"] + if category not in self.category_stats: + self.category_stats[category] = {"tests_passed": 0, "tests_failed": 0, "tests_skipped": 0} + if dut not in self.dut_stats: + self.dut_stats[dut] = {"tests_passed": 0, "tests_failed": 0, "tests_skipped": 0, "categories_failed": set(), "categories_skipped": set()} + + test_result = parsed_result["result"] + if test_result == "PASS": + self.total_tests_passed += 1 + self.dut_stats[dut]["tests_passed"] += 1 + self.category_stats[category]["tests_passed"] += 1 + elif test_result == "FAIL": + self.total_tests_failed += 1 + self.dut_stats[dut]["tests_failed"] += 1 + self.category_stats[category]["tests_failed"] += 1 + self.dut_stats[dut]["categories_failed"].add(category) + self.failed_tests.append(parsed_result) + elif test_result == "SKIPPED": + self.total_tests_skipped += 1 + self.dut_stats[dut]["tests_skipped"] += 1 + self.category_stats[category]["tests_skipped"] += 1 + self.dut_stats[dut]["categories_skipped"].add(category) + + # Update the temp results if we want all tests and not only the failed tests + if self.tmp_test_results_file and not self.only_failed_tests: + self.tmp_test_results_file.write(dumps(parsed_result) + "\n") + + @property + def total_tests(self) -> int: + """ + Calculates the total number of tests processed. + + Returns: + int: The total number of tests. + """ + return self.total_tests_passed + self.total_tests_failed + self.total_tests_skipped diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/defaults/main.yml b/ansible_collections/arista/avd/roles/eos_validate_state/defaults/main.yml index 947448ac0ce..6158102cbbf 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/defaults/main.yml +++ b/ansible_collections/arista/avd/roles/eos_validate_state/defaults/main.yml @@ -40,6 +40,12 @@ accepted_pwr_supply_states: "{{ validation_role.pwr_supply_states | arista.avd.d # Allow different states for fans accepted_fan_states: "{{ validation_role.fan_states | arista.avd.default(['ok']) }}" +# Generate CSV results file +validation_report_csv: "{{ validation_role.validation_report_csv | arista.avd.default(true) }}" + +# Generate MD results file +validation_report_md: "{{ validation_role.validation_report_md | arista.avd.default(true) }}" + # Print only FAILED tests only_failed_tests: "{{ validation_role.only_failed_tests | arista.avd.default(false) }}" diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/python_modules/tests/avdtesthardware.py b/ansible_collections/arista/avd/roles/eos_validate_state/python_modules/tests/avdtesthardware.py index 4f3e6e265c4..102a7979dcd 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/python_modules/tests/avdtesthardware.py +++ b/ansible_collections/arista/avd/roles/eos_validate_state/python_modules/tests/avdtesthardware.py @@ -29,10 +29,24 @@ def test_definition(self) -> dict: xcvr_manufacturers.append("Not Present") anta_tests = [ - {"VerifyEnvironmentPower": {"states": get(self.hostvars[self.device_name], "validation_role.pwr_supply_states", ["ok"])}}, - {"VerifyEnvironmentCooling": {"states": get(self.hostvars[self.device_name], "validation_role.fan_states", ["ok"])}}, - {"VerifyTemperature": {}}, - {"VerifyTransceiversManufacturers": {"manufacturers": xcvr_manufacturers}}, + { + "VerifyEnvironmentPower": { + "states": get(self.hostvars[self.device_name], "validation_role.pwr_supply_states", ["ok"]), + "result_overwrite": {"categories": self.categories}, + } + }, + { + "VerifyEnvironmentCooling": { + "states": get(self.hostvars[self.device_name], "validation_role.fan_states", ["ok"]), + "result_overwrite": {"categories": self.categories}, + } + }, + { + "VerifyTemperature": { + "result_overwrite": {"categories": self.categories}, + } + }, + {"VerifyTransceiversManufacturers": {"manufacturers": xcvr_manufacturers, "result_overwrite": {"categories": self.categories}}}, ] return {self.anta_module: anta_tests} diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml index f40d754718f..eeb7fb3aef8 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml +++ b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml @@ -14,5 +14,5 @@ device_catalog_output_dir: "{{ test_catalogs_dir }}" register: anta_results check_mode: false - when: use_anta + when: use_anta | bool tags: always diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml index 48fd658eb97..6c4f7d05877 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml +++ b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml @@ -42,19 +42,34 @@ ## Run eos_validate_state using ANTA ## ######################################### -- name: Run eos_validate_state_runner leveraging ANTA +- name: Include ANTA tests ansible.builtin.include_tasks: "anta_tests.yml" - when: use_anta + when: use_anta | bool # Ensure that `use_anta` is evaluated as a boolean when using `-e` or `--extra-vars` tags: - always -##################################### +- name: Create validation reports from ANTA tests + arista.avd.eos_validate_state_reports: + csv_report_path: "{{ eos_validate_state_csv_report_path }}" + md_report_path: "{{ eos_validate_state_md_report_path }}" + validation_report_csv: "{{ validation_report_csv }}" + validation_report_md: "{{ validation_report_md }}" + only_failed_tests: "{{ only_failed_tests }}" + delegate_to: localhost + run_once: true + check_mode: false + when: use_anta | bool + tags: + - always + - reports + +############################################# ## Run ansible assert eos_validate_state ## -##################################### +############################################# -- name: Run ansible assert tests +- name: Include Ansible assert tests ansible.builtin.include_tasks: "ansible_tests.yml" - when: not use_anta + when: not use_anta | bool tags: - always @@ -64,6 +79,7 @@ - name: Create reports ansible.builtin.include_tasks: "reports.yml" + when: not use_anta | bool tags: - always - reports diff --git a/ansible_collections/arista/avd/tests/sanity/ignore-2.12.txt b/ansible_collections/arista/avd/tests/sanity/ignore-2.12.txt index ceabf38e07c..37ffef29ae7 100644 --- a/ansible_collections/arista/avd/tests/sanity/ignore-2.12.txt +++ b/ansible_collections/arista/avd/tests/sanity/ignore-2.12.txt @@ -9,3 +9,4 @@ plugins/modules/verify_requirements.py validate-modules:missing-gplv3-license plugins/modules/yaml_templates_to_facts.py validate-modules:missing-gplv3-license plugins/vars/global_vars.py validate-modules:missing-gplv3-license plugins/modules/eos_validate_state_runner.py validate-modules:missing-gplv3-license +plugins/modules/eos_validate_state_reports.py validate-modules:missing-gplv3-license diff --git a/ansible_collections/arista/avd/tests/sanity/ignore-2.13.txt b/ansible_collections/arista/avd/tests/sanity/ignore-2.13.txt index ceabf38e07c..37ffef29ae7 100644 --- a/ansible_collections/arista/avd/tests/sanity/ignore-2.13.txt +++ b/ansible_collections/arista/avd/tests/sanity/ignore-2.13.txt @@ -9,3 +9,4 @@ plugins/modules/verify_requirements.py validate-modules:missing-gplv3-license plugins/modules/yaml_templates_to_facts.py validate-modules:missing-gplv3-license plugins/vars/global_vars.py validate-modules:missing-gplv3-license plugins/modules/eos_validate_state_runner.py validate-modules:missing-gplv3-license +plugins/modules/eos_validate_state_reports.py validate-modules:missing-gplv3-license diff --git a/ansible_collections/arista/avd/tests/sanity/ignore-2.14.txt b/ansible_collections/arista/avd/tests/sanity/ignore-2.14.txt index ceabf38e07c..37ffef29ae7 100644 --- a/ansible_collections/arista/avd/tests/sanity/ignore-2.14.txt +++ b/ansible_collections/arista/avd/tests/sanity/ignore-2.14.txt @@ -9,3 +9,4 @@ plugins/modules/verify_requirements.py validate-modules:missing-gplv3-license plugins/modules/yaml_templates_to_facts.py validate-modules:missing-gplv3-license plugins/vars/global_vars.py validate-modules:missing-gplv3-license plugins/modules/eos_validate_state_runner.py validate-modules:missing-gplv3-license +plugins/modules/eos_validate_state_reports.py validate-modules:missing-gplv3-license diff --git a/ansible_collections/arista/avd/tests/sanity/ignore-2.15.txt b/ansible_collections/arista/avd/tests/sanity/ignore-2.15.txt index ceabf38e07c..37ffef29ae7 100644 --- a/ansible_collections/arista/avd/tests/sanity/ignore-2.15.txt +++ b/ansible_collections/arista/avd/tests/sanity/ignore-2.15.txt @@ -9,3 +9,4 @@ plugins/modules/verify_requirements.py validate-modules:missing-gplv3-license plugins/modules/yaml_templates_to_facts.py validate-modules:missing-gplv3-license plugins/vars/global_vars.py validate-modules:missing-gplv3-license plugins/modules/eos_validate_state_runner.py validate-modules:missing-gplv3-license +plugins/modules/eos_validate_state_reports.py validate-modules:missing-gplv3-license From 37193a3e2b3f7db39b91b054f49a10576e800950 Mon Sep 17 00:00:00 2001 From: Carl Baillargeon Date: Wed, 15 Nov 2023 10:29:16 -0500 Subject: [PATCH 02/26] Better management of temp files --- .../action/eos_validate_state_reports.py | 56 +++++++++++-------- .../action/eos_validate_state_runner.py | 19 +++++-- 2 files changed, 47 insertions(+), 28 deletions(-) diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py index 4e453866b2c..459d30f31d5 100644 --- a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py @@ -73,29 +73,30 @@ def run(self, tmp=None, task_vars=None): # For now we support the existing behavior of eos_validate_state, all hosts from the play ansible_play_hosts_all = task_vars.get("ansible_play_hosts_all", []) - # Initialize an empty ResultsManager that will be used to store results and statistics + # List to track all results temp files for each host + temp_files = [] + try: + # Initialize an empty ResultsManager that will be used to store results and statistics test_results = ResultsManager(only_failed_tests=only_failed_tests) - except Exception as error: - raise AnsibleActionFail(f"Error while initializing ResultsManager: {str(error)}") from error - - for host in sorted(ansible_play_hosts_all): - # Getting the host results temp file saved by eos_validate_state_runner action plugin - temp_file = get(hostvars[host], "anta_results.results_temp_file") - if not isinstance(temp_file, str) or not Path(temp_file).exists(): - display.warning(f"Results temporary file path is invalid or does not exist for host {host}.") - continue - try: - # Process the host test results - for test_result in _test_results_stream(temp_file): - test_results.update_results(test_result) - except Exception as error: - display.warning(f"Error while processing the test results of host {host}: {str(error)}") - - # Delete the host results temp file - Path(temp_file).unlink() - try: + for host in sorted(ansible_play_hosts_all): + # Getting the host results temp file saved by eos_validate_state_runner action plugin + temp_file = get(hostvars[host], "anta_results.results_temp_file") + if not isinstance(temp_file, str) or not Path(temp_file).exists(): + display.warning(f"Results temporary file path is invalid or does not exist for host {host}.") + continue + + # Track the temp file + temp_files.append(temp_file) + + try: + # Process the host test results + for test_result in _test_results_stream(temp_file): + test_results.update_results(test_result) + except Exception as error: + display.warning(f"Error while processing the test results of host {host}: {str(error)}") + # Generate the CSV report if validation_report_csv: with open(csv_report_path, "w", encoding="UTF-8", newline="\n") as csvfile: @@ -107,11 +108,18 @@ def run(self, tmp=None, task_vars=None): with open(md_report_path, "w", encoding="UTF-8") as mdfile: md_report = ValidateStateReport(mdfile=mdfile, results=test_results) md_report.generate_report() + except Exception as error: - raise AnsibleActionFail(f"Error while generating the reports: {str(error)}") from error + raise AnsibleActionFail(f"Error during plugin execution: {str(error)}") from error + + finally: + # Cleanup for each host's temporary file + for file_path in temp_files: + if Path(file_path).exists(): + Path(file_path).unlink() - # Make sure the ResultsManager temp file is getting closed and deleted - if test_results.tmp_test_results_file and not test_results.tmp_test_results_file.closed: - test_results.tmp_test_results_file.close() + # Cleanup for the ResultsManager temp file + if test_results.tmp_test_results_file and not test_results.tmp_test_results_file.closed: + test_results.tmp_test_results_file.close() return result diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py index 47aa1eaa4ce..d1b9eaedb61 100644 --- a/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py @@ -6,12 +6,13 @@ __metaclass__ = type import logging -import tempfile +from pathlib import Path +from tempfile import NamedTemporaryFile -import yaml from ansible.errors import AnsibleActionFail from ansible.parsing.yaml.dumper import AnsibleDumper from ansible.plugins.action import ActionBase, display +from yaml import dump_all from ansible_collections.arista.avd.plugins.plugin_utils.eos_validate_state_utils import AnsibleEOSDevice, get_anta_results from ansible_collections.arista.avd.plugins.plugin_utils.utils import PythonToAnsibleContextFilter, PythonToAnsibleHandler @@ -93,10 +94,20 @@ def run(self, tmp=None, task_vars=None): dry_run=ansible_check_mode, yaml_dumper=AnsibleNoAliasDumper, ) + + # TODO Move the temp file stuff to a function + temp_file_prefix = f"{hostname}_" + temp_file_directory = Path("/tmp") + + # Search for leftover temp files with the hostname prefix and delete them. + for file in temp_file_directory.glob(f"{temp_file_prefix}*"): + file.unlink(missing_ok=True) + # Create the temp YAML file to save the ANTA results - with tempfile.NamedTemporaryFile(mode="w+", encoding="UTF-8", suffix=".yml", delete=False) as temp_file: + with NamedTemporaryFile(mode="w+", encoding="UTF-8", suffix=".yml", prefix=f"{hostname}_", dir=str(temp_file_directory), delete=False) as temp_file: # Each YAML document in the file represents a single test result - temp_file.write(yaml.dump_all(anta_results, Dumper=AnsibleDumper, indent=2, sort_keys=False, width=130)) + temp_file.write(dump_all(anta_results, Dumper=AnsibleDumper, indent=2, sort_keys=False, width=130)) + except Exception as error: raise AnsibleActionFail(message=str(error)) from error From e793d519d7dba6a82ecccb63b98644678d42bdaa Mon Sep 17 00:00:00 2001 From: Carl Baillargeon Date: Wed, 15 Nov 2023 17:27:35 -0500 Subject: [PATCH 03/26] Fix typing and add temp function --- .../reports/FABRIC-state.csv | 1242 ++++++++-------- .../reports/FABRIC-state.md | 1307 +++++++++-------- .../action/eos_validate_state_reports.py | 9 +- .../action/eos_validate_state_runner.py | 48 +- .../eos_validate_state_utils/__init__.py | 5 +- .../eos_validate_state_utils/catalog.py | 2 +- .../get_anta_results.py | 5 +- .../eos_validate_state_utils/md_report.py | 6 +- .../results_manager.py | 4 +- .../roles/eos_validate_state/tasks/main.yml | 23 +- .../eos_validate_state/tasks/reports.yml | 10 +- 11 files changed, 1344 insertions(+), 1317 deletions(-) diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.csv b/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.csv index 54ba3d55bfe..d2cc8cba26f 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.csv +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.csv @@ -1,621 +1,621 @@ -test_id,node,test_category,test_description,test,result,failure_reason -1,dc1-leaf1a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -2,dc1-leaf1a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -3,dc1-leaf1a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -4,dc1-leaf1a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -5,dc1-leaf1a,NTP,Synchronised with NTP server,NTP,NOT RUN, -6,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - MLAG_PEER_dc1-leaf1b_Ethernet3,NOT RUN, -7,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - MLAG_PEER_dc1-leaf1b_Ethernet4,NOT RUN, -8,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet1,NOT RUN, -9,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet1,NOT RUN, -10,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet8 - DC1-LEAF1C_Ethernet1,NOT RUN, -11,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc1-leaf1-server1_PCI1,NOT RUN, -12,dc1-leaf1a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel3 - MLAG_PEER_dc1-leaf1b_Po3,NOT RUN, -13,dc1-leaf1a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel8 - DC1-LEAF1C_Po1,NOT RUN, -14,dc1-leaf1a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1,NOT RUN, -15,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -16,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan4094 - MLAG_PEER,NOT RUN, -17,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan11 - VRF10_VLAN11,NOT RUN, -18,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan12 - VRF10_VLAN12,NOT RUN, -19,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -20,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan21 - VRF11_VLAN21,NOT RUN, -21,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan22 - VRF11_VLAN22,NOT RUN, -22,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -23,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -24,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -25,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -26,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -27,dc1-leaf1a,Interface State,Vxlan Interface Status & Line Protocol == "up",Vxlan1,NOT RUN, -28,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf1b_Ethernet3,NOT RUN, -29,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf1b_Ethernet4,NOT RUN, -30,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet1,NOT RUN, -31,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet1,NOT RUN, -32,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf1c_Ethernet1,NOT RUN, -33,dc1-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1a_Ethernet1 - Destination: dc1-spine1_Ethernet1,NOT RUN, -34,dc1-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1a_Ethernet2 - Destination: dc1-spine2_Ethernet1,NOT RUN, -35,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.3,NOT RUN, -36,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.1,NOT RUN, -37,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.2,NOT RUN, -38,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.4,NOT RUN, -39,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.5,NOT RUN, -40,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.11,NOT RUN, -41,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.12,NOT RUN, -42,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.13,NOT RUN, -43,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.14,NOT RUN, -44,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.15,NOT RUN, -45,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.16,NOT RUN, -46,dc1-leaf1a,MLAG,MLAG State active & Status connected,MLAG,NOT RUN, -47,dc1-leaf1a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -48,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.97,NOT RUN, -49,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.0,NOT RUN, -50,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.2,NOT RUN, -51,dc1-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,NOT RUN, -52,dc1-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,NOT RUN, -53,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -54,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -55,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -56,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -57,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -58,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -59,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -60,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -61,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -62,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -63,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -64,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -65,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -66,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -67,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -68,dc1-leaf1b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -69,dc1-leaf1b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -70,dc1-leaf1b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -71,dc1-leaf1b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -72,dc1-leaf1b,NTP,Synchronised with NTP server,NTP,NOT RUN, -73,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - MLAG_PEER_dc1-leaf1a_Ethernet3,NOT RUN, -74,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - MLAG_PEER_dc1-leaf1a_Ethernet4,NOT RUN, -75,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet2,NOT RUN, -76,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet2,NOT RUN, -77,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet8 - DC1-LEAF1C_Ethernet2,NOT RUN, -78,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc1-leaf1-server1_PCI2,NOT RUN, -79,dc1-leaf1b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel3 - MLAG_PEER_dc1-leaf1a_Po3,NOT RUN, -80,dc1-leaf1b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel8 - DC1-LEAF1C_Po1,NOT RUN, -81,dc1-leaf1b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1,NOT RUN, -82,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -83,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan4094 - MLAG_PEER,NOT RUN, -84,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan11 - VRF10_VLAN11,NOT RUN, -85,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan12 - VRF10_VLAN12,NOT RUN, -86,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -87,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan21 - VRF11_VLAN21,NOT RUN, -88,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan22 - VRF11_VLAN22,NOT RUN, -89,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -90,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -91,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -92,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -93,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -94,dc1-leaf1b,Interface State,Vxlan Interface Status & Line Protocol == "up",Vxlan1,NOT RUN, -95,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf1a_Ethernet3,NOT RUN, -96,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf1a_Ethernet4,NOT RUN, -97,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet2,NOT RUN, -98,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet2,NOT RUN, -99,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf1c_Ethernet2,NOT RUN, -100,dc1-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1b_Ethernet1 - Destination: dc1-spine1_Ethernet2,NOT RUN, -101,dc1-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1b_Ethernet2 - Destination: dc1-spine2_Ethernet2,NOT RUN, -102,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.3,NOT RUN, -103,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.1,NOT RUN, -104,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.2,NOT RUN, -105,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.4,NOT RUN, -106,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.5,NOT RUN, -107,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.11,NOT RUN, -108,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.12,NOT RUN, -109,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.13,NOT RUN, -110,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.14,NOT RUN, -111,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.15,NOT RUN, -112,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.16,NOT RUN, -113,dc1-leaf1b,MLAG,MLAG State active & Status connected,MLAG,NOT RUN, -114,dc1-leaf1b,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -115,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.96,NOT RUN, -116,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.4,NOT RUN, -117,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.6,NOT RUN, -118,dc1-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,NOT RUN, -119,dc1-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,NOT RUN, -120,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -121,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -122,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -123,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -124,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -125,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -126,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -127,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -128,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -129,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -130,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -131,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -132,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -133,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -134,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -135,dc1-leaf1c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -136,dc1-leaf1c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -137,dc1-leaf1c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -138,dc1-leaf1c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -139,dc1-leaf1c,NTP,Synchronised with NTP server,NTP,NOT RUN, -140,dc1-leaf1c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - DC1-LEAF1A_Ethernet8,NOT RUN, -141,dc1-leaf1c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - DC1-LEAF1B_Ethernet8,NOT RUN, -142,dc1-leaf1c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc1-leaf1-server1_iLO,NOT RUN, -143,dc1-leaf1c,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel1 - DC1_L3_LEAF1_Po8,NOT RUN, -144,dc1-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet8,NOT RUN, -145,dc1-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf1b_Ethernet8,NOT RUN, -146,dc1-leaf2a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -147,dc1-leaf2a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -148,dc1-leaf2a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -149,dc1-leaf2a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -150,dc1-leaf2a,NTP,Synchronised with NTP server,NTP,NOT RUN, -151,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - MLAG_PEER_dc1-leaf2b_Ethernet3,NOT RUN, -152,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - MLAG_PEER_dc1-leaf2b_Ethernet4,NOT RUN, -153,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet3,NOT RUN, -154,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet3,NOT RUN, -155,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet8 - DC1-LEAF2C_Ethernet1,NOT RUN, -156,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet6 - P2P_LINK_TO_dc2-leaf2a_Ethernet6,NOT RUN, -157,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc1-leaf2-server1_PCI1,NOT RUN, -158,dc1-leaf2a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel3 - MLAG_PEER_dc1-leaf2b_Po3,NOT RUN, -159,dc1-leaf2a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel8 - DC1-LEAF2C_Po1,NOT RUN, -160,dc1-leaf2a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1,NOT RUN, -161,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -162,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan4094 - MLAG_PEER,NOT RUN, -163,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan11 - VRF10_VLAN11,NOT RUN, -164,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan12 - VRF10_VLAN12,NOT RUN, -165,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -166,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan21 - VRF11_VLAN21,NOT RUN, -167,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan22 - VRF11_VLAN22,NOT RUN, -168,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -169,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -170,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -171,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -172,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -173,dc1-leaf2a,Interface State,Vxlan Interface Status & Line Protocol == "up",Vxlan1,NOT RUN, -174,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet3,NOT RUN, -175,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet3,NOT RUN, -176,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf2c_Ethernet1,NOT RUN, -177,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc2-leaf2a_Ethernet6,NOT RUN, -178,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet1 - Destination: dc1-spine1_Ethernet3,NOT RUN, -179,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet2 - Destination: dc1-spine2_Ethernet3,NOT RUN, -180,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet6 - Destination: dc2-leaf2a_Ethernet6,NOT RUN, -181,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.3,NOT RUN, -182,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.1,NOT RUN, -183,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.2,NOT RUN, -184,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.4,NOT RUN, -185,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.5,NOT RUN, -186,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.11,NOT RUN, -187,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.12,NOT RUN, -188,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.13,NOT RUN, -189,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.14,NOT RUN, -190,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.15,NOT RUN, -191,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.16,NOT RUN, -192,dc1-leaf2a,MLAG,MLAG State active & Status connected,MLAG,NOT RUN, -193,dc1-leaf2a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -194,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.8,NOT RUN, -195,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.10,NOT RUN, -196,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,NOT RUN, -197,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,NOT RUN, -198,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,NOT RUN, -199,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.1,NOT RUN, -200,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -201,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -202,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -203,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -204,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -205,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -206,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -207,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -208,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -209,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -210,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -211,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -212,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -213,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -214,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -215,dc1-leaf2c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -216,dc1-leaf2c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -217,dc1-leaf2c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -218,dc1-leaf2c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -219,dc1-leaf2c,NTP,Synchronised with NTP server,NTP,NOT RUN, -220,dc1-leaf2c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - DC1-LEAF2A_Ethernet8,NOT RUN, -221,dc1-leaf2c,Interface State,Ethernet Interface & Line Protocol == "adminDown",Ethernet2 - DC1-LEAF2B_Ethernet8,NOT RUN, -222,dc1-leaf2c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc1-leaf2-server1_iLO,NOT RUN, -223,dc1-leaf2c,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel1 - DC1_L3_LEAF2_Po8,NOT RUN, -224,dc1-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf2a_Ethernet8,NOT RUN, -225,dc1-spine1,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -226,dc1-spine1,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -227,dc1-spine1,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -228,dc1-spine1,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -229,dc1-spine1,NTP,Synchronised with NTP server,NTP,NOT RUN, -230,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet1,NOT RUN, -231,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet1,NOT RUN, -232,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet1,NOT RUN, -233,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == "adminDown",Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet1,NOT RUN, -234,dc1-spine1,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -235,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet1,NOT RUN, -236,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf1b_Ethernet1,NOT RUN, -237,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2a_Ethernet1,NOT RUN, -238,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet1 - Destination: dc1-leaf1a_Ethernet1,NOT RUN, -239,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet2 - Destination: dc1-leaf1b_Ethernet1,NOT RUN, -240,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet3 - Destination: dc1-leaf2a_Ethernet1,NOT RUN, -241,dc1-spine1,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -242,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.1,NOT RUN, -243,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.5,NOT RUN, -244,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.9,NOT RUN, -245,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.3,NOT RUN, -246,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.4,NOT RUN, -247,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,NOT RUN, -248,dc1-spine2,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -249,dc1-spine2,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -250,dc1-spine2,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -251,dc1-spine2,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -252,dc1-spine2,NTP,Synchronised with NTP server,NTP,NOT RUN, -253,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet2,NOT RUN, -254,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet2,NOT RUN, -255,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet2,NOT RUN, -256,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == "adminDown",Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet2,NOT RUN, -257,dc1-spine2,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -258,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet2,NOT RUN, -259,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf1b_Ethernet2,NOT RUN, -260,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2a_Ethernet2,NOT RUN, -261,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet1 - Destination: dc1-leaf1a_Ethernet2,NOT RUN, -262,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet2 - Destination: dc1-leaf1b_Ethernet2,NOT RUN, -263,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet3 - Destination: dc1-leaf2a_Ethernet2,NOT RUN, -264,dc1-spine2,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -265,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.3,NOT RUN, -266,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.7,NOT RUN, -267,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.11,NOT RUN, -268,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.3,NOT RUN, -269,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.4,NOT RUN, -270,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,NOT RUN, -271,dc2-leaf1a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -272,dc2-leaf1a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -273,dc2-leaf1a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -274,dc2-leaf1a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -275,dc2-leaf1a,NTP,Synchronised with NTP server,NTP,NOT RUN, -276,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - MLAG_PEER_dc2-leaf1b_Ethernet3,NOT RUN, -277,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - MLAG_PEER_dc2-leaf1b_Ethernet4,NOT RUN, -278,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet1,NOT RUN, -279,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet1,NOT RUN, -280,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet8 - DC2-LEAF1C_Ethernet1,NOT RUN, -281,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc2-leaf1-server1_PCI1,NOT RUN, -282,dc2-leaf1a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel3 - MLAG_PEER_dc2-leaf1b_Po3,NOT RUN, -283,dc2-leaf1a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel8 - DC2-LEAF1C_Po1,NOT RUN, -284,dc2-leaf1a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1,NOT RUN, -285,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -286,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan4094 - MLAG_PEER,NOT RUN, -287,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan11 - VRF10_VLAN11,NOT RUN, -288,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan12 - VRF10_VLAN12,NOT RUN, -289,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -290,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan21 - VRF11_VLAN21,NOT RUN, -291,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan22 - VRF11_VLAN22,NOT RUN, -292,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == "up",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -293,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -294,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -295,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -296,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -297,dc2-leaf1a,Interface State,Vxlan Interface Status & Line Protocol == "up",Vxlan1,NOT RUN, -298,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf1b_Ethernet3,NOT RUN, -299,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf1b_Ethernet4,NOT RUN, -300,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet1,NOT RUN, -301,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet1,NOT RUN, -302,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf1c_Ethernet1,NOT RUN, -303,dc2-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1a_Ethernet1 - Destination: dc2-spine1_Ethernet1,NOT RUN, -304,dc2-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1a_Ethernet2 - Destination: dc2-spine2_Ethernet1,NOT RUN, -305,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.3,NOT RUN, -306,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.1,NOT RUN, -307,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.2,NOT RUN, -308,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.4,NOT RUN, -309,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.5,NOT RUN, -310,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.11,NOT RUN, -311,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.12,NOT RUN, -312,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.13,NOT RUN, -313,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.14,NOT RUN, -314,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.15,NOT RUN, -315,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.16,NOT RUN, -316,dc2-leaf1a,MLAG,MLAG State active & Status connected,MLAG,NOT RUN, -317,dc2-leaf1a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -318,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.117,NOT RUN, -319,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.104,NOT RUN, -320,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.106,NOT RUN, -321,dc2-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, -322,dc2-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, -323,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -324,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -325,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -326,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -327,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -328,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -329,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -330,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -331,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -332,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -333,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -334,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -335,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -336,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -337,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -338,dc2-leaf1b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -339,dc2-leaf1b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -340,dc2-leaf1b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -341,dc2-leaf1b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -342,dc2-leaf1b,NTP,Synchronised with NTP server,NTP,NOT RUN, -343,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - MLAG_PEER_dc2-leaf1a_Ethernet3,NOT RUN, -344,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - MLAG_PEER_dc2-leaf1a_Ethernet4,NOT RUN, -345,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet2,NOT RUN, -346,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet2,NOT RUN, -347,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet8 - DC2-LEAF1C_Ethernet2,NOT RUN, -348,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc2-leaf1-server1_PCI2,NOT RUN, -349,dc2-leaf1b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel3 - MLAG_PEER_dc2-leaf1a_Po3,NOT RUN, -350,dc2-leaf1b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel8 - DC2-LEAF1C_Po1,NOT RUN, -351,dc2-leaf1b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1,NOT RUN, -352,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -353,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan4094 - MLAG_PEER,NOT RUN, -354,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan11 - VRF10_VLAN11,NOT RUN, -355,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan12 - VRF10_VLAN12,NOT RUN, -356,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -357,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan21 - VRF11_VLAN21,NOT RUN, -358,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan22 - VRF11_VLAN22,NOT RUN, -359,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == "up",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -360,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -361,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -362,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -363,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -364,dc2-leaf1b,Interface State,Vxlan Interface Status & Line Protocol == "up",Vxlan1,NOT RUN, -365,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf1a_Ethernet3,NOT RUN, -366,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf1a_Ethernet4,NOT RUN, -367,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet2,NOT RUN, -368,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet2,NOT RUN, -369,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf1c_Ethernet2,NOT RUN, -370,dc2-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1b_Ethernet1 - Destination: dc2-spine1_Ethernet2,NOT RUN, -371,dc2-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1b_Ethernet2 - Destination: dc2-spine2_Ethernet2,NOT RUN, -372,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.3,NOT RUN, -373,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.1,NOT RUN, -374,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.2,NOT RUN, -375,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.4,NOT RUN, -376,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.5,NOT RUN, -377,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.11,NOT RUN, -378,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.12,NOT RUN, -379,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.13,NOT RUN, -380,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.14,NOT RUN, -381,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.15,NOT RUN, -382,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.16,NOT RUN, -383,dc2-leaf1b,MLAG,MLAG State active & Status connected,MLAG,NOT RUN, -384,dc2-leaf1b,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -385,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.116,NOT RUN, -386,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.108,NOT RUN, -387,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.110,NOT RUN, -388,dc2-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, -389,dc2-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, -390,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -391,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -392,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -393,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -394,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -395,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -396,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -397,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -398,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -399,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -400,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -401,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -402,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -403,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -404,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -405,dc2-leaf1c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -406,dc2-leaf1c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -407,dc2-leaf1c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -408,dc2-leaf1c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -409,dc2-leaf1c,NTP,Synchronised with NTP server,NTP,NOT RUN, -410,dc2-leaf1c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - DC2-LEAF1A_Ethernet8,NOT RUN, -411,dc2-leaf1c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - DC2-LEAF1B_Ethernet8,NOT RUN, -412,dc2-leaf1c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc2-leaf1-server1_iLO,NOT RUN, -413,dc2-leaf1c,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel1 - DC2_L3_LEAF1_Po8,NOT RUN, -414,dc2-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet8,NOT RUN, -415,dc2-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet8,NOT RUN, -416,dc2-leaf2a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -417,dc2-leaf2a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -418,dc2-leaf2a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -419,dc2-leaf2a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -420,dc2-leaf2a,NTP,Synchronised with NTP server,NTP,NOT RUN, -421,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - MLAG_PEER_dc2-leaf2b_Ethernet3,NOT RUN, -422,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - MLAG_PEER_dc2-leaf2b_Ethernet4,NOT RUN, -423,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet3,NOT RUN, -424,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet3,NOT RUN, -425,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet8 - DC2-LEAF2C_Ethernet1,NOT RUN, -426,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet6 - P2P_LINK_TO_dc1-leaf2a_Ethernet6,NOT RUN, -427,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc2-leaf2-server1_PCI1,NOT RUN, -428,dc2-leaf2a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel3 - MLAG_PEER_dc2-leaf2b_Po3,NOT RUN, -429,dc2-leaf2a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel8 - DC2-LEAF2C_Po1,NOT RUN, -430,dc2-leaf2a,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1,NOT RUN, -431,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -432,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan4094 - MLAG_PEER,NOT RUN, -433,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan11 - VRF10_VLAN11,NOT RUN, -434,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan12 - VRF10_VLAN12,NOT RUN, -435,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -436,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan21 - VRF11_VLAN21,NOT RUN, -437,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan22 - VRF11_VLAN22,NOT RUN, -438,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == "up",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -439,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -440,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -441,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -442,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -443,dc2-leaf2a,Interface State,Vxlan Interface Status & Line Protocol == "up",Vxlan1,NOT RUN, -444,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2b_Ethernet3,NOT RUN, -445,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet4,NOT RUN, -446,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet3,NOT RUN, -447,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet3,NOT RUN, -448,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf2c_Ethernet1,NOT RUN, -449,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc1-leaf2a_Ethernet6,NOT RUN, -450,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet1 - Destination: dc2-spine1_Ethernet3,NOT RUN, -451,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet2 - Destination: dc2-spine2_Ethernet3,NOT RUN, -452,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet6 - Destination: dc1-leaf2a_Ethernet6,NOT RUN, -453,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.3,NOT RUN, -454,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.1,NOT RUN, -455,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.2,NOT RUN, -456,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.4,NOT RUN, -457,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.5,NOT RUN, -458,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.11,NOT RUN, -459,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.12,NOT RUN, -460,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.13,NOT RUN, -461,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.14,NOT RUN, -462,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.15,NOT RUN, -463,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.16,NOT RUN, -464,dc2-leaf2a,MLAG,MLAG State active & Status connected,MLAG,NOT RUN, -465,dc2-leaf2a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -466,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.121,NOT RUN, -467,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.112,NOT RUN, -468,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.114,NOT RUN, -469,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, -470,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, -471,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,NOT RUN, -472,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.0,NOT RUN, -473,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -474,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -475,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -476,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -477,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -478,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -479,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -480,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -481,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -482,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -483,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -484,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -485,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -486,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -487,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -488,dc2-leaf2b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -489,dc2-leaf2b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -490,dc2-leaf2b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -491,dc2-leaf2b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -492,dc2-leaf2b,NTP,Synchronised with NTP server,NTP,NOT RUN, -493,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - MLAG_PEER_dc2-leaf2a_Ethernet3,NOT RUN, -494,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - MLAG_PEER_dc2-leaf2a_Ethernet4,NOT RUN, -495,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet4,NOT RUN, -496,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet4,NOT RUN, -497,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet8 - DC2-LEAF2C_Ethernet2,NOT RUN, -498,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet6 - P2P_LINK_TO_dc1-leaf2b_Ethernet6,NOT RUN, -499,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc2-leaf2-server1_PCI2,NOT RUN, -500,dc2-leaf2b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel3 - MLAG_PEER_dc2-leaf2a_Po3,NOT RUN, -501,dc2-leaf2b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel8 - DC2-LEAF2C_Po1,NOT RUN, -502,dc2-leaf2b,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1,NOT RUN, -503,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -504,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan4094 - MLAG_PEER,NOT RUN, -505,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan11 - VRF10_VLAN11,NOT RUN, -506,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan12 - VRF10_VLAN12,NOT RUN, -507,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -508,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan21 - VRF11_VLAN21,NOT RUN, -509,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan22 - VRF11_VLAN22,NOT RUN, -510,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == "up",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -511,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -512,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -513,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -514,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -515,dc2-leaf2b,Interface State,Vxlan Interface Status & Line Protocol == "up",Vxlan1,NOT RUN, -516,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet3,NOT RUN, -517,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2a_Ethernet4,NOT RUN, -518,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet4,NOT RUN, -519,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet4,NOT RUN, -520,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf2c_Ethernet2,NOT RUN, -521,dc2-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2b_Ethernet1 - Destination: dc2-spine1_Ethernet4,NOT RUN, -522,dc2-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2b_Ethernet2 - Destination: dc2-spine2_Ethernet4,NOT RUN, -523,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.3,NOT RUN, -524,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.1,NOT RUN, -525,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.2,NOT RUN, -526,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.4,NOT RUN, -527,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.5,NOT RUN, -528,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.11,NOT RUN, -529,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.12,NOT RUN, -530,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.13,NOT RUN, -531,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.14,NOT RUN, -532,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.15,NOT RUN, -533,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.16,NOT RUN, -534,dc2-leaf2b,MLAG,MLAG State active & Status connected,MLAG,NOT RUN, -535,dc2-leaf2b,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -536,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.120,NOT RUN, -537,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.116,NOT RUN, -538,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.118,NOT RUN, -539,dc2-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, -540,dc2-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, -541,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -542,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -543,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -544,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -545,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -546,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -547,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -548,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -549,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -550,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -551,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -552,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -553,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -554,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -555,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -556,dc2-leaf2c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -557,dc2-leaf2c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -558,dc2-leaf2c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -559,dc2-leaf2c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -560,dc2-leaf2c,NTP,Synchronised with NTP server,NTP,NOT RUN, -561,dc2-leaf2c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - DC2-LEAF2A_Ethernet8,NOT RUN, -562,dc2-leaf2c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - DC2-LEAF2B_Ethernet8,NOT RUN, -563,dc2-leaf2c,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet5 - dc2-leaf2-server1_iLO,NOT RUN, -564,dc2-leaf2c,Interface State,Port-Channel Interface & Line Protocol == "up",Port-Channel1 - DC2_L3_LEAF2_Po8,NOT RUN, -565,dc2-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf2a_Ethernet8,NOT RUN, -566,dc2-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf2b_Ethernet8,NOT RUN, -567,dc2-spine1,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -568,dc2-spine1,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -569,dc2-spine1,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -570,dc2-spine1,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -571,dc2-spine1,NTP,Synchronised with NTP server,NTP,NOT RUN, -572,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet1,NOT RUN, -573,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet1,NOT RUN, -574,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet1,NOT RUN, -575,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet1,NOT RUN, -576,dc2-spine1,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -577,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet1,NOT RUN, -578,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet1,NOT RUN, -579,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet1,NOT RUN, -580,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet1,NOT RUN, -581,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet1 - Destination: dc2-leaf1a_Ethernet1,NOT RUN, -582,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet2 - Destination: dc2-leaf1b_Ethernet1,NOT RUN, -583,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet3 - Destination: dc2-leaf2a_Ethernet1,NOT RUN, -584,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet4 - Destination: dc2-leaf2b_Ethernet1,NOT RUN, -585,dc2-spine1,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -586,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.105,NOT RUN, -587,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.109,NOT RUN, -588,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.113,NOT RUN, -589,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.117,NOT RUN, -590,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.13,NOT RUN, -591,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.14,NOT RUN, -592,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,NOT RUN, -593,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.16,NOT RUN, -594,dc2-spine2,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -595,dc2-spine2,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -596,dc2-spine2,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -597,dc2-spine2,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -598,dc2-spine2,NTP,Synchronised with NTP server,NTP,NOT RUN, -599,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet2,NOT RUN, -600,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet2,NOT RUN, -601,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet2,NOT RUN, -602,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == "up",Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet2,NOT RUN, -603,dc2-spine2,Interface State,Loopback Interface Status & Line Protocol == "up",Loopback0 - EVPN_Overlay_Peering,NOT RUN, -604,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet2,NOT RUN, -605,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet2,NOT RUN, -606,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet2,NOT RUN, -607,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet2,NOT RUN, -608,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet1 - Destination: dc2-leaf1a_Ethernet2,NOT RUN, -609,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet2 - Destination: dc2-leaf1b_Ethernet2,NOT RUN, -610,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet3 - Destination: dc2-leaf2a_Ethernet2,NOT RUN, -611,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet4 - Destination: dc2-leaf2b_Ethernet2,NOT RUN, -612,dc2-spine2,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -613,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.107,NOT RUN, -614,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.111,NOT RUN, -615,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.115,NOT RUN, -616,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.119,NOT RUN, -617,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.13,NOT RUN, -618,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.14,NOT RUN, -619,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,NOT RUN, -620,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.16,NOT RUN, +test_id,node,test_category,test_description,test,result,failure_reasons +1,dc1-leaf1a,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +2,dc1-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,SKIPPED,Dry run! +3,dc1-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,SKIPPED,Dry run! +4,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.97,SKIPPED,Dry run! +5,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.0,SKIPPED,Dry run! +6,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.2,SKIPPED,Dry run! +7,dc1-leaf1a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +8,dc1-leaf1a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +9,dc1-leaf1a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +10,dc1-leaf1a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +11,dc1-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1a_Ethernet1 - Destination: dc1-spine1_Ethernet1,SKIPPED,Dry run! +12,dc1-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1a_Ethernet2 - Destination: dc1-spine2_Ethernet1,SKIPPED,Dry run! +13,dc1-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet1,SKIPPED,Dry run! +14,dc1-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet1,SKIPPED,Dry run! +15,dc1-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc1-leaf1b_Ethernet3,SKIPPED,Dry run! +16,dc1-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc1-leaf1b_Ethernet4,SKIPPED,Dry run! +17,dc1-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc1-leaf1-server1_PCI1,SKIPPED,Dry run! +18,dc1-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC1-LEAF1C_Ethernet1,SKIPPED,Dry run! +19,dc1-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +20,dc1-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! +21,dc1-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +22,dc1-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +23,dc1-leaf1a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc1-leaf1b_Po3,SKIPPED,Dry run! +24,dc1-leaf1a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1,SKIPPED,Dry run! +25,dc1-leaf1a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC1-LEAF1C_Po1,SKIPPED,Dry run! +26,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! +27,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! +28,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! +29,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! +30,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! +31,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! +32,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! +33,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! +34,dc1-leaf1a,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! +35,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet1,SKIPPED,Dry run! +36,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet1,SKIPPED,Dry run! +37,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf1b_Ethernet3,SKIPPED,Dry run! +38,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf1b_Ethernet4,SKIPPED,Dry run! +39,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf1c_Ethernet1,SKIPPED,Dry run! +40,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.1,SKIPPED,Dry run! +41,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.2,SKIPPED,Dry run! +42,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.3,SKIPPED,Dry run! +43,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.4,SKIPPED,Dry run! +44,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.5,SKIPPED,Dry run! +45,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.11,SKIPPED,Dry run! +46,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.12,SKIPPED,Dry run! +47,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.13,SKIPPED,Dry run! +48,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.14,SKIPPED,Dry run! +49,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.15,SKIPPED,Dry run! +50,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.16,SKIPPED,Dry run! +51,dc1-leaf1a,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! +52,dc1-leaf1a,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +53,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! +54,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! +55,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! +56,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! +57,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! +58,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! +59,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! +60,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! +61,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! +62,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! +63,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! +64,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! +65,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! +66,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! +67,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! +68,dc1-leaf1b,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +69,dc1-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,SKIPPED,Dry run! +70,dc1-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,SKIPPED,Dry run! +71,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.96,SKIPPED,Dry run! +72,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.4,SKIPPED,Dry run! +73,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.6,SKIPPED,Dry run! +74,dc1-leaf1b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +75,dc1-leaf1b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +76,dc1-leaf1b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +77,dc1-leaf1b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +78,dc1-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1b_Ethernet1 - Destination: dc1-spine1_Ethernet2,SKIPPED,Dry run! +79,dc1-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1b_Ethernet2 - Destination: dc1-spine2_Ethernet2,SKIPPED,Dry run! +80,dc1-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet2,SKIPPED,Dry run! +81,dc1-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet2,SKIPPED,Dry run! +82,dc1-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc1-leaf1a_Ethernet3,SKIPPED,Dry run! +83,dc1-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc1-leaf1a_Ethernet4,SKIPPED,Dry run! +84,dc1-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc1-leaf1-server1_PCI2,SKIPPED,Dry run! +85,dc1-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC1-LEAF1C_Ethernet2,SKIPPED,Dry run! +86,dc1-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +87,dc1-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! +88,dc1-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +89,dc1-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +90,dc1-leaf1b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc1-leaf1a_Po3,SKIPPED,Dry run! +91,dc1-leaf1b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1,SKIPPED,Dry run! +92,dc1-leaf1b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC1-LEAF1C_Po1,SKIPPED,Dry run! +93,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! +94,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! +95,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! +96,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! +97,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! +98,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! +99,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! +100,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! +101,dc1-leaf1b,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! +102,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet2,SKIPPED,Dry run! +103,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet2,SKIPPED,Dry run! +104,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf1a_Ethernet3,SKIPPED,Dry run! +105,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf1a_Ethernet4,SKIPPED,Dry run! +106,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf1c_Ethernet2,SKIPPED,Dry run! +107,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.1,SKIPPED,Dry run! +108,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.2,SKIPPED,Dry run! +109,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.3,SKIPPED,Dry run! +110,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.4,SKIPPED,Dry run! +111,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.5,SKIPPED,Dry run! +112,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.11,SKIPPED,Dry run! +113,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.12,SKIPPED,Dry run! +114,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.13,SKIPPED,Dry run! +115,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.14,SKIPPED,Dry run! +116,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.15,SKIPPED,Dry run! +117,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.16,SKIPPED,Dry run! +118,dc1-leaf1b,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! +119,dc1-leaf1b,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +120,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! +121,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! +122,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! +123,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! +124,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! +125,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! +126,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! +127,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! +128,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! +129,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! +130,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! +131,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! +132,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! +133,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! +134,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! +135,dc1-leaf1c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +136,dc1-leaf1c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +137,dc1-leaf1c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +138,dc1-leaf1c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +139,dc1-leaf1c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - DC1-LEAF1A_Ethernet8,SKIPPED,Dry run! +140,dc1-leaf1c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - DC1-LEAF1B_Ethernet8,SKIPPED,Dry run! +141,dc1-leaf1c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc1-leaf1-server1_iLO,SKIPPED,Dry run! +142,dc1-leaf1c,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel1 - DC1_L3_LEAF1_Po8,SKIPPED,Dry run! +143,dc1-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet8,SKIPPED,Dry run! +144,dc1-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf1b_Ethernet8,SKIPPED,Dry run! +145,dc1-leaf1c,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +146,dc1-leaf2a,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +147,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,SKIPPED,Dry run! +148,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,SKIPPED,Dry run! +149,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,SKIPPED,Dry run! +150,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.10,SKIPPED,Dry run! +151,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.8,SKIPPED,Dry run! +152,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.1,SKIPPED,Dry run! +153,dc1-leaf2a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +154,dc1-leaf2a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +155,dc1-leaf2a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +156,dc1-leaf2a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +157,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet1 - Destination: dc1-spine1_Ethernet3,SKIPPED,Dry run! +158,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet2 - Destination: dc1-spine2_Ethernet3,SKIPPED,Dry run! +159,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet6 - Destination: dc2-leaf2a_Ethernet6,SKIPPED,Dry run! +160,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet3,SKIPPED,Dry run! +161,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet3,SKIPPED,Dry run! +162,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc1-leaf2b_Ethernet3,SKIPPED,Dry run! +163,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc1-leaf2b_Ethernet4,SKIPPED,Dry run! +164,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc1-leaf2-server1_PCI1,SKIPPED,Dry run! +165,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet6 - P2P_LINK_TO_dc2-leaf2a_Ethernet6,SKIPPED,Dry run! +166,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC1-LEAF2C_Ethernet1,SKIPPED,Dry run! +167,dc1-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +168,dc1-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! +169,dc1-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +170,dc1-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +171,dc1-leaf2a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc1-leaf2b_Po3,SKIPPED,Dry run! +172,dc1-leaf2a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1,SKIPPED,Dry run! +173,dc1-leaf2a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC1-LEAF2C_Po1,SKIPPED,Dry run! +174,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! +175,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! +176,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! +177,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! +178,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! +179,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! +180,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! +181,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! +182,dc1-leaf2a,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! +183,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet3,SKIPPED,Dry run! +184,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet3,SKIPPED,Dry run! +185,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc2-leaf2a_Ethernet6,SKIPPED,Dry run! +186,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf2c_Ethernet1,SKIPPED,Dry run! +187,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.1,SKIPPED,Dry run! +188,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.2,SKIPPED,Dry run! +189,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.3,SKIPPED,Dry run! +190,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.4,SKIPPED,Dry run! +191,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.5,SKIPPED,Dry run! +192,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.11,SKIPPED,Dry run! +193,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.12,SKIPPED,Dry run! +194,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.13,SKIPPED,Dry run! +195,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.14,SKIPPED,Dry run! +196,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.15,SKIPPED,Dry run! +197,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.16,SKIPPED,Dry run! +198,dc1-leaf2a,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! +199,dc1-leaf2a,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +200,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! +201,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! +202,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! +203,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! +204,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! +205,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! +206,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! +207,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! +208,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! +209,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! +210,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! +211,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! +212,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! +213,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! +214,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! +215,dc1-leaf2c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +216,dc1-leaf2c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +217,dc1-leaf2c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +218,dc1-leaf2c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +219,dc1-leaf2c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - DC1-LEAF2A_Ethernet8,SKIPPED,Dry run! +220,dc1-leaf2c,Interface State,"Ethernet Interface & Line Protocol == \""adminDown\""",Ethernet2 - DC1-LEAF2B_Ethernet8,SKIPPED,Dry run! +221,dc1-leaf2c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc1-leaf2-server1_iLO,SKIPPED,Dry run! +222,dc1-leaf2c,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel1 - DC1_L3_LEAF2_Po8,SKIPPED,Dry run! +223,dc1-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf2a_Ethernet8,SKIPPED,Dry run! +224,dc1-leaf2c,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +225,dc1-spine1,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +226,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.3,SKIPPED,Dry run! +227,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.4,SKIPPED,Dry run! +228,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,SKIPPED,Dry run! +229,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.1,SKIPPED,Dry run! +230,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.5,SKIPPED,Dry run! +231,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.9,SKIPPED,Dry run! +232,dc1-spine1,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +233,dc1-spine1,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +234,dc1-spine1,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +235,dc1-spine1,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +236,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet1 - Destination: dc1-leaf1a_Ethernet1,SKIPPED,Dry run! +237,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet2 - Destination: dc1-leaf1b_Ethernet1,SKIPPED,Dry run! +238,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet3 - Destination: dc1-leaf2a_Ethernet1,SKIPPED,Dry run! +239,dc1-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet1,SKIPPED,Dry run! +240,dc1-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet1,SKIPPED,Dry run! +241,dc1-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet1,SKIPPED,Dry run! +242,dc1-spine1,Interface State,"Ethernet Interface & Line Protocol == \""adminDown\""",Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet1,SKIPPED,Dry run! +243,dc1-spine1,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +244,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet1,SKIPPED,Dry run! +245,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf1b_Ethernet1,SKIPPED,Dry run! +246,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2a_Ethernet1,SKIPPED,Dry run! +247,dc1-spine1,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +248,dc1-spine2,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +249,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.3,SKIPPED,Dry run! +250,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.4,SKIPPED,Dry run! +251,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,SKIPPED,Dry run! +252,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.11,SKIPPED,Dry run! +253,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.3,SKIPPED,Dry run! +254,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.7,SKIPPED,Dry run! +255,dc1-spine2,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +256,dc1-spine2,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +257,dc1-spine2,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +258,dc1-spine2,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +259,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet1 - Destination: dc1-leaf1a_Ethernet2,SKIPPED,Dry run! +260,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet2 - Destination: dc1-leaf1b_Ethernet2,SKIPPED,Dry run! +261,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet3 - Destination: dc1-leaf2a_Ethernet2,SKIPPED,Dry run! +262,dc1-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet2,SKIPPED,Dry run! +263,dc1-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet2,SKIPPED,Dry run! +264,dc1-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet2,SKIPPED,Dry run! +265,dc1-spine2,Interface State,"Ethernet Interface & Line Protocol == \""adminDown\""",Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet2,SKIPPED,Dry run! +266,dc1-spine2,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +267,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet2,SKIPPED,Dry run! +268,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf1b_Ethernet2,SKIPPED,Dry run! +269,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2a_Ethernet2,SKIPPED,Dry run! +270,dc1-spine2,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +271,dc2-leaf1a,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +272,dc2-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,SKIPPED,Dry run! +273,dc2-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,SKIPPED,Dry run! +274,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.117,SKIPPED,Dry run! +275,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.104,SKIPPED,Dry run! +276,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.106,SKIPPED,Dry run! +277,dc2-leaf1a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +278,dc2-leaf1a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +279,dc2-leaf1a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +280,dc2-leaf1a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +281,dc2-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1a_Ethernet1 - Destination: dc2-spine1_Ethernet1,SKIPPED,Dry run! +282,dc2-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1a_Ethernet2 - Destination: dc2-spine2_Ethernet1,SKIPPED,Dry run! +283,dc2-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet1,SKIPPED,Dry run! +284,dc2-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet1,SKIPPED,Dry run! +285,dc2-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc2-leaf1b_Ethernet3,SKIPPED,Dry run! +286,dc2-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc2-leaf1b_Ethernet4,SKIPPED,Dry run! +287,dc2-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc2-leaf1-server1_PCI1,SKIPPED,Dry run! +288,dc2-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC2-LEAF1C_Ethernet1,SKIPPED,Dry run! +289,dc2-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +290,dc2-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! +291,dc2-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +292,dc2-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +293,dc2-leaf1a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc2-leaf1b_Po3,SKIPPED,Dry run! +294,dc2-leaf1a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1,SKIPPED,Dry run! +295,dc2-leaf1a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC2-LEAF1C_Po1,SKIPPED,Dry run! +296,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! +297,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! +298,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! +299,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! +300,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! +301,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! +302,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! +303,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! +304,dc2-leaf1a,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! +305,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet1,SKIPPED,Dry run! +306,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet1,SKIPPED,Dry run! +307,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf1b_Ethernet3,SKIPPED,Dry run! +308,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf1b_Ethernet4,SKIPPED,Dry run! +309,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf1c_Ethernet1,SKIPPED,Dry run! +310,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.1,SKIPPED,Dry run! +311,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.2,SKIPPED,Dry run! +312,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.3,SKIPPED,Dry run! +313,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.4,SKIPPED,Dry run! +314,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.5,SKIPPED,Dry run! +315,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.11,SKIPPED,Dry run! +316,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.12,SKIPPED,Dry run! +317,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.13,SKIPPED,Dry run! +318,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.14,SKIPPED,Dry run! +319,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.15,SKIPPED,Dry run! +320,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.16,SKIPPED,Dry run! +321,dc2-leaf1a,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! +322,dc2-leaf1a,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +323,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! +324,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! +325,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! +326,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! +327,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! +328,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! +329,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! +330,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! +331,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! +332,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! +333,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! +334,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! +335,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! +336,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! +337,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! +338,dc2-leaf1b,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +339,dc2-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,SKIPPED,Dry run! +340,dc2-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,SKIPPED,Dry run! +341,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.116,SKIPPED,Dry run! +342,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.108,SKIPPED,Dry run! +343,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.110,SKIPPED,Dry run! +344,dc2-leaf1b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +345,dc2-leaf1b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +346,dc2-leaf1b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +347,dc2-leaf1b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +348,dc2-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1b_Ethernet1 - Destination: dc2-spine1_Ethernet2,SKIPPED,Dry run! +349,dc2-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1b_Ethernet2 - Destination: dc2-spine2_Ethernet2,SKIPPED,Dry run! +350,dc2-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet2,SKIPPED,Dry run! +351,dc2-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet2,SKIPPED,Dry run! +352,dc2-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc2-leaf1a_Ethernet3,SKIPPED,Dry run! +353,dc2-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc2-leaf1a_Ethernet4,SKIPPED,Dry run! +354,dc2-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc2-leaf1-server1_PCI2,SKIPPED,Dry run! +355,dc2-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC2-LEAF1C_Ethernet2,SKIPPED,Dry run! +356,dc2-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +357,dc2-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! +358,dc2-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +359,dc2-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +360,dc2-leaf1b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc2-leaf1a_Po3,SKIPPED,Dry run! +361,dc2-leaf1b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1,SKIPPED,Dry run! +362,dc2-leaf1b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC2-LEAF1C_Po1,SKIPPED,Dry run! +363,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! +364,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! +365,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! +366,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! +367,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! +368,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! +369,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! +370,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! +371,dc2-leaf1b,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! +372,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet2,SKIPPED,Dry run! +373,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet2,SKIPPED,Dry run! +374,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf1a_Ethernet3,SKIPPED,Dry run! +375,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf1a_Ethernet4,SKIPPED,Dry run! +376,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf1c_Ethernet2,SKIPPED,Dry run! +377,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.1,SKIPPED,Dry run! +378,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.2,SKIPPED,Dry run! +379,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.3,SKIPPED,Dry run! +380,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.4,SKIPPED,Dry run! +381,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.5,SKIPPED,Dry run! +382,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.11,SKIPPED,Dry run! +383,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.12,SKIPPED,Dry run! +384,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.13,SKIPPED,Dry run! +385,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.14,SKIPPED,Dry run! +386,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.15,SKIPPED,Dry run! +387,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.16,SKIPPED,Dry run! +388,dc2-leaf1b,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! +389,dc2-leaf1b,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +390,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! +391,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! +392,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! +393,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! +394,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! +395,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! +396,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! +397,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! +398,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! +399,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! +400,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! +401,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! +402,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! +403,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! +404,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! +405,dc2-leaf1c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +406,dc2-leaf1c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +407,dc2-leaf1c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +408,dc2-leaf1c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +409,dc2-leaf1c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - DC2-LEAF1A_Ethernet8,SKIPPED,Dry run! +410,dc2-leaf1c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - DC2-LEAF1B_Ethernet8,SKIPPED,Dry run! +411,dc2-leaf1c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc2-leaf1-server1_iLO,SKIPPED,Dry run! +412,dc2-leaf1c,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel1 - DC2_L3_LEAF1_Po8,SKIPPED,Dry run! +413,dc2-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet8,SKIPPED,Dry run! +414,dc2-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet8,SKIPPED,Dry run! +415,dc2-leaf1c,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +416,dc2-leaf2a,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +417,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,SKIPPED,Dry run! +418,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,SKIPPED,Dry run! +419,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,SKIPPED,Dry run! +420,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.121,SKIPPED,Dry run! +421,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.112,SKIPPED,Dry run! +422,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.114,SKIPPED,Dry run! +423,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.0,SKIPPED,Dry run! +424,dc2-leaf2a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +425,dc2-leaf2a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +426,dc2-leaf2a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +427,dc2-leaf2a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +428,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet1 - Destination: dc2-spine1_Ethernet3,SKIPPED,Dry run! +429,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet2 - Destination: dc2-spine2_Ethernet3,SKIPPED,Dry run! +430,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet6 - Destination: dc1-leaf2a_Ethernet6,SKIPPED,Dry run! +431,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet3,SKIPPED,Dry run! +432,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet3,SKIPPED,Dry run! +433,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc2-leaf2b_Ethernet3,SKIPPED,Dry run! +434,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc2-leaf2b_Ethernet4,SKIPPED,Dry run! +435,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc2-leaf2-server1_PCI1,SKIPPED,Dry run! +436,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet6 - P2P_LINK_TO_dc1-leaf2a_Ethernet6,SKIPPED,Dry run! +437,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC2-LEAF2C_Ethernet1,SKIPPED,Dry run! +438,dc2-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +439,dc2-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! +440,dc2-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +441,dc2-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +442,dc2-leaf2a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc2-leaf2b_Po3,SKIPPED,Dry run! +443,dc2-leaf2a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1,SKIPPED,Dry run! +444,dc2-leaf2a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC2-LEAF2C_Po1,SKIPPED,Dry run! +445,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! +446,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! +447,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! +448,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! +449,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! +450,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! +451,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! +452,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! +453,dc2-leaf2a,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! +454,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet3,SKIPPED,Dry run! +455,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet3,SKIPPED,Dry run! +456,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2b_Ethernet3,SKIPPED,Dry run! +457,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet4,SKIPPED,Dry run! +458,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc1-leaf2a_Ethernet6,SKIPPED,Dry run! +459,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf2c_Ethernet1,SKIPPED,Dry run! +460,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.1,SKIPPED,Dry run! +461,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.2,SKIPPED,Dry run! +462,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.3,SKIPPED,Dry run! +463,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.4,SKIPPED,Dry run! +464,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.5,SKIPPED,Dry run! +465,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.11,SKIPPED,Dry run! +466,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.12,SKIPPED,Dry run! +467,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.13,SKIPPED,Dry run! +468,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.14,SKIPPED,Dry run! +469,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.15,SKIPPED,Dry run! +470,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.16,SKIPPED,Dry run! +471,dc2-leaf2a,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! +472,dc2-leaf2a,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +473,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! +474,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! +475,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! +476,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! +477,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! +478,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! +479,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! +480,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! +481,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! +482,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! +483,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! +484,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! +485,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! +486,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! +487,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! +488,dc2-leaf2b,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +489,dc2-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,SKIPPED,Dry run! +490,dc2-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,SKIPPED,Dry run! +491,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.120,SKIPPED,Dry run! +492,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.116,SKIPPED,Dry run! +493,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.118,SKIPPED,Dry run! +494,dc2-leaf2b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +495,dc2-leaf2b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +496,dc2-leaf2b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +497,dc2-leaf2b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +498,dc2-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2b_Ethernet1 - Destination: dc2-spine1_Ethernet4,SKIPPED,Dry run! +499,dc2-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2b_Ethernet2 - Destination: dc2-spine2_Ethernet4,SKIPPED,Dry run! +500,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet4,SKIPPED,Dry run! +501,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet4,SKIPPED,Dry run! +502,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc2-leaf2a_Ethernet3,SKIPPED,Dry run! +503,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc2-leaf2a_Ethernet4,SKIPPED,Dry run! +504,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc2-leaf2-server1_PCI2,SKIPPED,Dry run! +505,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet6 - P2P_LINK_TO_dc1-leaf2b_Ethernet6,SKIPPED,Dry run! +506,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC2-LEAF2C_Ethernet2,SKIPPED,Dry run! +507,dc2-leaf2b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +508,dc2-leaf2b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! +509,dc2-leaf2b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +510,dc2-leaf2b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! +511,dc2-leaf2b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc2-leaf2a_Po3,SKIPPED,Dry run! +512,dc2-leaf2b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1,SKIPPED,Dry run! +513,dc2-leaf2b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC2-LEAF2C_Po1,SKIPPED,Dry run! +514,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! +515,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! +516,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! +517,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! +518,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! +519,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! +520,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! +521,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! +522,dc2-leaf2b,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! +523,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet4,SKIPPED,Dry run! +524,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet4,SKIPPED,Dry run! +525,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet3,SKIPPED,Dry run! +526,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2a_Ethernet4,SKIPPED,Dry run! +527,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf2c_Ethernet2,SKIPPED,Dry run! +528,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.1,SKIPPED,Dry run! +529,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.2,SKIPPED,Dry run! +530,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.3,SKIPPED,Dry run! +531,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.4,SKIPPED,Dry run! +532,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.5,SKIPPED,Dry run! +533,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.11,SKIPPED,Dry run! +534,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.12,SKIPPED,Dry run! +535,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.13,SKIPPED,Dry run! +536,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.14,SKIPPED,Dry run! +537,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.15,SKIPPED,Dry run! +538,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.16,SKIPPED,Dry run! +539,dc2-leaf2b,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! +540,dc2-leaf2b,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +541,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! +542,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! +543,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! +544,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! +545,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! +546,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! +547,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! +548,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! +549,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! +550,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! +551,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! +552,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! +553,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! +554,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! +555,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! +556,dc2-leaf2c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +557,dc2-leaf2c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +558,dc2-leaf2c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +559,dc2-leaf2c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +560,dc2-leaf2c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - DC2-LEAF2A_Ethernet8,SKIPPED,Dry run! +561,dc2-leaf2c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - DC2-LEAF2B_Ethernet8,SKIPPED,Dry run! +562,dc2-leaf2c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc2-leaf2-server1_iLO,SKIPPED,Dry run! +563,dc2-leaf2c,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel1 - DC2_L3_LEAF2_Po8,SKIPPED,Dry run! +564,dc2-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf2a_Ethernet8,SKIPPED,Dry run! +565,dc2-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf2b_Ethernet8,SKIPPED,Dry run! +566,dc2-leaf2c,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +567,dc2-spine1,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +568,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.13,SKIPPED,Dry run! +569,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.14,SKIPPED,Dry run! +570,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,SKIPPED,Dry run! +571,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.16,SKIPPED,Dry run! +572,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.105,SKIPPED,Dry run! +573,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.109,SKIPPED,Dry run! +574,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.113,SKIPPED,Dry run! +575,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.117,SKIPPED,Dry run! +576,dc2-spine1,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +577,dc2-spine1,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +578,dc2-spine1,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +579,dc2-spine1,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +580,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet1 - Destination: dc2-leaf1a_Ethernet1,SKIPPED,Dry run! +581,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet2 - Destination: dc2-leaf1b_Ethernet1,SKIPPED,Dry run! +582,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet3 - Destination: dc2-leaf2a_Ethernet1,SKIPPED,Dry run! +583,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet4 - Destination: dc2-leaf2b_Ethernet1,SKIPPED,Dry run! +584,dc2-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet1,SKIPPED,Dry run! +585,dc2-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet1,SKIPPED,Dry run! +586,dc2-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet1,SKIPPED,Dry run! +587,dc2-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet1,SKIPPED,Dry run! +588,dc2-spine1,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +589,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet1,SKIPPED,Dry run! +590,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet1,SKIPPED,Dry run! +591,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet1,SKIPPED,Dry run! +592,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet1,SKIPPED,Dry run! +593,dc2-spine1,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +594,dc2-spine2,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! +595,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.13,SKIPPED,Dry run! +596,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.14,SKIPPED,Dry run! +597,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,SKIPPED,Dry run! +598,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.16,SKIPPED,Dry run! +599,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.107,SKIPPED,Dry run! +600,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.111,SKIPPED,Dry run! +601,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.115,SKIPPED,Dry run! +602,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.119,SKIPPED,Dry run! +603,dc2-spine2,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! +604,dc2-spine2,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! +605,dc2-spine2,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! +606,dc2-spine2,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! +607,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet1 - Destination: dc2-leaf1a_Ethernet2,SKIPPED,Dry run! +608,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet2 - Destination: dc2-leaf1b_Ethernet2,SKIPPED,Dry run! +609,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet3 - Destination: dc2-leaf2a_Ethernet2,SKIPPED,Dry run! +610,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet4 - Destination: dc2-leaf2b_Ethernet2,SKIPPED,Dry run! +611,dc2-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet2,SKIPPED,Dry run! +612,dc2-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet2,SKIPPED,Dry run! +613,dc2-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet2,SKIPPED,Dry run! +614,dc2-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet2,SKIPPED,Dry run! +615,dc2-spine2,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! +616,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet2,SKIPPED,Dry run! +617,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet2,SKIPPED,Dry run! +618,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet2,SKIPPED,Dry run! +619,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet2,SKIPPED,Dry run! +620,dc2-spine2,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.md b/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.md index 4cccbada6d4..d17a470b560 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.md +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.md @@ -11,43 +11,43 @@ ### Summary Totals -| Total Tests | Total Tests Passed | Total Tests Failed | -| ----------- | ------------------ | ------------------ | -| 620 | 0 | 0 | +| Total Tests | Total Tests Passed | Total Tests Failed | Total Tests Skipped | +| ----------- | ------------------ | ------------------ | ------------------- | +| 620 | 0 | 0 | 620 | ### Summary Totals Devices Under Tests -| DUT | Total Tests | Tests Passed | Tests Failed | Categories Failed | -| --- | ----------- | ------------ | ------------ | ----------------- | -| dc1-leaf1a | 67 | 0 | 0 | | -| dc1-leaf1b | 67 | 0 | 0 | | -| dc1-leaf1c | 11 | 0 | 0 | | -| dc1-leaf2a | 69 | 0 | 0 | | -| dc1-leaf2c | 10 | 0 | 0 | | -| dc1-spine1 | 23 | 0 | 0 | | -| dc1-spine2 | 23 | 0 | 0 | | -| dc2-leaf1a | 67 | 0 | 0 | | -| dc2-leaf1b | 67 | 0 | 0 | | -| dc2-leaf1c | 11 | 0 | 0 | | -| dc2-leaf2a | 72 | 0 | 0 | | -| dc2-leaf2b | 68 | 0 | 0 | | -| dc2-leaf2c | 11 | 0 | 0 | | -| dc2-spine1 | 27 | 0 | 0 | | -| dc2-spine2 | 27 | 0 | 0 | | +| DUT | Total Tests | Tests Passed | Tests Failed | Tests Skipped | Categories Failed | Categories Skipped | +| --- | ----------- | ------------ | ------------ | ------------- | ----------------- | ------------------ | +| dc1-leaf1a | 67 | 0 | 0 | 67 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | +| dc1-leaf1b | 67 | 0 | 0 | 67 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | +| dc1-leaf1c | 11 | 0 | 0 | 11 | | Hardware, Interface State, LLDP Topology, NTP | +| dc1-leaf2a | 69 | 0 | 0 | 69 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | +| dc1-leaf2c | 10 | 0 | 0 | 10 | | Hardware, Interface State, LLDP Topology, NTP | +| dc1-spine1 | 23 | 0 | 0 | 23 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, NTP | +| dc1-spine2 | 23 | 0 | 0 | 23 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, NTP | +| dc2-leaf1a | 67 | 0 | 0 | 67 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | +| dc2-leaf1b | 67 | 0 | 0 | 67 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | +| dc2-leaf1c | 11 | 0 | 0 | 11 | | Hardware, Interface State, LLDP Topology, NTP | +| dc2-leaf2a | 72 | 0 | 0 | 72 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | +| dc2-leaf2b | 68 | 0 | 0 | 68 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | +| dc2-leaf2c | 11 | 0 | 0 | 11 | | Hardware, Interface State, LLDP Topology, NTP | +| dc2-spine1 | 27 | 0 | 0 | 27 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, NTP | +| dc2-spine2 | 27 | 0 | 0 | 27 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, NTP | ### Summary Totals Per Category -| Test Category | Total Tests | Tests Passed | Tests Failed | -| ------------- | ----------- | ------------ | ------------ | -| Hardware | 60 | 0 | 0 | -| NTP | 15 | 0 | 0 | -| Interface State | 193 | 0 | 0 | -| LLDP Topology | 56 | 0 | 0 | -| IP Reachability | 30 | 0 | 0 | -| Loopback0 Reachability | 77 | 0 | 0 | -| MLAG | 7 | 0 | 0 | -| BGP | 77 | 0 | 0 | -| Routing Table | 105 | 0 | 0 | +| Test Category | Total Tests | Tests Passed | Tests Failed | Tests Skipped | +| ------------- | ----------- | ------------ | ------------ | ------------- | +| BGP | 77 | 0 | 0 | 77 | +| Hardware | 60 | 0 | 0 | 60 | +| IP Reachability | 30 | 0 | 0 | 30 | +| Interface State | 193 | 0 | 0 | 193 | +| LLDP Topology | 56 | 0 | 0 | 56 | +| Loopback0 Reachability | 77 | 0 | 0 | 77 | +| MLAG | 7 | 0 | 0 | 7 | +| NTP | 15 | 0 | 0 | 15 | +| Routing Table | 105 | 0 | 0 | 105 | ## Failed Test Results Summary @@ -56,625 +56,626 @@ ## All Test Results -| Test ID | Node | Test Category | Test Description | Test | Test Result | Failure Reason | -| ------- | ---- | ------------- | ---------------- | ---- | ----------- | -------------- | -| 1 | dc1-leaf1a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 2 | dc1-leaf1a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 3 | dc1-leaf1a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 4 | dc1-leaf1a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 5 | dc1-leaf1a | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 6 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - MLAG_PEER_dc1-leaf1b_Ethernet3 | NOT RUN | - | -| 7 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - MLAG_PEER_dc1-leaf1b_Ethernet4 | NOT RUN | - | -| 8 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet1 | NOT RUN | - | -| 9 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet1 | NOT RUN | - | -| 10 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet8 - DC1-LEAF1C_Ethernet1 | NOT RUN | - | -| 11 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc1-leaf1-server1_PCI1 | NOT RUN | - | -| 12 | dc1-leaf1a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel3 - MLAG_PEER_dc1-leaf1b_Po3 | NOT RUN | - | -| 13 | dc1-leaf1a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel8 - DC1-LEAF1C_Po1 | NOT RUN | - | -| 14 | dc1-leaf1a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1 | NOT RUN | - | -| 15 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | -| 16 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4094 - MLAG_PEER | NOT RUN | - | -| 17 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan11 - VRF10_VLAN11 | NOT RUN | - | -| 18 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan12 - VRF10_VLAN12 | NOT RUN | - | -| 19 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | -| 20 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan21 - VRF11_VLAN21 | NOT RUN | - | -| 21 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan22 - VRF11_VLAN22 | NOT RUN | - | -| 22 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | -| 23 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 24 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | -| 25 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | -| 26 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | -| 27 | dc1-leaf1a | Interface State | Vxlan Interface Status & Line Protocol == "up" | Vxlan1 | NOT RUN | - | -| 28 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf1b_Ethernet3 | NOT RUN | - | -| 29 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc1-leaf1b_Ethernet4 | NOT RUN | - | -| 30 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet1 | NOT RUN | - | -| 31 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet1 | NOT RUN | - | -| 32 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf1c_Ethernet1 | NOT RUN | - | -| 33 | dc1-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1a_Ethernet1 - Destination: dc1-spine1_Ethernet1 | NOT RUN | - | -| 34 | dc1-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1a_Ethernet2 - Destination: dc1-spine2_Ethernet1 | NOT RUN | - | -| 35 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.3 | NOT RUN | - | -| 36 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.1 | NOT RUN | - | -| 37 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.2 | NOT RUN | - | -| 38 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.4 | NOT RUN | - | -| 39 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.5 | NOT RUN | - | -| 40 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.11 | NOT RUN | - | -| 41 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.12 | NOT RUN | - | -| 42 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.13 | NOT RUN | - | -| 43 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.14 | NOT RUN | - | -| 44 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.15 | NOT RUN | - | -| 45 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.16 | NOT RUN | - | -| 46 | dc1-leaf1a | MLAG | MLAG State active & Status connected | MLAG | NOT RUN | - | -| 47 | dc1-leaf1a | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 48 | dc1-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.1.97 | NOT RUN | - | -| 49 | dc1-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.0 | NOT RUN | - | -| 50 | dc1-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.2 | NOT RUN | - | -| 51 | dc1-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | NOT RUN | - | -| 52 | dc1-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | NOT RUN | - | -| 53 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | -| 54 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | -| 55 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | -| 56 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | -| 57 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | -| 58 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | -| 59 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | -| 60 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | -| 61 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | -| 62 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | -| 63 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | -| 64 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | -| 65 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | -| 66 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | -| 67 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | -| 68 | dc1-leaf1b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 69 | dc1-leaf1b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 70 | dc1-leaf1b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 71 | dc1-leaf1b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 72 | dc1-leaf1b | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 73 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - MLAG_PEER_dc1-leaf1a_Ethernet3 | NOT RUN | - | -| 74 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - MLAG_PEER_dc1-leaf1a_Ethernet4 | NOT RUN | - | -| 75 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet2 | NOT RUN | - | -| 76 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet2 | NOT RUN | - | -| 77 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet8 - DC1-LEAF1C_Ethernet2 | NOT RUN | - | -| 78 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc1-leaf1-server1_PCI2 | NOT RUN | - | -| 79 | dc1-leaf1b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel3 - MLAG_PEER_dc1-leaf1a_Po3 | NOT RUN | - | -| 80 | dc1-leaf1b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel8 - DC1-LEAF1C_Po1 | NOT RUN | - | -| 81 | dc1-leaf1b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1 | NOT RUN | - | -| 82 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | -| 83 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4094 - MLAG_PEER | NOT RUN | - | -| 84 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan11 - VRF10_VLAN11 | NOT RUN | - | -| 85 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan12 - VRF10_VLAN12 | NOT RUN | - | -| 86 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | -| 87 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan21 - VRF11_VLAN21 | NOT RUN | - | -| 88 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan22 - VRF11_VLAN22 | NOT RUN | - | -| 89 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | -| 90 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 91 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | -| 92 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | -| 93 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | -| 94 | dc1-leaf1b | Interface State | Vxlan Interface Status & Line Protocol == "up" | Vxlan1 | NOT RUN | - | -| 95 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf1a_Ethernet3 | NOT RUN | - | -| 96 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc1-leaf1a_Ethernet4 | NOT RUN | - | -| 97 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet2 | NOT RUN | - | -| 98 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet2 | NOT RUN | - | -| 99 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf1c_Ethernet2 | NOT RUN | - | -| 100 | dc1-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1b_Ethernet1 - Destination: dc1-spine1_Ethernet2 | NOT RUN | - | -| 101 | dc1-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1b_Ethernet2 - Destination: dc1-spine2_Ethernet2 | NOT RUN | - | -| 102 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.3 | NOT RUN | - | -| 103 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.1 | NOT RUN | - | -| 104 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.2 | NOT RUN | - | -| 105 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.4 | NOT RUN | - | -| 106 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.5 | NOT RUN | - | -| 107 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.11 | NOT RUN | - | -| 108 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.12 | NOT RUN | - | -| 109 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.13 | NOT RUN | - | -| 110 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.14 | NOT RUN | - | -| 111 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.15 | NOT RUN | - | -| 112 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.16 | NOT RUN | - | -| 113 | dc1-leaf1b | MLAG | MLAG State active & Status connected | MLAG | NOT RUN | - | -| 114 | dc1-leaf1b | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 115 | dc1-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.1.96 | NOT RUN | - | -| 116 | dc1-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.4 | NOT RUN | - | -| 117 | dc1-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.6 | NOT RUN | - | -| 118 | dc1-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | NOT RUN | - | -| 119 | dc1-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | NOT RUN | - | -| 120 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | -| 121 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | -| 122 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | -| 123 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | -| 124 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | -| 125 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | -| 126 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | -| 127 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | -| 128 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | -| 129 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | -| 130 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | -| 131 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | -| 132 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | -| 133 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | -| 134 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | -| 135 | dc1-leaf1c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 136 | dc1-leaf1c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 137 | dc1-leaf1c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 138 | dc1-leaf1c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 139 | dc1-leaf1c | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 140 | dc1-leaf1c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - DC1-LEAF1A_Ethernet8 | NOT RUN | - | -| 141 | dc1-leaf1c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - DC1-LEAF1B_Ethernet8 | NOT RUN | - | -| 142 | dc1-leaf1c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc1-leaf1-server1_iLO | NOT RUN | - | -| 143 | dc1-leaf1c | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel1 - DC1_L3_LEAF1_Po8 | NOT RUN | - | -| 144 | dc1-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf1a_Ethernet8 | NOT RUN | - | -| 145 | dc1-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-leaf1b_Ethernet8 | NOT RUN | - | -| 146 | dc1-leaf2a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 147 | dc1-leaf2a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 148 | dc1-leaf2a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 149 | dc1-leaf2a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 150 | dc1-leaf2a | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 151 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - MLAG_PEER_dc1-leaf2b_Ethernet3 | NOT RUN | - | -| 152 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - MLAG_PEER_dc1-leaf2b_Ethernet4 | NOT RUN | - | -| 153 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet3 | NOT RUN | - | -| 154 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet3 | NOT RUN | - | -| 155 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet8 - DC1-LEAF2C_Ethernet1 | NOT RUN | - | -| 156 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet6 - P2P_LINK_TO_dc2-leaf2a_Ethernet6 | NOT RUN | - | -| 157 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc1-leaf2-server1_PCI1 | NOT RUN | - | -| 158 | dc1-leaf2a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel3 - MLAG_PEER_dc1-leaf2b_Po3 | NOT RUN | - | -| 159 | dc1-leaf2a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel8 - DC1-LEAF2C_Po1 | NOT RUN | - | -| 160 | dc1-leaf2a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1 | NOT RUN | - | -| 161 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | -| 162 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4094 - MLAG_PEER | NOT RUN | - | -| 163 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan11 - VRF10_VLAN11 | NOT RUN | - | -| 164 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan12 - VRF10_VLAN12 | NOT RUN | - | -| 165 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | -| 166 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan21 - VRF11_VLAN21 | NOT RUN | - | -| 167 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan22 - VRF11_VLAN22 | NOT RUN | - | -| 168 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | -| 169 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 170 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | -| 171 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | -| 172 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | -| 173 | dc1-leaf2a | Interface State | Vxlan Interface Status & Line Protocol == "up" | Vxlan1 | NOT RUN | - | -| 174 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet3 | NOT RUN | - | -| 175 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet3 | NOT RUN | - | -| 176 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf2c_Ethernet1 | NOT RUN | - | -| 177 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet6 - remote: dc2-leaf2a_Ethernet6 | NOT RUN | - | -| 178 | dc1-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2a_Ethernet1 - Destination: dc1-spine1_Ethernet3 | NOT RUN | - | -| 179 | dc1-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2a_Ethernet2 - Destination: dc1-spine2_Ethernet3 | NOT RUN | - | -| 180 | dc1-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2a_Ethernet6 - Destination: dc2-leaf2a_Ethernet6 | NOT RUN | - | -| 181 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.3 | NOT RUN | - | -| 182 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.1 | NOT RUN | - | -| 183 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.2 | NOT RUN | - | -| 184 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.4 | NOT RUN | - | -| 185 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.5 | NOT RUN | - | -| 186 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.11 | NOT RUN | - | -| 187 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.12 | NOT RUN | - | -| 188 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.13 | NOT RUN | - | -| 189 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.14 | NOT RUN | - | -| 190 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.15 | NOT RUN | - | -| 191 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.16 | NOT RUN | - | -| 192 | dc1-leaf2a | MLAG | MLAG State active & Status connected | MLAG | NOT RUN | - | -| 193 | dc1-leaf2a | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 194 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.8 | NOT RUN | - | -| 195 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.10 | NOT RUN | - | -| 196 | dc1-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | NOT RUN | - | -| 197 | dc1-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | NOT RUN | - | -| 198 | dc1-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.15 | NOT RUN | - | -| 199 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 192.168.100.1 | NOT RUN | - | -| 200 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | -| 201 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | -| 202 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | -| 203 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | -| 204 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | -| 205 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | -| 206 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | -| 207 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | -| 208 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | -| 209 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | -| 210 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | -| 211 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | -| 212 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | -| 213 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | -| 214 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | -| 215 | dc1-leaf2c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 216 | dc1-leaf2c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 217 | dc1-leaf2c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 218 | dc1-leaf2c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 219 | dc1-leaf2c | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 220 | dc1-leaf2c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - DC1-LEAF2A_Ethernet8 | NOT RUN | - | -| 221 | dc1-leaf2c | Interface State | Ethernet Interface & Line Protocol == "adminDown" | Ethernet2 - DC1-LEAF2B_Ethernet8 | NOT RUN | - | -| 222 | dc1-leaf2c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc1-leaf2-server1_iLO | NOT RUN | - | -| 223 | dc1-leaf2c | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel1 - DC1_L3_LEAF2_Po8 | NOT RUN | - | -| 224 | dc1-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf2a_Ethernet8 | NOT RUN | - | -| 225 | dc1-spine1 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 226 | dc1-spine1 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 227 | dc1-spine1 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 228 | dc1-spine1 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 229 | dc1-spine1 | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 230 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet1 | NOT RUN | - | -| 231 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet1 | NOT RUN | - | -| 232 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet1 | NOT RUN | - | -| 233 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == "adminDown" | Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet1 | NOT RUN | - | -| 234 | dc1-spine1 | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 235 | dc1-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf1a_Ethernet1 | NOT RUN | - | -| 236 | dc1-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-leaf1b_Ethernet1 | NOT RUN | - | -| 237 | dc1-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf2a_Ethernet1 | NOT RUN | - | -| 238 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet1 - Destination: dc1-leaf1a_Ethernet1 | NOT RUN | - | -| 239 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet2 - Destination: dc1-leaf1b_Ethernet1 | NOT RUN | - | -| 240 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet3 - Destination: dc1-leaf2a_Ethernet1 | NOT RUN | - | -| 241 | dc1-spine1 | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 242 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.1 | NOT RUN | - | -| 243 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.5 | NOT RUN | - | -| 244 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.9 | NOT RUN | - | -| 245 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.3 | NOT RUN | - | -| 246 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.4 | NOT RUN | - | -| 247 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.5 | NOT RUN | - | -| 248 | dc1-spine2 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 249 | dc1-spine2 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 250 | dc1-spine2 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 251 | dc1-spine2 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 252 | dc1-spine2 | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 253 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet2 | NOT RUN | - | -| 254 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet2 | NOT RUN | - | -| 255 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet2 | NOT RUN | - | -| 256 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == "adminDown" | Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet2 | NOT RUN | - | -| 257 | dc1-spine2 | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 258 | dc1-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf1a_Ethernet2 | NOT RUN | - | -| 259 | dc1-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-leaf1b_Ethernet2 | NOT RUN | - | -| 260 | dc1-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf2a_Ethernet2 | NOT RUN | - | -| 261 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet1 - Destination: dc1-leaf1a_Ethernet2 | NOT RUN | - | -| 262 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet2 - Destination: dc1-leaf1b_Ethernet2 | NOT RUN | - | -| 263 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet3 - Destination: dc1-leaf2a_Ethernet2 | NOT RUN | - | -| 264 | dc1-spine2 | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 265 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.3 | NOT RUN | - | -| 266 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.7 | NOT RUN | - | -| 267 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.11 | NOT RUN | - | -| 268 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.3 | NOT RUN | - | -| 269 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.4 | NOT RUN | - | -| 270 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.5 | NOT RUN | - | -| 271 | dc2-leaf1a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 272 | dc2-leaf1a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 273 | dc2-leaf1a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 274 | dc2-leaf1a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 275 | dc2-leaf1a | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 276 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - MLAG_PEER_dc2-leaf1b_Ethernet3 | NOT RUN | - | -| 277 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - MLAG_PEER_dc2-leaf1b_Ethernet4 | NOT RUN | - | -| 278 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet1 | NOT RUN | - | -| 279 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet1 | NOT RUN | - | -| 280 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet8 - DC2-LEAF1C_Ethernet1 | NOT RUN | - | -| 281 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc2-leaf1-server1_PCI1 | NOT RUN | - | -| 282 | dc2-leaf1a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel3 - MLAG_PEER_dc2-leaf1b_Po3 | NOT RUN | - | -| 283 | dc2-leaf1a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel8 - DC2-LEAF1C_Po1 | NOT RUN | - | -| 284 | dc2-leaf1a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1 | NOT RUN | - | -| 285 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | -| 286 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4094 - MLAG_PEER | NOT RUN | - | -| 287 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan11 - VRF10_VLAN11 | NOT RUN | - | -| 288 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan12 - VRF10_VLAN12 | NOT RUN | - | -| 289 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | -| 290 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan21 - VRF11_VLAN21 | NOT RUN | - | -| 291 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan22 - VRF11_VLAN22 | NOT RUN | - | -| 292 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | -| 293 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 294 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | -| 295 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | -| 296 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | -| 297 | dc2-leaf1a | Interface State | Vxlan Interface Status & Line Protocol == "up" | Vxlan1 | NOT RUN | - | -| 298 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf1b_Ethernet3 | NOT RUN | - | -| 299 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf1b_Ethernet4 | NOT RUN | - | -| 300 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet1 | NOT RUN | - | -| 301 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet1 | NOT RUN | - | -| 302 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf1c_Ethernet1 | NOT RUN | - | -| 303 | dc2-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1a_Ethernet1 - Destination: dc2-spine1_Ethernet1 | NOT RUN | - | -| 304 | dc2-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1a_Ethernet2 - Destination: dc2-spine2_Ethernet1 | NOT RUN | - | -| 305 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.3 | NOT RUN | - | -| 306 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.1 | NOT RUN | - | -| 307 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.2 | NOT RUN | - | -| 308 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.4 | NOT RUN | - | -| 309 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.5 | NOT RUN | - | -| 310 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.11 | NOT RUN | - | -| 311 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.12 | NOT RUN | - | -| 312 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.13 | NOT RUN | - | -| 313 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.14 | NOT RUN | - | -| 314 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.15 | NOT RUN | - | -| 315 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.16 | NOT RUN | - | -| 316 | dc2-leaf1a | MLAG | MLAG State active & Status connected | MLAG | NOT RUN | - | -| 317 | dc2-leaf1a | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 318 | dc2-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.117 | NOT RUN | - | -| 319 | dc2-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.104 | NOT RUN | - | -| 320 | dc2-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.106 | NOT RUN | - | -| 321 | dc2-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | NOT RUN | - | -| 322 | dc2-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | NOT RUN | - | -| 323 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | -| 324 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | -| 325 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | -| 326 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | -| 327 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | -| 328 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | -| 329 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | -| 330 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | -| 331 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | -| 332 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | -| 333 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | -| 334 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | -| 335 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | -| 336 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | -| 337 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | -| 338 | dc2-leaf1b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 339 | dc2-leaf1b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 340 | dc2-leaf1b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 341 | dc2-leaf1b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 342 | dc2-leaf1b | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 343 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - MLAG_PEER_dc2-leaf1a_Ethernet3 | NOT RUN | - | -| 344 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - MLAG_PEER_dc2-leaf1a_Ethernet4 | NOT RUN | - | -| 345 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet2 | NOT RUN | - | -| 346 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet2 | NOT RUN | - | -| 347 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet8 - DC2-LEAF1C_Ethernet2 | NOT RUN | - | -| 348 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc2-leaf1-server1_PCI2 | NOT RUN | - | -| 349 | dc2-leaf1b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel3 - MLAG_PEER_dc2-leaf1a_Po3 | NOT RUN | - | -| 350 | dc2-leaf1b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel8 - DC2-LEAF1C_Po1 | NOT RUN | - | -| 351 | dc2-leaf1b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1 | NOT RUN | - | -| 352 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | -| 353 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4094 - MLAG_PEER | NOT RUN | - | -| 354 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan11 - VRF10_VLAN11 | NOT RUN | - | -| 355 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan12 - VRF10_VLAN12 | NOT RUN | - | -| 356 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | -| 357 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan21 - VRF11_VLAN21 | NOT RUN | - | -| 358 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan22 - VRF11_VLAN22 | NOT RUN | - | -| 359 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | -| 360 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 361 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | -| 362 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | -| 363 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | -| 364 | dc2-leaf1b | Interface State | Vxlan Interface Status & Line Protocol == "up" | Vxlan1 | NOT RUN | - | -| 365 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf1a_Ethernet3 | NOT RUN | - | -| 366 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf1a_Ethernet4 | NOT RUN | - | -| 367 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet2 | NOT RUN | - | -| 368 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet2 | NOT RUN | - | -| 369 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf1c_Ethernet2 | NOT RUN | - | -| 370 | dc2-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1b_Ethernet1 - Destination: dc2-spine1_Ethernet2 | NOT RUN | - | -| 371 | dc2-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1b_Ethernet2 - Destination: dc2-spine2_Ethernet2 | NOT RUN | - | -| 372 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.3 | NOT RUN | - | -| 373 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.1 | NOT RUN | - | -| 374 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.2 | NOT RUN | - | -| 375 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.4 | NOT RUN | - | -| 376 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.5 | NOT RUN | - | -| 377 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.11 | NOT RUN | - | -| 378 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.12 | NOT RUN | - | -| 379 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.13 | NOT RUN | - | -| 380 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.14 | NOT RUN | - | -| 381 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.15 | NOT RUN | - | -| 382 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.16 | NOT RUN | - | -| 383 | dc2-leaf1b | MLAG | MLAG State active & Status connected | MLAG | NOT RUN | - | -| 384 | dc2-leaf1b | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 385 | dc2-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.116 | NOT RUN | - | -| 386 | dc2-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.108 | NOT RUN | - | -| 387 | dc2-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.110 | NOT RUN | - | -| 388 | dc2-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | NOT RUN | - | -| 389 | dc2-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | NOT RUN | - | -| 390 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | -| 391 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | -| 392 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | -| 393 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | -| 394 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | -| 395 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | -| 396 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | -| 397 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | -| 398 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | -| 399 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | -| 400 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | -| 401 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | -| 402 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | -| 403 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | -| 404 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | -| 405 | dc2-leaf1c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 406 | dc2-leaf1c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 407 | dc2-leaf1c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 408 | dc2-leaf1c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 409 | dc2-leaf1c | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 410 | dc2-leaf1c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - DC2-LEAF1A_Ethernet8 | NOT RUN | - | -| 411 | dc2-leaf1c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - DC2-LEAF1B_Ethernet8 | NOT RUN | - | -| 412 | dc2-leaf1c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc2-leaf1-server1_iLO | NOT RUN | - | -| 413 | dc2-leaf1c | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel1 - DC2_L3_LEAF1_Po8 | NOT RUN | - | -| 414 | dc2-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf1a_Ethernet8 | NOT RUN | - | -| 415 | dc2-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf1b_Ethernet8 | NOT RUN | - | -| 416 | dc2-leaf2a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 417 | dc2-leaf2a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 418 | dc2-leaf2a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 419 | dc2-leaf2a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 420 | dc2-leaf2a | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 421 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - MLAG_PEER_dc2-leaf2b_Ethernet3 | NOT RUN | - | -| 422 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - MLAG_PEER_dc2-leaf2b_Ethernet4 | NOT RUN | - | -| 423 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet3 | NOT RUN | - | -| 424 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet3 | NOT RUN | - | -| 425 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet8 - DC2-LEAF2C_Ethernet1 | NOT RUN | - | -| 426 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet6 - P2P_LINK_TO_dc1-leaf2a_Ethernet6 | NOT RUN | - | -| 427 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc2-leaf2-server1_PCI1 | NOT RUN | - | -| 428 | dc2-leaf2a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel3 - MLAG_PEER_dc2-leaf2b_Po3 | NOT RUN | - | -| 429 | dc2-leaf2a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel8 - DC2-LEAF2C_Po1 | NOT RUN | - | -| 430 | dc2-leaf2a | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1 | NOT RUN | - | -| 431 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | -| 432 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4094 - MLAG_PEER | NOT RUN | - | -| 433 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan11 - VRF10_VLAN11 | NOT RUN | - | -| 434 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan12 - VRF10_VLAN12 | NOT RUN | - | -| 435 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | -| 436 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan21 - VRF11_VLAN21 | NOT RUN | - | -| 437 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan22 - VRF11_VLAN22 | NOT RUN | - | -| 438 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | -| 439 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 440 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | -| 441 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | -| 442 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | -| 443 | dc2-leaf2a | Interface State | Vxlan Interface Status & Line Protocol == "up" | Vxlan1 | NOT RUN | - | -| 444 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2b_Ethernet3 | NOT RUN | - | -| 445 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2b_Ethernet4 | NOT RUN | - | -| 446 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet3 | NOT RUN | - | -| 447 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet3 | NOT RUN | - | -| 448 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf2c_Ethernet1 | NOT RUN | - | -| 449 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet6 - remote: dc1-leaf2a_Ethernet6 | NOT RUN | - | -| 450 | dc2-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2a_Ethernet1 - Destination: dc2-spine1_Ethernet3 | NOT RUN | - | -| 451 | dc2-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2a_Ethernet2 - Destination: dc2-spine2_Ethernet3 | NOT RUN | - | -| 452 | dc2-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2a_Ethernet6 - Destination: dc1-leaf2a_Ethernet6 | NOT RUN | - | -| 453 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.3 | NOT RUN | - | -| 454 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.1 | NOT RUN | - | -| 455 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.2 | NOT RUN | - | -| 456 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.4 | NOT RUN | - | -| 457 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.5 | NOT RUN | - | -| 458 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.11 | NOT RUN | - | -| 459 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.12 | NOT RUN | - | -| 460 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.13 | NOT RUN | - | -| 461 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.14 | NOT RUN | - | -| 462 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.15 | NOT RUN | - | -| 463 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.16 | NOT RUN | - | -| 464 | dc2-leaf2a | MLAG | MLAG State active & Status connected | MLAG | NOT RUN | - | -| 465 | dc2-leaf2a | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 466 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.121 | NOT RUN | - | -| 467 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.112 | NOT RUN | - | -| 468 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.114 | NOT RUN | - | -| 469 | dc2-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | NOT RUN | - | -| 470 | dc2-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | NOT RUN | - | -| 471 | dc2-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.5 | NOT RUN | - | -| 472 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 192.168.100.0 | NOT RUN | - | -| 473 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | -| 474 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | -| 475 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | -| 476 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | -| 477 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | -| 478 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | -| 479 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | -| 480 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | -| 481 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | -| 482 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | -| 483 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | -| 484 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | -| 485 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | -| 486 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | -| 487 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | -| 488 | dc2-leaf2b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 489 | dc2-leaf2b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 490 | dc2-leaf2b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 491 | dc2-leaf2b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 492 | dc2-leaf2b | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 493 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - MLAG_PEER_dc2-leaf2a_Ethernet3 | NOT RUN | - | -| 494 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - MLAG_PEER_dc2-leaf2a_Ethernet4 | NOT RUN | - | -| 495 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet4 | NOT RUN | - | -| 496 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet4 | NOT RUN | - | -| 497 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet8 - DC2-LEAF2C_Ethernet2 | NOT RUN | - | -| 498 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet6 - P2P_LINK_TO_dc1-leaf2b_Ethernet6 | NOT RUN | - | -| 499 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc2-leaf2-server1_PCI2 | NOT RUN | - | -| 500 | dc2-leaf2b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel3 - MLAG_PEER_dc2-leaf2a_Po3 | NOT RUN | - | -| 501 | dc2-leaf2b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel8 - DC2-LEAF2C_Po1 | NOT RUN | - | -| 502 | dc2-leaf2b | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1 | NOT RUN | - | -| 503 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | -| 504 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan4094 - MLAG_PEER | NOT RUN | - | -| 505 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan11 - VRF10_VLAN11 | NOT RUN | - | -| 506 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan12 - VRF10_VLAN12 | NOT RUN | - | -| 507 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | -| 508 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan21 - VRF11_VLAN21 | NOT RUN | - | -| 509 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan22 - VRF11_VLAN22 | NOT RUN | - | -| 510 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == "up" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | -| 511 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 512 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | -| 513 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | -| 514 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | -| 515 | dc2-leaf2b | Interface State | Vxlan Interface Status & Line Protocol == "up" | Vxlan1 | NOT RUN | - | -| 516 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2a_Ethernet3 | NOT RUN | - | -| 517 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2a_Ethernet4 | NOT RUN | - | -| 518 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet4 | NOT RUN | - | -| 519 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet4 | NOT RUN | - | -| 520 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf2c_Ethernet2 | NOT RUN | - | -| 521 | dc2-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2b_Ethernet1 - Destination: dc2-spine1_Ethernet4 | NOT RUN | - | -| 522 | dc2-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2b_Ethernet2 - Destination: dc2-spine2_Ethernet4 | NOT RUN | - | -| 523 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.3 | NOT RUN | - | -| 524 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.1 | NOT RUN | - | -| 525 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.2 | NOT RUN | - | -| 526 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.4 | NOT RUN | - | -| 527 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.5 | NOT RUN | - | -| 528 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.11 | NOT RUN | - | -| 529 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.12 | NOT RUN | - | -| 530 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.13 | NOT RUN | - | -| 531 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.14 | NOT RUN | - | -| 532 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.15 | NOT RUN | - | -| 533 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.16 | NOT RUN | - | -| 534 | dc2-leaf2b | MLAG | MLAG State active & Status connected | MLAG | NOT RUN | - | -| 535 | dc2-leaf2b | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 536 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.120 | NOT RUN | - | -| 537 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.116 | NOT RUN | - | -| 538 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.118 | NOT RUN | - | -| 539 | dc2-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | NOT RUN | - | -| 540 | dc2-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | NOT RUN | - | -| 541 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | -| 542 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | -| 543 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | -| 544 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | -| 545 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | -| 546 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | -| 547 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | -| 548 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | -| 549 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | -| 550 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | -| 551 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | -| 552 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | -| 553 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | -| 554 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | -| 555 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | -| 556 | dc2-leaf2c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 557 | dc2-leaf2c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 558 | dc2-leaf2c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 559 | dc2-leaf2c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 560 | dc2-leaf2c | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 561 | dc2-leaf2c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - DC2-LEAF2A_Ethernet8 | NOT RUN | - | -| 562 | dc2-leaf2c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - DC2-LEAF2B_Ethernet8 | NOT RUN | - | -| 563 | dc2-leaf2c | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet5 - dc2-leaf2-server1_iLO | NOT RUN | - | -| 564 | dc2-leaf2c | Interface State | Port-Channel Interface & Line Protocol == "up" | Port-Channel1 - DC2_L3_LEAF2_Po8 | NOT RUN | - | -| 565 | dc2-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf2a_Ethernet8 | NOT RUN | - | -| 566 | dc2-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf2b_Ethernet8 | NOT RUN | - | -| 567 | dc2-spine1 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 568 | dc2-spine1 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 569 | dc2-spine1 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 570 | dc2-spine1 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 571 | dc2-spine1 | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 572 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet1 | NOT RUN | - | -| 573 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet1 | NOT RUN | - | -| 574 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet1 | NOT RUN | - | -| 575 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet1 | NOT RUN | - | -| 576 | dc2-spine1 | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 577 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf1a_Ethernet1 | NOT RUN | - | -| 578 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf1b_Ethernet1 | NOT RUN | - | -| 579 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2a_Ethernet1 | NOT RUN | - | -| 580 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2b_Ethernet1 | NOT RUN | - | -| 581 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet1 - Destination: dc2-leaf1a_Ethernet1 | NOT RUN | - | -| 582 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet2 - Destination: dc2-leaf1b_Ethernet1 | NOT RUN | - | -| 583 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet3 - Destination: dc2-leaf2a_Ethernet1 | NOT RUN | - | -| 584 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet4 - Destination: dc2-leaf2b_Ethernet1 | NOT RUN | - | -| 585 | dc2-spine1 | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 586 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.105 | NOT RUN | - | -| 587 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.109 | NOT RUN | - | -| 588 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.113 | NOT RUN | - | -| 589 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.117 | NOT RUN | - | -| 590 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.13 | NOT RUN | - | -| 591 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.14 | NOT RUN | - | -| 592 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.15 | NOT RUN | - | -| 593 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.16 | NOT RUN | - | -| 594 | dc2-spine2 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | -| 595 | dc2-spine2 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | -| 596 | dc2-spine2 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | -| 597 | dc2-spine2 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | -| 598 | dc2-spine2 | NTP | Synchronised with NTP server | NTP | NOT RUN | - | -| 599 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet2 | NOT RUN | - | -| 600 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet2 | NOT RUN | - | -| 601 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet2 | NOT RUN | - | -| 602 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == "up" | Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet2 | NOT RUN | - | -| 603 | dc2-spine2 | Interface State | Loopback Interface Status & Line Protocol == "up" | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | -| 604 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf1a_Ethernet2 | NOT RUN | - | -| 605 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf1b_Ethernet2 | NOT RUN | - | -| 606 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2a_Ethernet2 | NOT RUN | - | -| 607 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2b_Ethernet2 | NOT RUN | - | -| 608 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet1 - Destination: dc2-leaf1a_Ethernet2 | NOT RUN | - | -| 609 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet2 - Destination: dc2-leaf1b_Ethernet2 | NOT RUN | - | -| 610 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet3 - Destination: dc2-leaf2a_Ethernet2 | NOT RUN | - | -| 611 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet4 - Destination: dc2-leaf2b_Ethernet2 | NOT RUN | - | -| 612 | dc2-spine2 | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | -| 613 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.107 | NOT RUN | - | -| 614 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.111 | NOT RUN | - | -| 615 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.115 | NOT RUN | - | -| 616 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.119 | NOT RUN | - | -| 617 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.13 | NOT RUN | - | -| 618 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.14 | NOT RUN | - | -| 619 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.15 | NOT RUN | - | -| 620 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.16 | NOT RUN | - | +| Test ID | Node | Test Category | Test Description | Test | Test Result | Failure Reasons | +| ------- | ---- | ------------- | ---------------- | ---- | ----------- | --------------- | +| 1 | dc1-leaf1a | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 2 | dc1-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | SKIPPED | Dry run! | +| 3 | dc1-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | SKIPPED | Dry run! | +| 4 | dc1-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.1.97 | SKIPPED | Dry run! | +| 5 | dc1-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.0 | SKIPPED | Dry run! | +| 6 | dc1-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.2 | SKIPPED | Dry run! | +| 7 | dc1-leaf1a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 8 | dc1-leaf1a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 9 | dc1-leaf1a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 10 | dc1-leaf1a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 11 | dc1-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1a_Ethernet1 - Destination: dc1-spine1_Ethernet1 | SKIPPED | Dry run! | +| 12 | dc1-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1a_Ethernet2 - Destination: dc1-spine2_Ethernet1 | SKIPPED | Dry run! | +| 13 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet1 | SKIPPED | Dry run! | +| 14 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet1 | SKIPPED | Dry run! | +| 15 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc1-leaf1b_Ethernet3 | SKIPPED | Dry run! | +| 16 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc1-leaf1b_Ethernet4 | SKIPPED | Dry run! | +| 17 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc1-leaf1-server1_PCI1 | SKIPPED | Dry run! | +| 18 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC1-LEAF1C_Ethernet1 | SKIPPED | Dry run! | +| 19 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 20 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | +| 21 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 22 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 23 | dc1-leaf1a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc1-leaf1b_Po3 | SKIPPED | Dry run! | +| 24 | dc1-leaf1a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1 | SKIPPED | Dry run! | +| 25 | dc1-leaf1a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC1-LEAF1C_Po1 | SKIPPED | Dry run! | +| 26 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | +| 27 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | +| 28 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | +| 29 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | +| 30 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | +| 31 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | +| 32 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | +| 33 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | +| 34 | dc1-leaf1a | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | +| 35 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet1 | SKIPPED | Dry run! | +| 36 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet1 | SKIPPED | Dry run! | +| 37 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf1b_Ethernet3 | SKIPPED | Dry run! | +| 38 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc1-leaf1b_Ethernet4 | SKIPPED | Dry run! | +| 39 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf1c_Ethernet1 | SKIPPED | Dry run! | +| 40 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | +| 41 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | +| 42 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | +| 43 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | +| 44 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | +| 45 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | +| 46 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | +| 47 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | +| 48 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | +| 49 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | +| 50 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | +| 51 | dc1-leaf1a | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | +| 52 | dc1-leaf1a | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 53 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | +| 54 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | +| 55 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | +| 56 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | +| 57 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | +| 58 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | +| 59 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | +| 60 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | +| 61 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | +| 62 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | +| 63 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | +| 64 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | +| 65 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | +| 66 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | +| 67 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | +| 68 | dc1-leaf1b | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 69 | dc1-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | SKIPPED | Dry run! | +| 70 | dc1-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | SKIPPED | Dry run! | +| 71 | dc1-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.1.96 | SKIPPED | Dry run! | +| 72 | dc1-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.4 | SKIPPED | Dry run! | +| 73 | dc1-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.6 | SKIPPED | Dry run! | +| 74 | dc1-leaf1b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 75 | dc1-leaf1b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 76 | dc1-leaf1b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 77 | dc1-leaf1b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 78 | dc1-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1b_Ethernet1 - Destination: dc1-spine1_Ethernet2 | SKIPPED | Dry run! | +| 79 | dc1-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1b_Ethernet2 - Destination: dc1-spine2_Ethernet2 | SKIPPED | Dry run! | +| 80 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet2 | SKIPPED | Dry run! | +| 81 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet2 | SKIPPED | Dry run! | +| 82 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc1-leaf1a_Ethernet3 | SKIPPED | Dry run! | +| 83 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc1-leaf1a_Ethernet4 | SKIPPED | Dry run! | +| 84 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc1-leaf1-server1_PCI2 | SKIPPED | Dry run! | +| 85 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC1-LEAF1C_Ethernet2 | SKIPPED | Dry run! | +| 86 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 87 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | +| 88 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 89 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 90 | dc1-leaf1b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc1-leaf1a_Po3 | SKIPPED | Dry run! | +| 91 | dc1-leaf1b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1 | SKIPPED | Dry run! | +| 92 | dc1-leaf1b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC1-LEAF1C_Po1 | SKIPPED | Dry run! | +| 93 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | +| 94 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | +| 95 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | +| 96 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | +| 97 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | +| 98 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | +| 99 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | +| 100 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | +| 101 | dc1-leaf1b | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | +| 102 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet2 | SKIPPED | Dry run! | +| 103 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet2 | SKIPPED | Dry run! | +| 104 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf1a_Ethernet3 | SKIPPED | Dry run! | +| 105 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc1-leaf1a_Ethernet4 | SKIPPED | Dry run! | +| 106 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf1c_Ethernet2 | SKIPPED | Dry run! | +| 107 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | +| 108 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | +| 109 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | +| 110 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | +| 111 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | +| 112 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | +| 113 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | +| 114 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | +| 115 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | +| 116 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | +| 117 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | +| 118 | dc1-leaf1b | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | +| 119 | dc1-leaf1b | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 120 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | +| 121 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | +| 122 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | +| 123 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | +| 124 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | +| 125 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | +| 126 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | +| 127 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | +| 128 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | +| 129 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | +| 130 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | +| 131 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | +| 132 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | +| 133 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | +| 134 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | +| 135 | dc1-leaf1c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 136 | dc1-leaf1c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 137 | dc1-leaf1c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 138 | dc1-leaf1c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 139 | dc1-leaf1c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - DC1-LEAF1A_Ethernet8 | SKIPPED | Dry run! | +| 140 | dc1-leaf1c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - DC1-LEAF1B_Ethernet8 | SKIPPED | Dry run! | +| 141 | dc1-leaf1c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc1-leaf1-server1_iLO | SKIPPED | Dry run! | +| 142 | dc1-leaf1c | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel1 - DC1_L3_LEAF1_Po8 | SKIPPED | Dry run! | +| 143 | dc1-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf1a_Ethernet8 | SKIPPED | Dry run! | +| 144 | dc1-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-leaf1b_Ethernet8 | SKIPPED | Dry run! | +| 145 | dc1-leaf1c | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 146 | dc1-leaf2a | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 147 | dc1-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | SKIPPED | Dry run! | +| 148 | dc1-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | SKIPPED | Dry run! | +| 149 | dc1-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.15 | SKIPPED | Dry run! | +| 150 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.10 | SKIPPED | Dry run! | +| 151 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.8 | SKIPPED | Dry run! | +| 152 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 192.168.100.1 | SKIPPED | Dry run! | +| 153 | dc1-leaf2a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 154 | dc1-leaf2a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 155 | dc1-leaf2a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 156 | dc1-leaf2a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 157 | dc1-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2a_Ethernet1 - Destination: dc1-spine1_Ethernet3 | SKIPPED | Dry run! | +| 158 | dc1-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2a_Ethernet2 - Destination: dc1-spine2_Ethernet3 | SKIPPED | Dry run! | +| 159 | dc1-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2a_Ethernet6 - Destination: dc2-leaf2a_Ethernet6 | SKIPPED | Dry run! | +| 160 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet3 | SKIPPED | Dry run! | +| 161 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet3 | SKIPPED | Dry run! | +| 162 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc1-leaf2b_Ethernet3 | SKIPPED | Dry run! | +| 163 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc1-leaf2b_Ethernet4 | SKIPPED | Dry run! | +| 164 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc1-leaf2-server1_PCI1 | SKIPPED | Dry run! | +| 165 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet6 - P2P_LINK_TO_dc2-leaf2a_Ethernet6 | SKIPPED | Dry run! | +| 166 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC1-LEAF2C_Ethernet1 | SKIPPED | Dry run! | +| 167 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 168 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | +| 169 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 170 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 171 | dc1-leaf2a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc1-leaf2b_Po3 | SKIPPED | Dry run! | +| 172 | dc1-leaf2a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1 | SKIPPED | Dry run! | +| 173 | dc1-leaf2a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC1-LEAF2C_Po1 | SKIPPED | Dry run! | +| 174 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | +| 175 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | +| 176 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | +| 177 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | +| 178 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | +| 179 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | +| 180 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | +| 181 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | +| 182 | dc1-leaf2a | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | +| 183 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet3 | SKIPPED | Dry run! | +| 184 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet3 | SKIPPED | Dry run! | +| 185 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet6 - remote: dc2-leaf2a_Ethernet6 | SKIPPED | Dry run! | +| 186 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf2c_Ethernet1 | SKIPPED | Dry run! | +| 187 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | +| 188 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | +| 189 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | +| 190 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | +| 191 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | +| 192 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | +| 193 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | +| 194 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | +| 195 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | +| 196 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | +| 197 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | +| 198 | dc1-leaf2a | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | +| 199 | dc1-leaf2a | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 200 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | +| 201 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | +| 202 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | +| 203 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | +| 204 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | +| 205 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | +| 206 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | +| 207 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | +| 208 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | +| 209 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | +| 210 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | +| 211 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | +| 212 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | +| 213 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | +| 214 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | +| 215 | dc1-leaf2c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 216 | dc1-leaf2c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 217 | dc1-leaf2c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 218 | dc1-leaf2c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 219 | dc1-leaf2c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - DC1-LEAF2A_Ethernet8 | SKIPPED | Dry run! | +| 220 | dc1-leaf2c | Interface State | Ethernet Interface & Line Protocol == \"adminDown\" | Ethernet2 - DC1-LEAF2B_Ethernet8 | SKIPPED | Dry run! | +| 221 | dc1-leaf2c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc1-leaf2-server1_iLO | SKIPPED | Dry run! | +| 222 | dc1-leaf2c | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel1 - DC1_L3_LEAF2_Po8 | SKIPPED | Dry run! | +| 223 | dc1-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf2a_Ethernet8 | SKIPPED | Dry run! | +| 224 | dc1-leaf2c | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 225 | dc1-spine1 | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 226 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.3 | SKIPPED | Dry run! | +| 227 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.4 | SKIPPED | Dry run! | +| 228 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.5 | SKIPPED | Dry run! | +| 229 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.1 | SKIPPED | Dry run! | +| 230 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.5 | SKIPPED | Dry run! | +| 231 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.9 | SKIPPED | Dry run! | +| 232 | dc1-spine1 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 233 | dc1-spine1 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 234 | dc1-spine1 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 235 | dc1-spine1 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 236 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet1 - Destination: dc1-leaf1a_Ethernet1 | SKIPPED | Dry run! | +| 237 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet2 - Destination: dc1-leaf1b_Ethernet1 | SKIPPED | Dry run! | +| 238 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet3 - Destination: dc1-leaf2a_Ethernet1 | SKIPPED | Dry run! | +| 239 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet1 | SKIPPED | Dry run! | +| 240 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet1 | SKIPPED | Dry run! | +| 241 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet1 | SKIPPED | Dry run! | +| 242 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == \"adminDown\" | Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet1 | SKIPPED | Dry run! | +| 243 | dc1-spine1 | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 244 | dc1-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf1a_Ethernet1 | SKIPPED | Dry run! | +| 245 | dc1-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-leaf1b_Ethernet1 | SKIPPED | Dry run! | +| 246 | dc1-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf2a_Ethernet1 | SKIPPED | Dry run! | +| 247 | dc1-spine1 | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 248 | dc1-spine2 | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 249 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.3 | SKIPPED | Dry run! | +| 250 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.4 | SKIPPED | Dry run! | +| 251 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.5 | SKIPPED | Dry run! | +| 252 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.11 | SKIPPED | Dry run! | +| 253 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.3 | SKIPPED | Dry run! | +| 254 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.7 | SKIPPED | Dry run! | +| 255 | dc1-spine2 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 256 | dc1-spine2 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 257 | dc1-spine2 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 258 | dc1-spine2 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 259 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet1 - Destination: dc1-leaf1a_Ethernet2 | SKIPPED | Dry run! | +| 260 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet2 - Destination: dc1-leaf1b_Ethernet2 | SKIPPED | Dry run! | +| 261 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet3 - Destination: dc1-leaf2a_Ethernet2 | SKIPPED | Dry run! | +| 262 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet2 | SKIPPED | Dry run! | +| 263 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet2 | SKIPPED | Dry run! | +| 264 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet2 | SKIPPED | Dry run! | +| 265 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == \"adminDown\" | Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet2 | SKIPPED | Dry run! | +| 266 | dc1-spine2 | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 267 | dc1-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf1a_Ethernet2 | SKIPPED | Dry run! | +| 268 | dc1-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-leaf1b_Ethernet2 | SKIPPED | Dry run! | +| 269 | dc1-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf2a_Ethernet2 | SKIPPED | Dry run! | +| 270 | dc1-spine2 | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 271 | dc2-leaf1a | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 272 | dc2-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | SKIPPED | Dry run! | +| 273 | dc2-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | SKIPPED | Dry run! | +| 274 | dc2-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.117 | SKIPPED | Dry run! | +| 275 | dc2-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.104 | SKIPPED | Dry run! | +| 276 | dc2-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.106 | SKIPPED | Dry run! | +| 277 | dc2-leaf1a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 278 | dc2-leaf1a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 279 | dc2-leaf1a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 280 | dc2-leaf1a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 281 | dc2-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1a_Ethernet1 - Destination: dc2-spine1_Ethernet1 | SKIPPED | Dry run! | +| 282 | dc2-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1a_Ethernet2 - Destination: dc2-spine2_Ethernet1 | SKIPPED | Dry run! | +| 283 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet1 | SKIPPED | Dry run! | +| 284 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet1 | SKIPPED | Dry run! | +| 285 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc2-leaf1b_Ethernet3 | SKIPPED | Dry run! | +| 286 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc2-leaf1b_Ethernet4 | SKIPPED | Dry run! | +| 287 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc2-leaf1-server1_PCI1 | SKIPPED | Dry run! | +| 288 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC2-LEAF1C_Ethernet1 | SKIPPED | Dry run! | +| 289 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 290 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | +| 291 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 292 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 293 | dc2-leaf1a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc2-leaf1b_Po3 | SKIPPED | Dry run! | +| 294 | dc2-leaf1a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1 | SKIPPED | Dry run! | +| 295 | dc2-leaf1a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC2-LEAF1C_Po1 | SKIPPED | Dry run! | +| 296 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | +| 297 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | +| 298 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | +| 299 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | +| 300 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | +| 301 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | +| 302 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | +| 303 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | +| 304 | dc2-leaf1a | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | +| 305 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet1 | SKIPPED | Dry run! | +| 306 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet1 | SKIPPED | Dry run! | +| 307 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf1b_Ethernet3 | SKIPPED | Dry run! | +| 308 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf1b_Ethernet4 | SKIPPED | Dry run! | +| 309 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf1c_Ethernet1 | SKIPPED | Dry run! | +| 310 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | +| 311 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | +| 312 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | +| 313 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | +| 314 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | +| 315 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | +| 316 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | +| 317 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | +| 318 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | +| 319 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | +| 320 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | +| 321 | dc2-leaf1a | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | +| 322 | dc2-leaf1a | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 323 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | +| 324 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | +| 325 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | +| 326 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | +| 327 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | +| 328 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | +| 329 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | +| 330 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | +| 331 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | +| 332 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | +| 333 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | +| 334 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | +| 335 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | +| 336 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | +| 337 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | +| 338 | dc2-leaf1b | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 339 | dc2-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | SKIPPED | Dry run! | +| 340 | dc2-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | SKIPPED | Dry run! | +| 341 | dc2-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.116 | SKIPPED | Dry run! | +| 342 | dc2-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.108 | SKIPPED | Dry run! | +| 343 | dc2-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.110 | SKIPPED | Dry run! | +| 344 | dc2-leaf1b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 345 | dc2-leaf1b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 346 | dc2-leaf1b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 347 | dc2-leaf1b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 348 | dc2-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1b_Ethernet1 - Destination: dc2-spine1_Ethernet2 | SKIPPED | Dry run! | +| 349 | dc2-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1b_Ethernet2 - Destination: dc2-spine2_Ethernet2 | SKIPPED | Dry run! | +| 350 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet2 | SKIPPED | Dry run! | +| 351 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet2 | SKIPPED | Dry run! | +| 352 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc2-leaf1a_Ethernet3 | SKIPPED | Dry run! | +| 353 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc2-leaf1a_Ethernet4 | SKIPPED | Dry run! | +| 354 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc2-leaf1-server1_PCI2 | SKIPPED | Dry run! | +| 355 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC2-LEAF1C_Ethernet2 | SKIPPED | Dry run! | +| 356 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 357 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | +| 358 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 359 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 360 | dc2-leaf1b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc2-leaf1a_Po3 | SKIPPED | Dry run! | +| 361 | dc2-leaf1b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1 | SKIPPED | Dry run! | +| 362 | dc2-leaf1b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC2-LEAF1C_Po1 | SKIPPED | Dry run! | +| 363 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | +| 364 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | +| 365 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | +| 366 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | +| 367 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | +| 368 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | +| 369 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | +| 370 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | +| 371 | dc2-leaf1b | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | +| 372 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet2 | SKIPPED | Dry run! | +| 373 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet2 | SKIPPED | Dry run! | +| 374 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf1a_Ethernet3 | SKIPPED | Dry run! | +| 375 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf1a_Ethernet4 | SKIPPED | Dry run! | +| 376 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf1c_Ethernet2 | SKIPPED | Dry run! | +| 377 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | +| 378 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | +| 379 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | +| 380 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | +| 381 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | +| 382 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | +| 383 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | +| 384 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | +| 385 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | +| 386 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | +| 387 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | +| 388 | dc2-leaf1b | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | +| 389 | dc2-leaf1b | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 390 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | +| 391 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | +| 392 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | +| 393 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | +| 394 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | +| 395 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | +| 396 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | +| 397 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | +| 398 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | +| 399 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | +| 400 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | +| 401 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | +| 402 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | +| 403 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | +| 404 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | +| 405 | dc2-leaf1c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 406 | dc2-leaf1c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 407 | dc2-leaf1c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 408 | dc2-leaf1c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 409 | dc2-leaf1c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - DC2-LEAF1A_Ethernet8 | SKIPPED | Dry run! | +| 410 | dc2-leaf1c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - DC2-LEAF1B_Ethernet8 | SKIPPED | Dry run! | +| 411 | dc2-leaf1c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc2-leaf1-server1_iLO | SKIPPED | Dry run! | +| 412 | dc2-leaf1c | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel1 - DC2_L3_LEAF1_Po8 | SKIPPED | Dry run! | +| 413 | dc2-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf1a_Ethernet8 | SKIPPED | Dry run! | +| 414 | dc2-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf1b_Ethernet8 | SKIPPED | Dry run! | +| 415 | dc2-leaf1c | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 416 | dc2-leaf2a | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 417 | dc2-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.5 | SKIPPED | Dry run! | +| 418 | dc2-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | SKIPPED | Dry run! | +| 419 | dc2-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | SKIPPED | Dry run! | +| 420 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.121 | SKIPPED | Dry run! | +| 421 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.112 | SKIPPED | Dry run! | +| 422 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.114 | SKIPPED | Dry run! | +| 423 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 192.168.100.0 | SKIPPED | Dry run! | +| 424 | dc2-leaf2a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 425 | dc2-leaf2a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 426 | dc2-leaf2a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 427 | dc2-leaf2a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 428 | dc2-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2a_Ethernet1 - Destination: dc2-spine1_Ethernet3 | SKIPPED | Dry run! | +| 429 | dc2-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2a_Ethernet2 - Destination: dc2-spine2_Ethernet3 | SKIPPED | Dry run! | +| 430 | dc2-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2a_Ethernet6 - Destination: dc1-leaf2a_Ethernet6 | SKIPPED | Dry run! | +| 431 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet3 | SKIPPED | Dry run! | +| 432 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet3 | SKIPPED | Dry run! | +| 433 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc2-leaf2b_Ethernet3 | SKIPPED | Dry run! | +| 434 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc2-leaf2b_Ethernet4 | SKIPPED | Dry run! | +| 435 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc2-leaf2-server1_PCI1 | SKIPPED | Dry run! | +| 436 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet6 - P2P_LINK_TO_dc1-leaf2a_Ethernet6 | SKIPPED | Dry run! | +| 437 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC2-LEAF2C_Ethernet1 | SKIPPED | Dry run! | +| 438 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 439 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | +| 440 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 441 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 442 | dc2-leaf2a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc2-leaf2b_Po3 | SKIPPED | Dry run! | +| 443 | dc2-leaf2a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1 | SKIPPED | Dry run! | +| 444 | dc2-leaf2a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC2-LEAF2C_Po1 | SKIPPED | Dry run! | +| 445 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | +| 446 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | +| 447 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | +| 448 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | +| 449 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | +| 450 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | +| 451 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | +| 452 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | +| 453 | dc2-leaf2a | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | +| 454 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet3 | SKIPPED | Dry run! | +| 455 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet3 | SKIPPED | Dry run! | +| 456 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2b_Ethernet3 | SKIPPED | Dry run! | +| 457 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2b_Ethernet4 | SKIPPED | Dry run! | +| 458 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet6 - remote: dc1-leaf2a_Ethernet6 | SKIPPED | Dry run! | +| 459 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf2c_Ethernet1 | SKIPPED | Dry run! | +| 460 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | +| 461 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | +| 462 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | +| 463 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | +| 464 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | +| 465 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | +| 466 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | +| 467 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | +| 468 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | +| 469 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | +| 470 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | +| 471 | dc2-leaf2a | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | +| 472 | dc2-leaf2a | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 473 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | +| 474 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | +| 475 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | +| 476 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | +| 477 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | +| 478 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | +| 479 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | +| 480 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | +| 481 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | +| 482 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | +| 483 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | +| 484 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | +| 485 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | +| 486 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | +| 487 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | +| 488 | dc2-leaf2b | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 489 | dc2-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | SKIPPED | Dry run! | +| 490 | dc2-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | SKIPPED | Dry run! | +| 491 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.120 | SKIPPED | Dry run! | +| 492 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.116 | SKIPPED | Dry run! | +| 493 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.118 | SKIPPED | Dry run! | +| 494 | dc2-leaf2b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 495 | dc2-leaf2b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 496 | dc2-leaf2b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 497 | dc2-leaf2b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 498 | dc2-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2b_Ethernet1 - Destination: dc2-spine1_Ethernet4 | SKIPPED | Dry run! | +| 499 | dc2-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2b_Ethernet2 - Destination: dc2-spine2_Ethernet4 | SKIPPED | Dry run! | +| 500 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet4 | SKIPPED | Dry run! | +| 501 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet4 | SKIPPED | Dry run! | +| 502 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc2-leaf2a_Ethernet3 | SKIPPED | Dry run! | +| 503 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc2-leaf2a_Ethernet4 | SKIPPED | Dry run! | +| 504 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc2-leaf2-server1_PCI2 | SKIPPED | Dry run! | +| 505 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet6 - P2P_LINK_TO_dc1-leaf2b_Ethernet6 | SKIPPED | Dry run! | +| 506 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC2-LEAF2C_Ethernet2 | SKIPPED | Dry run! | +| 507 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 508 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | +| 509 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 510 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | +| 511 | dc2-leaf2b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc2-leaf2a_Po3 | SKIPPED | Dry run! | +| 512 | dc2-leaf2b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1 | SKIPPED | Dry run! | +| 513 | dc2-leaf2b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC2-LEAF2C_Po1 | SKIPPED | Dry run! | +| 514 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | +| 515 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | +| 516 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | +| 517 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | +| 518 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | +| 519 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | +| 520 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | +| 521 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | +| 522 | dc2-leaf2b | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | +| 523 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet4 | SKIPPED | Dry run! | +| 524 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet4 | SKIPPED | Dry run! | +| 525 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2a_Ethernet3 | SKIPPED | Dry run! | +| 526 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2a_Ethernet4 | SKIPPED | Dry run! | +| 527 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf2c_Ethernet2 | SKIPPED | Dry run! | +| 528 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | +| 529 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | +| 530 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | +| 531 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | +| 532 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | +| 533 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | +| 534 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | +| 535 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | +| 536 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | +| 537 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | +| 538 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | +| 539 | dc2-leaf2b | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | +| 540 | dc2-leaf2b | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 541 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | +| 542 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | +| 543 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | +| 544 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | +| 545 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | +| 546 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | +| 547 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | +| 548 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | +| 549 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | +| 550 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | +| 551 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | +| 552 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | +| 553 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | +| 554 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | +| 555 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | +| 556 | dc2-leaf2c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 557 | dc2-leaf2c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 558 | dc2-leaf2c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 559 | dc2-leaf2c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 560 | dc2-leaf2c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - DC2-LEAF2A_Ethernet8 | SKIPPED | Dry run! | +| 561 | dc2-leaf2c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - DC2-LEAF2B_Ethernet8 | SKIPPED | Dry run! | +| 562 | dc2-leaf2c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc2-leaf2-server1_iLO | SKIPPED | Dry run! | +| 563 | dc2-leaf2c | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel1 - DC2_L3_LEAF2_Po8 | SKIPPED | Dry run! | +| 564 | dc2-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf2a_Ethernet8 | SKIPPED | Dry run! | +| 565 | dc2-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf2b_Ethernet8 | SKIPPED | Dry run! | +| 566 | dc2-leaf2c | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 567 | dc2-spine1 | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 568 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.13 | SKIPPED | Dry run! | +| 569 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.14 | SKIPPED | Dry run! | +| 570 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.15 | SKIPPED | Dry run! | +| 571 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.16 | SKIPPED | Dry run! | +| 572 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.105 | SKIPPED | Dry run! | +| 573 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.109 | SKIPPED | Dry run! | +| 574 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.113 | SKIPPED | Dry run! | +| 575 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.117 | SKIPPED | Dry run! | +| 576 | dc2-spine1 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 577 | dc2-spine1 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 578 | dc2-spine1 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 579 | dc2-spine1 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 580 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet1 - Destination: dc2-leaf1a_Ethernet1 | SKIPPED | Dry run! | +| 581 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet2 - Destination: dc2-leaf1b_Ethernet1 | SKIPPED | Dry run! | +| 582 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet3 - Destination: dc2-leaf2a_Ethernet1 | SKIPPED | Dry run! | +| 583 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet4 - Destination: dc2-leaf2b_Ethernet1 | SKIPPED | Dry run! | +| 584 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet1 | SKIPPED | Dry run! | +| 585 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet1 | SKIPPED | Dry run! | +| 586 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet1 | SKIPPED | Dry run! | +| 587 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet1 | SKIPPED | Dry run! | +| 588 | dc2-spine1 | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 589 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf1a_Ethernet1 | SKIPPED | Dry run! | +| 590 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf1b_Ethernet1 | SKIPPED | Dry run! | +| 591 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2a_Ethernet1 | SKIPPED | Dry run! | +| 592 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2b_Ethernet1 | SKIPPED | Dry run! | +| 593 | dc2-spine1 | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| 594 | dc2-spine2 | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | +| 595 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.13 | SKIPPED | Dry run! | +| 596 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.14 | SKIPPED | Dry run! | +| 597 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.15 | SKIPPED | Dry run! | +| 598 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.16 | SKIPPED | Dry run! | +| 599 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.107 | SKIPPED | Dry run! | +| 600 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.111 | SKIPPED | Dry run! | +| 601 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.115 | SKIPPED | Dry run! | +| 602 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.119 | SKIPPED | Dry run! | +| 603 | dc2-spine2 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | +| 604 | dc2-spine2 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | +| 605 | dc2-spine2 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | +| 606 | dc2-spine2 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | +| 607 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet1 - Destination: dc2-leaf1a_Ethernet2 | SKIPPED | Dry run! | +| 608 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet2 - Destination: dc2-leaf1b_Ethernet2 | SKIPPED | Dry run! | +| 609 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet3 - Destination: dc2-leaf2a_Ethernet2 | SKIPPED | Dry run! | +| 610 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet4 - Destination: dc2-leaf2b_Ethernet2 | SKIPPED | Dry run! | +| 611 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet2 | SKIPPED | Dry run! | +| 612 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet2 | SKIPPED | Dry run! | +| 613 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet2 | SKIPPED | Dry run! | +| 614 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet2 | SKIPPED | Dry run! | +| 615 | dc2-spine2 | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | +| 616 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf1a_Ethernet2 | SKIPPED | Dry run! | +| 617 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf1b_Ethernet2 | SKIPPED | Dry run! | +| 618 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2a_Ethernet2 | SKIPPED | Dry run! | +| 619 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2b_Ethernet2 | SKIPPED | Dry run! | +| 620 | dc2-spine2 | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | + diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py index 459d30f31d5..c7dcef33daf 100644 --- a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py @@ -12,9 +12,7 @@ from ansible.plugins.action import ActionBase, display from yaml import safe_load_all -from ansible_collections.arista.avd.plugins.plugin_utils.eos_validate_state_utils.csv_report import CSVReport -from ansible_collections.arista.avd.plugins.plugin_utils.eos_validate_state_utils.md_report import ValidateStateReport -from ansible_collections.arista.avd.plugins.plugin_utils.eos_validate_state_utils.results_manager import ResultsManager +from ansible_collections.arista.avd.plugins.plugin_utils.eos_validate_state_utils import CSVReport, ResultsManager, ValidateStateReport from ansible_collections.arista.avd.plugins.plugin_utils.utils import get @@ -81,6 +79,11 @@ def run(self, tmp=None, task_vars=None): test_results = ResultsManager(only_failed_tests=only_failed_tests) for host in sorted(ansible_play_hosts_all): + # Hosts marked as not deployed do not have any results + if not get(hostvars[host], "is_deployed"): + display.warning(f"No test results for host {host} since it's marked as not deployed.") + continue + # Getting the host results temp file saved by eos_validate_state_runner action plugin temp_file = get(hostvars[host], "anta_results.results_temp_file") if not isinstance(temp_file, str) or not Path(temp_file).exists(): diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py index d1b9eaedb61..e72a61452b4 100644 --- a/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py @@ -62,7 +62,8 @@ def run(self, tmp=None, task_vars=None): save_catalog_name = None if save_catalog: - if device_catalog_output_dir := self._task.args.get("device_catalog_output_dir"): + device_catalog_output_dir = self._task.args.get("device_catalog_output_dir") + if device_catalog_output_dir is not None: save_catalog_name = f"{device_catalog_output_dir}/{hostname}-catalog.yml" else: raise AnsibleActionFail("'device_catalog_output_dir' must be set when 'save_catalog' is True.") @@ -94,29 +95,46 @@ def run(self, tmp=None, task_vars=None): dry_run=ansible_check_mode, yaml_dumper=AnsibleNoAliasDumper, ) - - # TODO Move the temp file stuff to a function - temp_file_prefix = f"{hostname}_" - temp_file_directory = Path("/tmp") - - # Search for leftover temp files with the hostname prefix and delete them. - for file in temp_file_directory.glob(f"{temp_file_prefix}*"): - file.unlink(missing_ok=True) - - # Create the temp YAML file to save the ANTA results - with NamedTemporaryFile(mode="w+", encoding="UTF-8", suffix=".yml", prefix=f"{hostname}_", dir=str(temp_file_directory), delete=False) as temp_file: - # Each YAML document in the file represents a single test result - temp_file.write(dump_all(anta_results, Dumper=AnsibleDumper, indent=2, sort_keys=False, width=130)) + # Call the function to handle temp file creation + temp_file_name = create_temp_file(hostname, anta_results) except Exception as error: raise AnsibleActionFail(message=str(error)) from error # Add the temp file path to the Ansible result - result["results_temp_file"] = temp_file.name + result["results_temp_file"] = temp_file_name return result +def create_temp_file(hostname: str, anta_results: list[dict]) -> str: + """ + Create a temporary YAML file to save all test results from ANTA. + The function will also search for leftover temp files in the `/tmp` folder and delete them. + + The temp file is saved in `/tmp` with a prefix of `_` and `.yml` extension. + + Args: + hostname (str): Current inventory device that is running the plugin. + anta_results (list[dict]): The list of ANTA results that will be saved in the YAML file. + + Returns: + str: The absolute path of the temp file. + """ + temp_file_prefix = f"{hostname}_" + temp_file_directory = Path("/tmp") + + # Search for leftover temp files with the hostname prefix and delete them. + for file in temp_file_directory.glob(f"{temp_file_prefix}*"): + file.unlink(missing_ok=True) + + # Create the temp YAML file to save the ANTA results + with NamedTemporaryFile(mode="w+", encoding="UTF-8", suffix=".yml", prefix=f"{hostname}_", dir=str(temp_file_directory), delete=False) as temp_file: + # Each YAML document in the file represents a single test result + temp_file.write(dump_all(anta_results, Dumper=AnsibleDumper, indent=2, sort_keys=False, width=130)) + return temp_file.name + + def setup_module_logging(hostname: str, result: dict) -> None: """ Create a Filter to add the hostname to generate logs, diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/__init__.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/__init__.py index 3d19398948e..e0919b9ddea 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/__init__.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/__init__.py @@ -3,6 +3,9 @@ # that can be found in the LICENSE file. from .ansible_eos_device import AnsibleEOSDevice from .avdtestbase import AvdTestBase +from .csv_report import CSVReport from .get_anta_results import get_anta_results +from .md_report import ValidateStateReport +from .results_manager import ResultsManager -__all__ = ["AnsibleEOSDevice", "get_anta_results", "AvdTestBase"] +__all__ = ["AnsibleEOSDevice", "get_anta_results", "AvdTestBase", "ValidateStateReport", "CSVReport", "ResultsManager"] diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/catalog.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/catalog.py index 2b1dd23df99..9711e9abca9 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/catalog.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/catalog.py @@ -34,7 +34,7 @@ class Catalog: Catalog class that handles management of ANTA catalogs from AVD. """ - def __init__(self, device_name: str, hostvars: dict, skipped_tests: dict, custom_catalog: dict | None = None, custom_catalog_path: str | None = None): + def __init__(self, device_name: str, hostvars: dict, skipped_tests: list[dict], custom_catalog: dict | None = None, custom_catalog_path: str | None = None): """ Initialize the Catalog class. diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/get_anta_results.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/get_anta_results.py index b28ddd37c3c..587b46409dd 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/get_anta_results.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/get_anta_results.py @@ -21,7 +21,8 @@ try: from anta.inventory import AntaInventory from anta.loader import setup_logging - from anta.result_manager import ResultManager, TestResult + from anta.result_manager import ResultManager + from anta.result_manager.models import TestResult from anta.runner import main as anta_runner HAS_ANTA = True @@ -65,7 +66,7 @@ def get_anta_results( anta_device: AntaDevice, hostvars: dict, logging_level: str, - skipped_tests: dict, + skipped_tests: list[dict], ansible_tags: dict | None = None, save_catalog_name: str | None = None, dry_run: bool = False, diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py index 53c2e2a405a..51d18246503 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py @@ -6,7 +6,7 @@ import re from abc import ABC, abstractmethod from json import loads -from typing import TYPE_CHECKING, Generator +from typing import TYPE_CHECKING, Generator, Type if TYPE_CHECKING: from io import TextIOWrapper @@ -31,7 +31,7 @@ def __init__(self, mdfile: TextIOWrapper, results: ResultsManager): self.results: ResultsManager = results @abstractmethod - def generate_section(self): + def generate_section(self) -> None: """ Abstract method to generate a specific section of the markdown report. Must be implemented by subclasses. @@ -83,7 +83,7 @@ class ValidateStateReport(MDReportBase): Generates the `# Validate State Report` section of the markdown report. """ - def generate_report(self, cls=None, is_root=True) -> None: + def generate_report(self, cls: Type | None = None, is_root: bool = True) -> None: """ Recursively generates report sections for each inner classes. diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py index 607656c935b..627726f29e2 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py @@ -38,8 +38,8 @@ def __init__(self, only_failed_tests: bool = True): self.total_tests_passed: int = 0 self.total_tests_failed: int = 0 self.total_tests_skipped: int = 0 - self.dut_stats: dict[str, dict[str, int]] = {} - self.category_stats: dict[str, dict[str, int]] = {} + self.dut_stats: dict[str, dict] = {} + self.category_stats: dict[str, dict] = {} self.failed_tests: list[dict] = [] self.only_failed_tests: bool = only_failed_tests diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml index 6c4f7d05877..71b45a7379d 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml +++ b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml @@ -48,6 +48,10 @@ tags: - always +####################################### +## Generate reports from ANTA tests ## +####################################### + - name: Create validation reports from ANTA tests arista.avd.eos_validate_state_reports: csv_report_path: "{{ eos_validate_state_csv_report_path }}" @@ -58,14 +62,17 @@ delegate_to: localhost run_once: true check_mode: false - when: use_anta | bool + when: + - use_anta | bool + - validation_report_csv | bool + - validation_report_md | bool tags: - always - reports -############################################# -## Run ansible assert eos_validate_state ## -############################################# +######################################################## +## Run eos_validate_state using Ansible assert tests ## +######################################################## - name: Include Ansible assert tests ansible.builtin.include_tasks: "ansible_tests.yml" @@ -73,11 +80,11 @@ tags: - always -#################################### -## Validation Reports ## -#################################### +################################################# +## Generate reports from Ansible assert tests ## +################################################# -- name: Create reports +- name: Include Ansible assert tests report tasks ansible.builtin.include_tasks: "reports.yml" when: not use_anta | bool tags: diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/reports.yml b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/reports.yml index 2defd2e4eb6..212d324d5b5 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/reports.yml +++ b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/reports.yml @@ -9,10 +9,8 @@ arista.avd.yaml_templates_to_facts: templates: - template: generate_state_report_results.j2 - - template: generate_anta_report_results.j2 delegate_to: localhost run_once: true - check_mode: "{{ ansible_check_mode and not use_anta }}" changed_when: false # yaml_template_to_facts always return changes in that case which break idempotency falsely tags: - always @@ -25,9 +23,7 @@ mode: 0664 delegate_to: localhost run_once: true - # When running with 'use_anta' we want to generate a report with all tests NOT RUN as preview - check_mode: "{{ ansible_check_mode and not use_anta }}" - when: "validation_role.validation_report_csv | arista.avd.default(true)" + when: validation_report_csv | bool tags: - always - report @@ -39,9 +35,7 @@ mode: 0664 delegate_to: localhost run_once: true - # When running with 'use_anta' we want to generate a report with all tests NOT RUN as preview - check_mode: "{{ ansible_check_mode and not use_anta }}" - when: "validation_role.validation_report_md | arista.avd.default(true)" + when: validation_report_md | bool tags: - always - report From 6e1270ede5092153effb42b35cfd703397a6dbd5 Mon Sep 17 00:00:00 2001 From: Carl Baillargeon Date: Wed, 15 Nov 2023 18:04:29 -0500 Subject: [PATCH 04/26] Fix conditional for reports --- .../arista/avd/roles/eos_validate_state/tasks/main.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml index 71b45a7379d..cdff815e89d 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml +++ b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml @@ -64,8 +64,7 @@ check_mode: false when: - use_anta | bool - - validation_report_csv | bool - - validation_report_md | bool + - not (validation_report_csv | bool == false and validation_report_md | bool == false) tags: - always - reports From c1c4a123607b29e3cd1cab785608ad49f4ee34fe Mon Sep 17 00:00:00 2001 From: Carl Baillargeon Date: Sun, 19 Nov 2023 15:57:15 -0500 Subject: [PATCH 05/26] Changed to JSON --- .../action/eos_validate_state_reports.py | 46 +++--- .../action/eos_validate_state_runner.py | 34 +++-- .../eos_validate_state_utils/csv_report.py | 47 +++---- .../eos_validate_state_utils/md_report.py | 133 ++++++------------ .../results_manager.py | 116 +++++++-------- .../eos_validate_state/tasks/anta_tests.yml | 1 + .../roles/eos_validate_state/tasks/main.yml | 1 + 7 files changed, 171 insertions(+), 207 deletions(-) diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py index c7dcef33daf..3c511f53cb8 100644 --- a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py @@ -5,33 +5,35 @@ __metaclass__ = type +import cProfile +import pstats +from json import load from pathlib import Path from typing import Generator from ansible.errors import AnsibleActionFail from ansible.plugins.action import ActionBase, display -from yaml import safe_load_all from ansible_collections.arista.avd.plugins.plugin_utils.eos_validate_state_utils import CSVReport, ResultsManager, ValidateStateReport from ansible_collections.arista.avd.plugins.plugin_utils.utils import get -def _test_results_stream(input_path: str) -> Generator[dict, None, None]: - """ - Streams test results from a YAML file for a specific host. +def _test_results_gen(input_path: str) -> Generator[dict, None, None]: + """Generate test results from a JSON file for a specific host. - Each YAML document in the file represents a single test result. This function - opens the temporary file created by the `eos_validate_state_runner` action plugin, - reads it, and yields each test result as a dictionary. + This function opens the JSON temporary file created by the `eos_validate_state_runner` action plugin + and yields each test result as a dictionary. Args: - input_path (str): Path to the temporary YAML file containing test results for a host. + ---- + input_path (str): Path to the temporary JSON file containing test results for a host. Yields: + ------ Generator[dict, None, None]: Test result as a dictionary. """ - with open(input_path, "r", encoding="UTF-8") as file: - yield from safe_load_all(stream=file) + with Path(input_path).open(encoding="UTF-8") as file: + yield from load(file) class ActionModule(ActionBase): @@ -42,7 +44,14 @@ def run(self, tmp=None, task_vars=None): result = super().run(tmp, task_vars) del tmp # tmp no longer has any effect + # Profiling + cprofile_file = self._task.args.get("cprofile_file") + if cprofile_file: + profiler = cProfile.Profile() + profiler.enable() + # Get task arguments and validate them + # TODO: Create helper functions only_failed_tests = self._task.args.get("only_failed_tests", False) if not isinstance(only_failed_tests, bool): raise AnsibleActionFail(f"'only_failed_tests' must be a boolean, got {only_failed_tests}.") @@ -95,25 +104,25 @@ def run(self, tmp=None, task_vars=None): try: # Process the host test results - for test_result in _test_results_stream(temp_file): + for test_result in _test_results_gen(temp_file): test_results.update_results(test_result) except Exception as error: - display.warning(f"Error while processing the test results of host {host}: {str(error)}") + display.warning(f"Error while processing the test results of host {host}: {error!s}") # Generate the CSV report if validation_report_csv: - with open(csv_report_path, "w", encoding="UTF-8", newline="\n") as csvfile: + with Path(csv_report_path).open("w", encoding="UTF-8", newline="\n") as csvfile: csv_report = CSVReport(csvfile=csvfile, results=test_results) csv_report.generate_report() # Generate the MD report if validation_report_md: - with open(md_report_path, "w", encoding="UTF-8") as mdfile: + with Path(md_report_path).open("w", encoding="UTF-8") as mdfile: md_report = ValidateStateReport(mdfile=mdfile, results=test_results) md_report.generate_report() except Exception as error: - raise AnsibleActionFail(f"Error during plugin execution: {str(error)}") from error + raise AnsibleActionFail(f"Error during plugin execution: {error}") from error finally: # Cleanup for each host's temporary file @@ -121,8 +130,9 @@ def run(self, tmp=None, task_vars=None): if Path(file_path).exists(): Path(file_path).unlink() - # Cleanup for the ResultsManager temp file - if test_results.tmp_test_results_file and not test_results.tmp_test_results_file.closed: - test_results.tmp_test_results_file.close() + if cprofile_file: + profiler.disable() + stats = pstats.Stats(profiler).sort_stats("cumtime") + stats.dump_stats(cprofile_file) return result diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py index e72a61452b4..0e7cbdfcae7 100644 --- a/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py @@ -5,14 +5,16 @@ __metaclass__ = type +import cProfile import logging +import pstats +from json import dumps from pathlib import Path from tempfile import NamedTemporaryFile from ansible.errors import AnsibleActionFail from ansible.parsing.yaml.dumper import AnsibleDumper from ansible.plugins.action import ActionBase, display -from yaml import dump_all from ansible_collections.arista.avd.plugins.plugin_utils.eos_validate_state_utils import AnsibleEOSDevice, get_anta_results from ansible_collections.arista.avd.plugins.plugin_utils.utils import PythonToAnsibleContextFilter, PythonToAnsibleHandler @@ -37,6 +39,12 @@ def run(self, tmp=None, task_vars=None): result = super().run(tmp, task_vars) del tmp # tmp no longer has any effect + # Profiling + cprofile_file = self._task.args.get("cprofile_file") + if cprofile_file: + profiler = cProfile.Profile() + profiler.enable() + hostname = task_vars["inventory_hostname"] ansible_connection = self._connection ansible_check_mode = task_vars.get("ansible_check_mode", False) @@ -104,21 +112,28 @@ def run(self, tmp=None, task_vars=None): # Add the temp file path to the Ansible result result["results_temp_file"] = temp_file_name + if cprofile_file: + profiler.disable() + stats = pstats.Stats(profiler).sort_stats("cumtime") + stats.dump_stats(cprofile_file) + return result def create_temp_file(hostname: str, anta_results: list[dict]) -> str: - """ - Create a temporary YAML file to save all test results from ANTA. + """Create a temporary YAML file to save all test results from ANTA. + The function will also search for leftover temp files in the `/tmp` folder and delete them. The temp file is saved in `/tmp` with a prefix of `_` and `.yml` extension. Args: + ---- hostname (str): Current inventory device that is running the plugin. anta_results (list[dict]): The list of ANTA results that will be saved in the YAML file. Returns: + ------- str: The absolute path of the temp file. """ temp_file_prefix = f"{hostname}_" @@ -128,19 +143,20 @@ def create_temp_file(hostname: str, anta_results: list[dict]) -> str: for file in temp_file_directory.glob(f"{temp_file_prefix}*"): file.unlink(missing_ok=True) - # Create the temp YAML file to save the ANTA results - with NamedTemporaryFile(mode="w+", encoding="UTF-8", suffix=".yml", prefix=f"{hostname}_", dir=str(temp_file_directory), delete=False) as temp_file: - # Each YAML document in the file represents a single test result - temp_file.write(dump_all(anta_results, Dumper=AnsibleDumper, indent=2, sort_keys=False, width=130)) + # Create the temp JSON file to save the ANTA results + with NamedTemporaryFile(mode="w", encoding="UTF-8", suffix=".json", prefix=f"{hostname}_", dir=str(temp_file_directory), delete=False) as temp_file: + # Serialize to JSON and write to the temp file + temp_file.write(dumps(anta_results, indent=2, sort_keys=False)) return temp_file.name def setup_module_logging(hostname: str, result: dict) -> None: - """ - Create a Filter to add the hostname to generate logs, + """Create a Filter to add the hostname to generate logs. + Add a Handler to copy the logs from the plugin into Ansible output based on their level Args: + ---- hostname (str): Current Inventory device being used to augment the logs with result (dict): The ansible dictionary used for the results """ diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py index 01e101c2f94..3caa995a3f9 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py @@ -4,7 +4,6 @@ from __future__ import annotations import csv -from json import loads from typing import TYPE_CHECKING, Generator if TYPE_CHECKING: @@ -14,15 +13,13 @@ class CSVReport: - """ - Generates and writes the validation CSV report based on test results managed by ResultsManager. - """ + """Generate and writes the validation CSV report based on test results managed by ResultsManager.""" - def __init__(self, csvfile: TextIOWrapper, results: ResultsManager): - """ - Initializes the CSVReport with an open CSV file object to write to and a ResultsManager instance. + def __init__(self, csvfile: TextIOWrapper, results: ResultsManager) -> None: + """Initialize the CSVReport with an open CSV file object to write to and a ResultsManager instance. Args: + ---- csvfile (TextIOWrapper): An open file object to write the CSV data into. results (ResultsManager): The ResultsManager instance containing all test results. """ @@ -30,31 +27,33 @@ def __init__(self, csvfile: TextIOWrapper, results: ResultsManager): self.results: ResultsManager = results def generate_rows(self) -> Generator[dict, None, None]: - """ - Generates rows of test result data for the CSV report. + """Generate rows of test result data for the CSV report. - Results are sourced from `failed_tests` or from a temporary file managed by ResultsManager, - based on whether the report includes only failed tests or all results. + Results are sourced from `failed_tests` or `all_tests`, based on whether the report includes only failed tests or all results. - Yields: + Yields + ------ Generator[dict, None, None]: A generator of test result dictionaries representing CSV rows. """ - if self.results.only_failed_tests: - for result in self.results.failed_tests: - yield {**result, "failure_reasons": ";".join(result["failure_reasons"])} - else: - self.results.tmp_test_results_file.seek(0) - for result in self.results.tmp_test_results_file: - result_dict = loads(result.strip()) - yield {**result_dict, "failure_reasons": ";".join(result_dict["failure_reasons"])} + results = self.results.failed_tests if self.results.only_failed_tests else self.results.all_tests + + for result in results: + yield {**result, "failure_reasons": ";".join(result["failure_reasons"])} def generate_report(self) -> None: - """ - Generates and writes the CSV report using the collected test results. - """ + """Generate and writes the CSV report using the collected test results.""" fieldnames = ["test_id", "node", "test_category", "test_description", "test", "result", "failure_reasons"] writer = csv.DictWriter(self.csvfile, fieldnames=fieldnames) writer.writeheader() + batch_size = 5000 + batch = [] + for row in self.generate_rows(): - writer.writerow(row) + batch.append(row) + if len(batch) >= batch_size: + writer.writerows(batch) + batch.clear() + + if batch: + writer.writerows(batch) diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py index 51d18246503..66df7b57548 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py @@ -5,8 +5,7 @@ import re from abc import ABC, abstractmethod -from json import loads -from typing import TYPE_CHECKING, Generator, Type +from typing import TYPE_CHECKING, ClassVar, Generator if TYPE_CHECKING: from io import TextIOWrapper @@ -15,15 +14,13 @@ class MDReportBase(ABC): - """ - Base class for generating the validation markdown report based on test results managed by ResultsManager. - """ + """Base class for generating the validation markdown report based on test results managed by ResultsManager.""" - def __init__(self, mdfile: TextIOWrapper, results: ResultsManager): - """ - Initializes the MDReportBase with an open markdown file object to write to and a ResultsManager instance. + def __init__(self, mdfile: TextIOWrapper, results: ResultsManager) -> None: + """Initialize the MDReportBase with an open markdown file object to write to and a ResultsManager instance. Args: + ---- mdfile (TextIOWrapper): An open file object to write the markdown data into. results (ResultsManager): The ResultsManager instance containing all test results. """ @@ -32,36 +29,36 @@ def __init__(self, mdfile: TextIOWrapper, results: ResultsManager): @abstractmethod def generate_section(self) -> None: - """ - Abstract method to generate a specific section of the markdown report. + """Abstract method to generate a specific section of the markdown report. + Must be implemented by subclasses. """ def generate_header_name(self) -> str: - """ - Generates a formatted header name based on the class name. + """Generate a formatted header name based on the class name. Returns: + ------- str: Formatted header name. Example: + ------- `ValidateStateReport` will become Validate State Report. """ class_name = self.__class__.__name__ - header_name = re.sub(r"(? None: - """ - Writes a markdown header to the markdown file. + """Write a markdown header to the markdown file. Args: + ---- heading_level (int): The level of the heading (1-6). Example: + ------- ## Test Results Summary """ - # Ensure the heading level is within the valid range of 1 to 6 heading_level = max(1, min(heading_level, 6)) header_name = self.generate_header_name() @@ -69,29 +66,26 @@ def write_header(self, heading_level: int) -> None: self.mdfile.write(f"{heading}\n\n") def write_table_header(self, headers: list[str]) -> None: - """ - Writes a table header to the markdown file. + """Write a table header to the markdown file. Args: + ---- headers (list[str]): List of header strings for the table. """ self.mdfile.write("\n".join(headers) + "\n") class ValidateStateReport(MDReportBase): - """ - Generates the `# Validate State Report` section of the markdown report. - """ + """Generate the `# Validate State Report` section of the markdown report.""" - def generate_report(self, cls: Type | None = None, is_root: bool = True) -> None: - """ - Recursively generates report sections for each inner classes. + def generate_report(self, cls: type | None = None, *, is_root: bool = True) -> None: + """Recursively generates report sections for each inner classes. Args: + ---- cls: Internal use for recursive calls. is_root (bool): Flag indicating if this is the root call. """ - # Determine the class to process; default to the current class on the first call. if cls is None: cls = self.__class__ @@ -107,9 +101,7 @@ def generate_report(self, cls: Type | None = None, is_root: bool = True) -> None self.generate_report(cls=element, is_root=False) def generate_section(self) -> None: - """ - Generates the `# Validate State Report` section of the markdown report. - """ + """Generate the `# Validate State Report` section of the markdown report.""" self.write_header(heading_level=1) self.mdfile.write( """**Table of Contents:** @@ -119,55 +111,43 @@ def generate_section(self) -> None: - [Failed Test Results Summary](#failed-test-results-summary) - [All Test Results](#all-test-results) -""" +""", ) class TestResultsSummary(MDReportBase): - """ - Generates the `## Test Results Summary` section of the markdown report. - """ + """Generate the `## Test Results Summary` section of the markdown report.""" def generate_section(self) -> None: - """ - Generates the `## Test Results Summary` section of the markdown report. - """ + """Generate the `## Test Results Summary` section of the markdown report.""" self.write_header(heading_level=2) class SummaryTotals(MDReportBase): - """ - Generates the `### Summary Totals` section of the markdown report. - """ + """Generate the `### Summary Totals` section of the markdown report.""" - TABLE_HEADER = [ + TABLE_HEADER: ClassVar[list[str]] = [ "| Total Tests | Total Tests Passed | Total Tests Failed | Total Tests Skipped |", "| ----------- | ------------------ | ------------------ | ------------------- |", ] def generate_section(self) -> None: - """ - Generates the `### Summary Totals` section of the markdown report. - """ + """Generate the `### Summary Totals` section of the markdown report.""" self.write_header(heading_level=3) self.write_table_header(self.TABLE_HEADER) self.mdfile.write( f"| {self.results.total_tests} | {self.results.total_tests_passed} | {self.results.total_tests_failed} |" - f" {self.results.total_tests_skipped} |\n\n" + f" {self.results.total_tests_skipped} |\n\n", ) class SummaryTotalsDevicesUnderTests(MDReportBase): - """ - Generates the `### Summary Totals Devices Under Tests` section of the markdown report. - """ + """Generate the `### Summary Totals Devices Under Tests` section of the markdown report.""" - TABLE_HEADER = [ + TABLE_HEADER: ClassVar[list[str]] = [ "| DUT | Total Tests | Tests Passed | Tests Failed | Tests Skipped | Categories Failed | Categories Skipped |", "| --- | ----------- | ------------ | ------------ | ------------- | ----------------- | ------------------ |", ] def generate_rows(self) -> Generator[str, None, None]: - """ - Generates the rows of the results table. - """ + """Generate the rows of the results table.""" for dut, stat in self.results.dut_stats.items(): total_tests = stat["tests_passed"] + stat["tests_failed"] + stat["tests_skipped"] categories_failed = ", ".join(sorted(stat["categories_failed"])) @@ -178,9 +158,7 @@ def generate_rows(self) -> Generator[str, None, None]: ) def generate_section(self) -> None: - """ - Generates the `### Summary Totals Devices Under Tests` section of the markdown report. - """ + """Generate the `### Summary Totals Devices Under Tests` section of the markdown report.""" self.write_header(heading_level=3) self.write_table_header(self.TABLE_HEADER) for row in self.generate_rows(): @@ -188,27 +166,21 @@ def generate_section(self) -> None: self.mdfile.write("\n") class SummaryTotalsPerCategory(MDReportBase): - """ - Generates the `### Summary Totals Per Category` section of the markdown report. - """ + """Generate the `### Summary Totals Per Category` section of the markdown report.""" - TABLE_HEADER = [ + TABLE_HEADER: ClassVar[list[str]] = [ "| Test Category | Total Tests | Tests Passed | Tests Failed | Tests Skipped |", "| ------------- | ----------- | ------------ | ------------ | ------------- |", ] def generate_rows(self) -> Generator[str, None, None]: - """ - Generates the rows of the results table. - """ + """Generate the rows of the results table.""" for category, stat in self.results.category_stats.items(): total_tests = stat["tests_passed"] + stat["tests_failed"] + stat["tests_skipped"] yield f"| {category} | {total_tests} | {stat['tests_passed']} | {stat['tests_failed']} | {stat['tests_skipped']} |\n" def generate_section(self) -> None: - """ - Generates the `### Summary Totals Per Category` section of the markdown report. - """ + """Generate the `### Summary Totals Per Category` section of the markdown report.""" self.write_header(heading_level=3) self.write_table_header(self.TABLE_HEADER) for row in self.generate_rows(): @@ -216,19 +188,15 @@ def generate_section(self) -> None: self.mdfile.write("\n") class FailedTestResultsSummary(MDReportBase): - """ - Generates the `## Failed Test Results Summary` section of the markdown report. - """ + """Generate the `## Failed Test Results Summary` section of the markdown report.""" - TABLE_HEADER = [ + TABLE_HEADER: ClassVar[list[str]] = [ "| Test ID | Node | Test Category | Test Description | Test | Test Result | Failure Reasons |", "| ------- | ---- | ------------- | ---------------- | ---- | ----------- | --------------- |", ] def generate_rows(self) -> Generator[str, None, None]: - """ - Generates the rows of the results table. - """ + """Generate the rows of the results table.""" for result in self.results.failed_tests: failure_reasons = "\n".join(result["failure_reasons"]) yield ( @@ -237,9 +205,7 @@ def generate_rows(self) -> Generator[str, None, None]: ) def generate_section(self) -> None: - """ - Generates the `## Failed Test Results Summary` section of the markdown report. - """ + """Generate the `## Failed Test Results Summary` section of the markdown report.""" self.write_header(heading_level=2) self.write_table_header(self.TABLE_HEADER) for row in self.generate_rows(): @@ -247,27 +213,19 @@ def generate_section(self) -> None: self.mdfile.write("\n") class AllTestResults(MDReportBase): - """ - Generates the `## All Test Results` section of the markdown report. + """Generates the `## All Test Results` section of the markdown report. This section is generated only if the report includes all results. """ - TABLE_HEADER = [ + TABLE_HEADER: ClassVar[list[str]] = [ "| Test ID | Node | Test Category | Test Description | Test | Test Result | Failure Reasons |", "| ------- | ---- | ------------- | ---------------- | ---- | ----------- | --------------- |", ] def generate_rows(self) -> Generator[str, None, None]: - """ - Generates the rows of the results table. - """ - - # Go at the beginning of the temp file - self.results.tmp_test_results_file.seek(0) - - for row in self.results.tmp_test_results_file: - result = loads(row.strip()) + """Generate the rows of the results table.""" + for result in self.results.all_tests: failure_reasons = "\n".join(result["failure_reasons"]) yield ( f"| {result['test_id'] or '-'} | {result['node'] or '-'} | {result['test_category'] or '-'} | {result['test_description'] or '-'} |" @@ -275,8 +233,7 @@ def generate_rows(self) -> Generator[str, None, None]: ) def generate_section(self) -> None: - """ - Generates the `## All Test Results` section of the markdown report. + """Generate the `## All Test Results` section of the markdown report. This section is generated only if the report includes all results. """ diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py index 627726f29e2..6b2e6052388 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py @@ -3,114 +3,95 @@ # that can be found in the LICENSE file. from __future__ import annotations -from json import dumps -from tempfile import TemporaryFile -from typing import TYPE_CHECKING - -if TYPE_CHECKING: - from io import TextIOWrapper +from collections import defaultdict class ResultsManager: - """ - Manages and stores test results from eos_validate_state running ANTA. - - This class processes individual test results, categorizes them based on their outcomes, - and maintains statistics on various aspects like total tests passed, failed, and skipped. + """Manages and stores test results from eos_validate_state running ANTA. - It also handles temporary storage of all test results if needed. + This class processes individual test result and maintains statistics like total tests passed, failed, and skipped. - An instance of this class holding all results can then be passed to the report classes to - generate the validation reports. + An instance of this class holding all results and statistics can be used to generate the validation reports. """ - def __init__(self, only_failed_tests: bool = True): - """ - Initializes the ResultsManager with default values and optional temporary file - creation to hold all test results. + def __init__(self, *, only_failed_tests: bool = True) -> None: + """Initialize the ResultsManager with default values and stats counters set to 0. Args: - only_failed_tests (bool): Flag to determine if only failed tests are considered. - Defaults to True. If set to False, a temporary file will - be created to hold all test results. + ---- + only_failed_tests (bool): Flag to determine if only failed tests are saved. + Defaults to True. If set to False, all tests will be saved. """ self.test_id: int = 0 self.total_tests_passed: int = 0 self.total_tests_failed: int = 0 self.total_tests_skipped: int = 0 - self.dut_stats: dict[str, dict] = {} - self.category_stats: dict[str, dict] = {} + self.dut_stats: defaultdict = defaultdict( + lambda: { + "tests_passed": 0, + "tests_failed": 0, + "tests_skipped": 0, + "categories_failed": set(), + "categories_skipped": set(), + }, + ) + self.category_stats: defaultdict = defaultdict( + lambda: { + "tests_passed": 0, + "tests_failed": 0, + "tests_skipped": 0, + }, + ) self.failed_tests: list[dict] = [] + self.all_tests: list[dict] = [] self.only_failed_tests: bool = only_failed_tests - # Initialize a temp file to hold all test results - self.tmp_test_results_file: TextIOWrapper | None = TemporaryFile(mode="w+", encoding="UTF-8") if not only_failed_tests else None - def parse_result(self, result: dict) -> dict: - """ - Parses a single test result and converts it into a standardized format for the reports. + """Parse a single test result and converts it into a standardized format for the reports. Args: + ---- result (dict): The test result data to parse. Returns: + ------- dict: The parsed and standardized test result. """ - # All AVD tests have a single category and overwrite the native ANTA tests categories - categories = result.get("categories", []) - new_test_category = categories[0] if categories else "" - - # Convert the ANTA test result - if (anta_result := result.get("result", "")) == "success": - new_result = "PASS" - elif anta_result == "failure" or anta_result == "error": - new_result = "FAIL" - elif anta_result == "skipped" or anta_result == "unset": - new_result = "SKIPPED" - else: - new_result = "" - - # Since AVD tests can have the same description and category, ANTA's custom_field is used to differentiate tests - custom_field = result.get("custom_field", "") - new_test = result.get("test", "") if custom_field == "None" else custom_field + new_test_category = result.get("categories", [""])[0] + + # Mapping the ANTA results + result_mapping = {"success": "PASS", "failure": "FAIL", "error": "FAIL", "skipped": "SKIPPED", "unset": "SKIPPED"} + anta_result = result.get("result", "") + new_result = result_mapping.get(anta_result, "") # Create the parsed result dictionary - parsed_result = { + return { "test_id": self.test_id, "node": result.get("name", ""), "test_category": new_test_category, "test_description": result.get("description", ""), - "test": new_test, + # Since AVD tests can have the same description and category, ANTA's custom_field is used to differentiate tests + "test": result.get("custom_field", "") if result.get("custom_field") != "None" else result.get("test", ""), "result": new_result, "failure_reasons": result.get("messages", []), } - return parsed_result - def update_results(self, result: dict) -> None: - """ - Updates the internal statistics and test results based on the given test result. + """Update the internal statistics and test results based on the given test result. Args: + ---- result (dict): The test result data to be added and processed. """ - - # Update the test_id counter when we add a result self.test_id += 1 - - # Parse and convert the result data parsed_result = self.parse_result(result) - - # Update the statistics + test_result = parsed_result["result"] category = parsed_result["test_category"] dut = parsed_result["node"] - if category not in self.category_stats: - self.category_stats[category] = {"tests_passed": 0, "tests_failed": 0, "tests_skipped": 0} - if dut not in self.dut_stats: - self.dut_stats[dut] = {"tests_passed": 0, "tests_failed": 0, "tests_skipped": 0, "categories_failed": set(), "categories_skipped": set()} - test_result = parsed_result["result"] + # Process the test result + # TODO: Simplify this if test_result == "PASS": self.total_tests_passed += 1 self.dut_stats[dut]["tests_passed"] += 1 @@ -127,16 +108,15 @@ def update_results(self, result: dict) -> None: self.category_stats[category]["tests_skipped"] += 1 self.dut_stats[dut]["categories_skipped"].add(category) - # Update the temp results if we want all tests and not only the failed tests - if self.tmp_test_results_file and not self.only_failed_tests: - self.tmp_test_results_file.write(dumps(parsed_result) + "\n") + if not self.only_failed_tests: + self.all_tests.append(parsed_result) @property def total_tests(self) -> int: - """ - Calculates the total number of tests processed. + """Calculates the total number of tests processed. - Returns: + Returns + ------- int: The total number of tests. """ return self.total_tests_passed + self.total_tests_failed + self.total_tests_skipped diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml index eeb7fb3aef8..0f6ab550e4a 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml +++ b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml @@ -12,6 +12,7 @@ skipped_tests: "{{ skipped_tests | arista.avd.default([]) }}" save_catalog: "{{ save_catalog | arista.avd.default(false) }}" device_catalog_output_dir: "{{ test_catalogs_dir }}" + # cprofile_file: "eos_validate_state_runner.prof" register: anta_results check_mode: false when: use_anta | bool diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml index cdff815e89d..89be4c3b664 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml +++ b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml @@ -59,6 +59,7 @@ validation_report_csv: "{{ validation_report_csv }}" validation_report_md: "{{ validation_report_md }}" only_failed_tests: "{{ only_failed_tests }}" + # cprofile_file: "eos_validate_state_reports.prof" delegate_to: localhost run_once: true check_mode: false From cc0984154674b1ebe3a80e9e289ee95ae630a2b1 Mon Sep 17 00:00:00 2001 From: Carl Baillargeon Date: Sun, 19 Nov 2023 16:19:36 -0500 Subject: [PATCH 06/26] Added TODOs --- .../arista/avd/plugins/action/eos_validate_state_reports.py | 2 +- .../arista/avd/plugins/action/eos_validate_state_runner.py | 6 +++--- .../plugin_utils/eos_validate_state_utils/md_report.py | 2 ++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py index 3c511f53cb8..f591e095c63 100644 --- a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py @@ -107,7 +107,7 @@ def run(self, tmp=None, task_vars=None): for test_result in _test_results_gen(temp_file): test_results.update_results(test_result) except Exception as error: - display.warning(f"Error while processing the test results of host {host}: {error!s}") + display.warning(f"Error while processing the test results of host {host}: {error}.") # Generate the CSV report if validation_report_csv: diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py index 0e7cbdfcae7..4f9adf2a22c 100644 --- a/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py @@ -121,16 +121,16 @@ def run(self, tmp=None, task_vars=None): def create_temp_file(hostname: str, anta_results: list[dict]) -> str: - """Create a temporary YAML file to save all test results from ANTA. + """Create a temporary JSON file to save all test results from ANTA. The function will also search for leftover temp files in the `/tmp` folder and delete them. - The temp file is saved in `/tmp` with a prefix of `_` and `.yml` extension. + The temp file is saved in `/tmp` with a prefix of `_` and `.json` extension. Args: ---- hostname (str): Current inventory device that is running the plugin. - anta_results (list[dict]): The list of ANTA results that will be saved in the YAML file. + anta_results (list[dict]): The list of ANTA results that will be saved in the JSON file. Returns: ------- diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py index 66df7b57548..f0c23b56604 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py @@ -32,6 +32,8 @@ def generate_section(self) -> None: """Abstract method to generate a specific section of the markdown report. Must be implemented by subclasses. + + # TODO: Most of subclasses methods are similar so move this here and override if necessary """ def generate_header_name(self) -> str: From 8a91946e794254f22687f4934bc024afc4d7e60d Mon Sep 17 00:00:00 2001 From: Carl Baillargeon Date: Mon, 20 Nov 2023 22:58:56 -0500 Subject: [PATCH 07/26] Refactor plugin --- .../action/eos_validate_state_reports.py | 73 ++++++++++--------- .../eos_validate_state_utils/csv_report.py | 5 +- .../eos_validate_state_utils/md_report.py | 54 +++++++------- .../results_manager.py | 69 +++++++++++------- 4 files changed, 109 insertions(+), 92 deletions(-) diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py index f591e095c63..6dcbc143767 100644 --- a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py @@ -36,7 +36,35 @@ def _test_results_gen(input_path: str) -> Generator[dict, None, None]: yield from load(file) +def _generate_report(report_path: str, report_class: type, test_results: ResultsManager) -> None: + """Generate a report using the specified report class. + + Args: + ---- + report_path: The path to the report file. + report_class: The class used to generate the report. + test_results: The ResultsManager object containing the test results. + """ + with Path(report_path).open("w", encoding="UTF-8") as report_file: + report = report_class(report_file, test_results) + report.generate_report() + + class ActionModule(ActionBase): + def _validate_arg_boolean(self, arg_name: str, *, default_value: bool) -> bool: + """Validate if a task argument is a boolean.""" + arg_value = self._task.args.get(arg_name, default_value) + if not isinstance(arg_value, bool): + raise AnsibleActionFail(f"'{arg_name}' must be a boolean, got {arg_value}.") + return arg_value + + def _validate_report_path(self, arg_name: str) -> str: + """Validate if a task path argument is valid and exists.""" + path_value = self._task.args.get(arg_name) + if not isinstance(path_value, str) or not Path(path_value).parent.exists(): + raise AnsibleActionFail(f"'{arg_name}' must be a valid path and its directory must exist.") + return path_value + def run(self, tmp=None, task_vars=None): if task_vars is None: task_vars = {} @@ -51,54 +79,35 @@ def run(self, tmp=None, task_vars=None): profiler.enable() # Get task arguments and validate them - # TODO: Create helper functions - only_failed_tests = self._task.args.get("only_failed_tests", False) - if not isinstance(only_failed_tests, bool): - raise AnsibleActionFail(f"'only_failed_tests' must be a boolean, got {only_failed_tests}.") - - validation_report_csv = self._task.args.get("validation_report_csv", True) - if not isinstance(validation_report_csv, bool): - raise AnsibleActionFail(f"'validation_report_csv' must be a boolean, got {validation_report_csv}.") - - validation_report_md = self._task.args.get("validation_report_md", True) - if not isinstance(validation_report_md, bool): - raise AnsibleActionFail(f"'validation_report_md' must be a boolean, got {validation_report_md}.") + only_failed_tests = self._validate_arg_boolean("only_failed_tests", default_value=False) + validation_report_csv = self._validate_arg_boolean("validation_report_csv", default_value=True) + validation_report_md = self._validate_arg_boolean("validation_report_md", default_value=True) if validation_report_csv: - csv_report_path = self._task.args.get("csv_report_path") - if not isinstance(csv_report_path, str) or not Path(csv_report_path).parent.exists(): - raise AnsibleActionFail("'csv_report_path' must be a valid path and his directory must exist.") - + csv_report_path = self._validate_report_path("csv_report_path") if validation_report_md: - md_report_path = self._task.args.get("md_report_path") - if not isinstance(md_report_path, str) or not Path(md_report_path).parent.exists(): - raise AnsibleActionFail("'md_report_path' must be a valid path and his directory must exist.") + md_report_path = self._validate_report_path("md_report_path") # This is not all the hostvars, but just the Ansible Hostvars Manager object where we can retrieve hostvars for each host on-demand hostvars = task_vars["hostvars"] - # For now we support the existing behavior of eos_validate_state, all hosts from the play ansible_play_hosts_all = task_vars.get("ansible_play_hosts_all", []) - # List to track all results temp files for each host temp_files = [] try: # Initialize an empty ResultsManager that will be used to store results and statistics test_results = ResultsManager(only_failed_tests=only_failed_tests) - for host in sorted(ansible_play_hosts_all): # Hosts marked as not deployed do not have any results if not get(hostvars[host], "is_deployed"): display.warning(f"No test results for host {host} since it's marked as not deployed.") continue - # Getting the host results temp file saved by eos_validate_state_runner action plugin temp_file = get(hostvars[host], "anta_results.results_temp_file") if not isinstance(temp_file, str) or not Path(temp_file).exists(): display.warning(f"Results temporary file path is invalid or does not exist for host {host}.") continue - # Track the temp file temp_files.append(temp_file) @@ -109,26 +118,18 @@ def run(self, tmp=None, task_vars=None): except Exception as error: display.warning(f"Error while processing the test results of host {host}: {error}.") - # Generate the CSV report + # Generate the reports if validation_report_csv: - with Path(csv_report_path).open("w", encoding="UTF-8", newline="\n") as csvfile: - csv_report = CSVReport(csvfile=csvfile, results=test_results) - csv_report.generate_report() - - # Generate the MD report + _generate_report(report_path=csv_report_path, report_class=CSVReport, test_results=test_results) if validation_report_md: - with Path(md_report_path).open("w", encoding="UTF-8") as mdfile: - md_report = ValidateStateReport(mdfile=mdfile, results=test_results) - md_report.generate_report() + _generate_report(report_path=md_report_path, report_class=ValidateStateReport, test_results=test_results) except Exception as error: raise AnsibleActionFail(f"Error during plugin execution: {error}") from error - finally: # Cleanup for each host's temporary file for file_path in temp_files: - if Path(file_path).exists(): - Path(file_path).unlink() + Path(file_path).unlink(missing_ok=True) if cprofile_file: profiler.disable() diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py index 3caa995a3f9..f9f82993205 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py @@ -23,8 +23,8 @@ def __init__(self, csvfile: TextIOWrapper, results: ResultsManager) -> None: csvfile (TextIOWrapper): An open file object to write the CSV data into. results (ResultsManager): The ResultsManager instance containing all test results. """ - self.csvfile: TextIOWrapper = csvfile - self.results: ResultsManager = results + self.csvfile = csvfile + self.results = results def generate_rows(self) -> Generator[dict, None, None]: """Generate rows of test result data for the CSV report. @@ -46,6 +46,7 @@ def generate_report(self) -> None: writer = csv.DictWriter(self.csvfile, fieldnames=fieldnames) writer.writeheader() + # writerows seems to perfom better when writing in batches batch_size = 5000 batch = [] diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py index f0c23b56604..f0c5679a3dd 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py @@ -5,7 +5,7 @@ import re from abc import ABC, abstractmethod -from typing import TYPE_CHECKING, ClassVar, Generator +from typing import TYPE_CHECKING, Callable, ClassVar, Generator if TYPE_CHECKING: from io import TextIOWrapper @@ -24,16 +24,14 @@ def __init__(self, mdfile: TextIOWrapper, results: ResultsManager) -> None: mdfile (TextIOWrapper): An open file object to write the markdown data into. results (ResultsManager): The ResultsManager instance containing all test results. """ - self.mdfile: TextIOWrapper = mdfile - self.results: ResultsManager = results + self.mdfile = mdfile + self.results = results @abstractmethod def generate_section(self) -> None: """Abstract method to generate a specific section of the markdown report. Must be implemented by subclasses. - - # TODO: Most of subclasses methods are similar so move this here and override if necessary """ def generate_header_name(self) -> str: @@ -50,6 +48,19 @@ def generate_header_name(self) -> str: class_name = self.__class__.__name__ return re.sub(r"(? None: + """Generate a table with a header and multiple rows. + + Args: + ---- + table_header (list[str]): The table header. + row_generator (Callable): The rows generator function. + """ + self.write_table_header(table_header) + for row in row_generator(): + self.mdfile.write(row) + self.mdfile.write("\n") + def write_header(self, heading_level: int) -> None: """Write a markdown header to the markdown file. @@ -131,14 +142,17 @@ class SummaryTotals(MDReportBase): "| ----------- | ------------------ | ------------------ | ------------------- |", ] + def generate_rows(self) -> Generator[str, None, None]: + """Generate the rows of the results table.""" + yield ( + f"| {self.results.total_tests} | {self.results.total_tests_passed} | {self.results.total_tests_failed} |" + f" {self.results.total_tests_skipped} |\n" + ) + def generate_section(self) -> None: """Generate the `### Summary Totals` section of the markdown report.""" self.write_header(heading_level=3) - self.write_table_header(self.TABLE_HEADER) - self.mdfile.write( - f"| {self.results.total_tests} | {self.results.total_tests_passed} | {self.results.total_tests_failed} |" - f" {self.results.total_tests_skipped} |\n\n", - ) + self.generate_table(table_header=self.TABLE_HEADER, row_generator=self.generate_rows) class SummaryTotalsDevicesUnderTests(MDReportBase): """Generate the `### Summary Totals Devices Under Tests` section of the markdown report.""" @@ -162,10 +176,7 @@ def generate_rows(self) -> Generator[str, None, None]: def generate_section(self) -> None: """Generate the `### Summary Totals Devices Under Tests` section of the markdown report.""" self.write_header(heading_level=3) - self.write_table_header(self.TABLE_HEADER) - for row in self.generate_rows(): - self.mdfile.write(row) - self.mdfile.write("\n") + self.generate_table(table_header=self.TABLE_HEADER, row_generator=self.generate_rows) class SummaryTotalsPerCategory(MDReportBase): """Generate the `### Summary Totals Per Category` section of the markdown report.""" @@ -184,10 +195,7 @@ def generate_rows(self) -> Generator[str, None, None]: def generate_section(self) -> None: """Generate the `### Summary Totals Per Category` section of the markdown report.""" self.write_header(heading_level=3) - self.write_table_header(self.TABLE_HEADER) - for row in self.generate_rows(): - self.mdfile.write(row) - self.mdfile.write("\n") + self.generate_table(table_header=self.TABLE_HEADER, row_generator=self.generate_rows) class FailedTestResultsSummary(MDReportBase): """Generate the `## Failed Test Results Summary` section of the markdown report.""" @@ -209,10 +217,7 @@ def generate_rows(self) -> Generator[str, None, None]: def generate_section(self) -> None: """Generate the `## Failed Test Results Summary` section of the markdown report.""" self.write_header(heading_level=2) - self.write_table_header(self.TABLE_HEADER) - for row in self.generate_rows(): - self.mdfile.write(row) - self.mdfile.write("\n") + self.generate_table(table_header=self.TABLE_HEADER, row_generator=self.generate_rows) class AllTestResults(MDReportBase): """Generates the `## All Test Results` section of the markdown report. @@ -241,7 +246,4 @@ def generate_section(self) -> None: """ if not self.results.only_failed_tests: self.write_header(heading_level=2) - self.write_table_header(self.TABLE_HEADER) - for row in self.generate_rows(): - self.mdfile.write(row) - self.mdfile.write("\n") + self.generate_table(table_header=self.TABLE_HEADER, row_generator=self.generate_rows) diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py index 6b2e6052388..2d39ea259fe 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py @@ -22,11 +22,11 @@ def __init__(self, *, only_failed_tests: bool = True) -> None: only_failed_tests (bool): Flag to determine if only failed tests are saved. Defaults to True. If set to False, all tests will be saved. """ - self.test_id: int = 0 - self.total_tests_passed: int = 0 - self.total_tests_failed: int = 0 - self.total_tests_skipped: int = 0 - self.dut_stats: defaultdict = defaultdict( + self.test_id = 0 + self.total_tests_passed = 0 + self.total_tests_failed = 0 + self.total_tests_skipped = 0 + self.dut_stats = defaultdict( lambda: { "tests_passed": 0, "tests_failed": 0, @@ -35,18 +35,18 @@ def __init__(self, *, only_failed_tests: bool = True) -> None: "categories_skipped": set(), }, ) - self.category_stats: defaultdict = defaultdict( + self.category_stats = defaultdict( lambda: { "tests_passed": 0, "tests_failed": 0, "tests_skipped": 0, }, ) - self.failed_tests: list[dict] = [] - self.all_tests: list[dict] = [] - self.only_failed_tests: bool = only_failed_tests + self.failed_tests = [] + self.all_tests = [] + self.only_failed_tests = only_failed_tests - def parse_result(self, result: dict) -> dict: + def _parse_result(self, result: dict) -> dict: """Parse a single test result and converts it into a standardized format for the reports. Args: @@ -77,6 +77,33 @@ def parse_result(self, result: dict) -> dict: "failure_reasons": result.get("messages", []), } + def _increment_stats(self, test_result: str, dut: str, category: str) -> None: + """Increment test statistics based on the test result. + + Args: + ---- + test_result (str): The test result. + dut (str): The name of the device under test. + category (str): The category of the test. + """ + stats_mapping = { + "PASS": ("total_tests_passed", "tests_passed"), + "FAIL": ("total_tests_failed", "tests_failed", "categories_failed"), + "SKIPPED": ("total_tests_skipped", "tests_skipped", "categories_skipped"), + } + stats_to_increment = stats_mapping.get(test_result, ()) + + for stat in stats_to_increment: + if hasattr(self, stat): + setattr(self, stat, getattr(self, stat) + 1) + if stat in self.dut_stats[dut]: + if isinstance(self.dut_stats[dut][stat], set): + self.dut_stats[dut][stat].add(category) + else: + self.dut_stats[dut][stat] += 1 + if stat in self.category_stats[category]: + self.category_stats[category][stat] += 1 + def update_results(self, result: dict) -> None: """Update the internal statistics and test results based on the given test result. @@ -85,29 +112,15 @@ def update_results(self, result: dict) -> None: result (dict): The test result data to be added and processed. """ self.test_id += 1 - parsed_result = self.parse_result(result) + parsed_result = self._parse_result(result) test_result = parsed_result["result"] category = parsed_result["test_category"] dut = parsed_result["node"] - # Process the test result - # TODO: Simplify this - if test_result == "PASS": - self.total_tests_passed += 1 - self.dut_stats[dut]["tests_passed"] += 1 - self.category_stats[category]["tests_passed"] += 1 - elif test_result == "FAIL": - self.total_tests_failed += 1 - self.dut_stats[dut]["tests_failed"] += 1 - self.category_stats[category]["tests_failed"] += 1 - self.dut_stats[dut]["categories_failed"].add(category) - self.failed_tests.append(parsed_result) - elif test_result == "SKIPPED": - self.total_tests_skipped += 1 - self.dut_stats[dut]["tests_skipped"] += 1 - self.category_stats[category]["tests_skipped"] += 1 - self.dut_stats[dut]["categories_skipped"].add(category) + self._increment_stats(test_result, dut, category) + if test_result == "FAIL": + self.failed_tests.append(parsed_result) if not self.only_failed_tests: self.all_tests.append(parsed_result) From 6a77762b7b145fd4f4a877af9b8c9e9fd8b35086 Mon Sep 17 00:00:00 2001 From: Carl Baillargeon Date: Tue, 21 Nov 2023 17:29:14 -0500 Subject: [PATCH 08/26] Fix typos in report --- .../test_catalogs/dc1-leaf1a-catalog.yml | 65 +- .../test_catalogs/dc1-leaf1b-catalog.yml | 65 +- .../test_catalogs/dc1-leaf1c-catalog.yml | 22 +- .../test_catalogs/dc1-leaf2a-catalog.yml | 67 +- .../test_catalogs/dc1-leaf2c-catalog.yml | 22 +- .../test_catalogs/dc1-spine1-catalog.yml | 24 +- .../test_catalogs/dc1-spine2-catalog.yml | 24 +- .../test_catalogs/dc2-leaf1a-catalog.yml | 65 +- .../test_catalogs/dc2-leaf1b-catalog.yml | 65 +- .../test_catalogs/dc2-leaf1c-catalog.yml | 22 +- .../test_catalogs/dc2-leaf2a-catalog.yml | 67 +- .../test_catalogs/dc2-leaf2b-catalog.yml | 67 +- .../test_catalogs/dc2-leaf2c-catalog.yml | 22 +- .../test_catalogs/dc2-spine1-catalog.yml | 24 +- .../test_catalogs/dc2-spine2-catalog.yml | 24 +- .../reports/FABRIC-state.csv | 1242 ++++++++-------- .../reports/FABRIC-state.md | 1274 ++++++++--------- .../eos_validate_state_utils/csv_report.py | 8 +- .../get_anta_results.py | 13 +- .../eos_validate_state_utils/md_report.py | 18 +- .../results_manager.py | 40 +- .../python_modules/tests/avdtesthardware.py | 23 +- .../python_modules/tests/avdtestinterfaces.py | 10 +- .../python_modules/tests/avdtestmlag.py | 7 +- 24 files changed, 1520 insertions(+), 1760 deletions(-) diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1a-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1a-catalog.yml index 2f6f2cdafe8..d660410e2a9 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1a-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1a-catalog.yml @@ -194,29 +194,17 @@ anta.tests.connectivity: description: Loopback0 Reachability anta.tests.hardware: - VerifyEnvironmentPower: - result_overwrite: - categories: - - Hardware states: - ok - VerifyEnvironmentCooling: - result_overwrite: - categories: - - Hardware states: - ok -- VerifyTemperature: - result_overwrite: - categories: - - Hardware +- VerifyTemperature: {} - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present - result_overwrite: - categories: - - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: @@ -227,7 +215,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet3 - MLAG_PEER_dc1-leaf1b_Ethernet3 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet4 @@ -237,7 +225,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet4 - MLAG_PEER_dc1-leaf1b_Ethernet4 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet1 @@ -247,7 +235,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet2 @@ -257,7 +245,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet8 @@ -267,7 +255,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet8 - DC1-LEAF1C_Ethernet1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet5 @@ -277,7 +265,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet5 - dc1-leaf1-server1_PCI1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel3 @@ -287,7 +275,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel3 - MLAG_PEER_dc1-leaf1b_Po3 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel8 @@ -297,7 +285,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel8 - DC1-LEAF1C_Po1 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel5 @@ -307,7 +295,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan4093 @@ -317,7 +305,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan4093 - MLAG_PEER_L3_PEERING - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan4094 @@ -327,7 +315,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan4094 - MLAG_PEER - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan11 @@ -337,7 +325,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan11 - VRF10_VLAN11 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan12 @@ -347,7 +335,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan12 - VRF10_VLAN12 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan3009 @@ -357,7 +345,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: 'Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10' - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan21 @@ -367,7 +355,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan21 - VRF11_VLAN21 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan22 @@ -377,7 +365,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan22 - VRF11_VLAN22 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan3010 @@ -387,7 +375,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: 'Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11' - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback0 @@ -397,7 +385,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback0 - EVPN_Overlay_Peering - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback1 @@ -407,7 +395,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback1 - VTEP_VXLAN_Tunnel_Source - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback10 @@ -417,7 +405,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback10 - VRF10_VTEP_DIAGNOSTICS - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback11 @@ -427,7 +415,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback11 - VRF11_VTEP_DIAGNOSTICS - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vxlan1 @@ -437,14 +425,9 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vxlan1 - description: Vxlan Interface Status & Line Protocol == \"up\" + description: Vxlan Interface Status & Line Protocol == 'up' anta.tests.mlag: -- VerifyMlagStatus: - result_overwrite: - categories: - - MLAG - custom_field: MLAG - description: MLAG State active & Status connected +- VerifyMlagStatus: {} anta.tests.routing.bgp: - VerifyBGPSpecificPeers: address_families: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1b-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1b-catalog.yml index d4646f63ebe..868bb2f3acf 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1b-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1b-catalog.yml @@ -194,29 +194,17 @@ anta.tests.connectivity: description: Loopback0 Reachability anta.tests.hardware: - VerifyEnvironmentPower: - result_overwrite: - categories: - - Hardware states: - ok - VerifyEnvironmentCooling: - result_overwrite: - categories: - - Hardware states: - ok -- VerifyTemperature: - result_overwrite: - categories: - - Hardware +- VerifyTemperature: {} - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present - result_overwrite: - categories: - - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: @@ -227,7 +215,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet3 - MLAG_PEER_dc1-leaf1a_Ethernet3 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet4 @@ -237,7 +225,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet4 - MLAG_PEER_dc1-leaf1a_Ethernet4 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet1 @@ -247,7 +235,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet2 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet2 @@ -257,7 +245,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet2 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet8 @@ -267,7 +255,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet8 - DC1-LEAF1C_Ethernet2 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet5 @@ -277,7 +265,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet5 - dc1-leaf1-server1_PCI2 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel3 @@ -287,7 +275,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel3 - MLAG_PEER_dc1-leaf1a_Po3 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel8 @@ -297,7 +285,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel8 - DC1-LEAF1C_Po1 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel5 @@ -307,7 +295,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan4093 @@ -317,7 +305,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan4093 - MLAG_PEER_L3_PEERING - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan4094 @@ -327,7 +315,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan4094 - MLAG_PEER - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan11 @@ -337,7 +325,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan11 - VRF10_VLAN11 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan12 @@ -347,7 +335,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan12 - VRF10_VLAN12 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan3009 @@ -357,7 +345,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: 'Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10' - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan21 @@ -367,7 +355,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan21 - VRF11_VLAN21 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan22 @@ -377,7 +365,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan22 - VRF11_VLAN22 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan3010 @@ -387,7 +375,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: 'Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11' - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback0 @@ -397,7 +385,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback0 - EVPN_Overlay_Peering - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback1 @@ -407,7 +395,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback1 - VTEP_VXLAN_Tunnel_Source - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback10 @@ -417,7 +405,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback10 - VRF10_VTEP_DIAGNOSTICS - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback11 @@ -427,7 +415,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback11 - VRF11_VTEP_DIAGNOSTICS - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vxlan1 @@ -437,14 +425,9 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vxlan1 - description: Vxlan Interface Status & Line Protocol == \"up\" + description: Vxlan Interface Status & Line Protocol == 'up' anta.tests.mlag: -- VerifyMlagStatus: - result_overwrite: - categories: - - MLAG - custom_field: MLAG - description: MLAG State active & Status connected +- VerifyMlagStatus: {} anta.tests.routing.bgp: - VerifyBGPSpecificPeers: address_families: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1c-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1c-catalog.yml index 2012f5ad695..54d8ab6ed20 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1c-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf1c-catalog.yml @@ -21,29 +21,17 @@ anta.tests.connectivity: description: LLDP topology - validate peer and interface anta.tests.hardware: - VerifyEnvironmentPower: - result_overwrite: - categories: - - Hardware states: - ok - VerifyEnvironmentCooling: - result_overwrite: - categories: - - Hardware states: - ok -- VerifyTemperature: - result_overwrite: - categories: - - Hardware +- VerifyTemperature: {} - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present - result_overwrite: - categories: - - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: @@ -54,7 +42,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet1 - DC1-LEAF1A_Ethernet8 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet2 @@ -64,7 +52,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet2 - DC1-LEAF1B_Ethernet8 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet5 @@ -74,7 +62,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet5 - dc1-leaf1-server1_iLO - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel1 @@ -84,7 +72,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel1 - DC1_L3_LEAF1_Po8 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' anta.tests.system: - VerifyNTP: result_overwrite: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2a-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2a-catalog.yml index 8463bfe15d6..c98ebb9269e 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2a-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2a-catalog.yml @@ -195,29 +195,17 @@ anta.tests.connectivity: description: Loopback0 Reachability anta.tests.hardware: - VerifyEnvironmentPower: - result_overwrite: - categories: - - Hardware states: - ok - VerifyEnvironmentCooling: - result_overwrite: - categories: - - Hardware states: - ok -- VerifyTemperature: - result_overwrite: - categories: - - Hardware +- VerifyTemperature: {} - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present - result_overwrite: - categories: - - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: @@ -228,7 +216,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet3 - MLAG_PEER_dc1-leaf2b_Ethernet3 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet4 @@ -238,7 +226,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet4 - MLAG_PEER_dc1-leaf2b_Ethernet4 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet1 @@ -248,7 +236,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet3 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet2 @@ -258,7 +246,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet3 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet8 @@ -268,7 +256,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet8 - DC1-LEAF2C_Ethernet1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet6 @@ -278,7 +266,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet6 - P2P_LINK_TO_dc2-leaf2a_Ethernet6 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet5 @@ -288,7 +276,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet5 - dc1-leaf2-server1_PCI1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel3 @@ -298,7 +286,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel3 - MLAG_PEER_dc1-leaf2b_Po3 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel8 @@ -308,7 +296,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel8 - DC1-LEAF2C_Po1 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel5 @@ -318,7 +306,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan4093 @@ -328,7 +316,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan4093 - MLAG_PEER_L3_PEERING - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan4094 @@ -338,7 +326,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan4094 - MLAG_PEER - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan11 @@ -348,7 +336,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan11 - VRF10_VLAN11 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan12 @@ -358,7 +346,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan12 - VRF10_VLAN12 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan3009 @@ -368,7 +356,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: 'Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10' - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan21 @@ -378,7 +366,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan21 - VRF11_VLAN21 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan22 @@ -388,7 +376,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan22 - VRF11_VLAN22 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan3010 @@ -398,7 +386,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: 'Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11' - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback0 @@ -408,7 +396,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback0 - EVPN_Overlay_Peering - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback1 @@ -418,7 +406,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback1 - VTEP_VXLAN_Tunnel_Source - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback10 @@ -428,7 +416,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback10 - VRF10_VTEP_DIAGNOSTICS - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback11 @@ -438,7 +426,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback11 - VRF11_VTEP_DIAGNOSTICS - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vxlan1 @@ -448,14 +436,9 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vxlan1 - description: Vxlan Interface Status & Line Protocol == \"up\" + description: Vxlan Interface Status & Line Protocol == 'up' anta.tests.mlag: -- VerifyMlagStatus: - result_overwrite: - categories: - - MLAG - custom_field: MLAG - description: MLAG State active & Status connected +- VerifyMlagStatus: {} anta.tests.routing.bgp: - VerifyBGPSpecificPeers: address_families: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2c-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2c-catalog.yml index 87444c02291..40896fded51 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2c-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-leaf2c-catalog.yml @@ -11,29 +11,17 @@ anta.tests.connectivity: description: LLDP topology - validate peer and interface anta.tests.hardware: - VerifyEnvironmentPower: - result_overwrite: - categories: - - Hardware states: - ok - VerifyEnvironmentCooling: - result_overwrite: - categories: - - Hardware states: - ok -- VerifyTemperature: - result_overwrite: - categories: - - Hardware +- VerifyTemperature: {} - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present - result_overwrite: - categories: - - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: @@ -44,7 +32,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet1 - DC1-LEAF2A_Ethernet8 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet2 @@ -54,7 +42,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet2 - DC1-LEAF2B_Ethernet8 - description: Ethernet Interface & Line Protocol == \"adminDown\" + description: Ethernet Interface & Line Protocol == 'adminDown' - VerifyInterfacesStatus: interfaces: - interface: Ethernet5 @@ -64,7 +52,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet5 - dc1-leaf2-server1_iLO - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel1 @@ -74,7 +62,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel1 - DC1_L3_LEAF2_Po8 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' anta.tests.system: - VerifyNTP: result_overwrite: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-spine1-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-spine1-catalog.yml index 8218178f202..d3fa09de939 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-spine1-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-spine1-catalog.yml @@ -64,29 +64,17 @@ anta.tests.connectivity: description: ip reachability test p2p links anta.tests.hardware: - VerifyEnvironmentPower: - result_overwrite: - categories: - - Hardware states: - ok - VerifyEnvironmentCooling: - result_overwrite: - categories: - - Hardware states: - ok -- VerifyTemperature: - result_overwrite: - categories: - - Hardware +- VerifyTemperature: {} - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present - result_overwrite: - categories: - - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: @@ -97,7 +85,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet2 @@ -107,7 +95,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet3 @@ -117,7 +105,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet4 @@ -127,7 +115,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet1 - description: Ethernet Interface & Line Protocol == \"adminDown\" + description: Ethernet Interface & Line Protocol == 'adminDown' - VerifyInterfacesStatus: interfaces: - interface: Loopback0 @@ -137,7 +125,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback0 - EVPN_Overlay_Peering - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' anta.tests.routing.bgp: - VerifyBGPSpecificPeers: address_families: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-spine2-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-spine2-catalog.yml index 6ba667a56d0..48daa5bff24 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-spine2-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc1-spine2-catalog.yml @@ -64,29 +64,17 @@ anta.tests.connectivity: description: ip reachability test p2p links anta.tests.hardware: - VerifyEnvironmentPower: - result_overwrite: - categories: - - Hardware states: - ok - VerifyEnvironmentCooling: - result_overwrite: - categories: - - Hardware states: - ok -- VerifyTemperature: - result_overwrite: - categories: - - Hardware +- VerifyTemperature: {} - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present - result_overwrite: - categories: - - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: @@ -97,7 +85,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet2 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet2 @@ -107,7 +95,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet2 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet3 @@ -117,7 +105,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet2 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet4 @@ -127,7 +115,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet2 - description: Ethernet Interface & Line Protocol == \"adminDown\" + description: Ethernet Interface & Line Protocol == 'adminDown' - VerifyInterfacesStatus: interfaces: - interface: Loopback0 @@ -137,7 +125,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback0 - EVPN_Overlay_Peering - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' anta.tests.routing.bgp: - VerifyBGPSpecificPeers: address_families: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1a-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1a-catalog.yml index 047c49a2214..dccad0dc927 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1a-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1a-catalog.yml @@ -194,29 +194,17 @@ anta.tests.connectivity: description: Loopback0 Reachability anta.tests.hardware: - VerifyEnvironmentPower: - result_overwrite: - categories: - - Hardware states: - ok - VerifyEnvironmentCooling: - result_overwrite: - categories: - - Hardware states: - ok -- VerifyTemperature: - result_overwrite: - categories: - - Hardware +- VerifyTemperature: {} - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present - result_overwrite: - categories: - - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: @@ -227,7 +215,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet3 - MLAG_PEER_dc2-leaf1b_Ethernet3 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet4 @@ -237,7 +225,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet4 - MLAG_PEER_dc2-leaf1b_Ethernet4 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet1 @@ -247,7 +235,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet2 @@ -257,7 +245,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet8 @@ -267,7 +255,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet8 - DC2-LEAF1C_Ethernet1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet5 @@ -277,7 +265,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet5 - dc2-leaf1-server1_PCI1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel3 @@ -287,7 +275,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel3 - MLAG_PEER_dc2-leaf1b_Po3 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel8 @@ -297,7 +285,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel8 - DC2-LEAF1C_Po1 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel5 @@ -307,7 +295,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan4093 @@ -317,7 +305,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan4093 - MLAG_PEER_L3_PEERING - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan4094 @@ -327,7 +315,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan4094 - MLAG_PEER - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan11 @@ -337,7 +325,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan11 - VRF10_VLAN11 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan12 @@ -347,7 +335,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan12 - VRF10_VLAN12 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan3009 @@ -357,7 +345,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: 'Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10' - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan21 @@ -367,7 +355,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan21 - VRF11_VLAN21 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan22 @@ -377,7 +365,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan22 - VRF11_VLAN22 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan3010 @@ -387,7 +375,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: 'Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11' - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback0 @@ -397,7 +385,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback0 - EVPN_Overlay_Peering - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback1 @@ -407,7 +395,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback1 - VTEP_VXLAN_Tunnel_Source - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback10 @@ -417,7 +405,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback10 - VRF10_VTEP_DIAGNOSTICS - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback11 @@ -427,7 +415,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback11 - VRF11_VTEP_DIAGNOSTICS - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vxlan1 @@ -437,14 +425,9 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vxlan1 - description: Vxlan Interface Status & Line Protocol == \"up\" + description: Vxlan Interface Status & Line Protocol == 'up' anta.tests.mlag: -- VerifyMlagStatus: - result_overwrite: - categories: - - MLAG - custom_field: MLAG - description: MLAG State active & Status connected +- VerifyMlagStatus: {} anta.tests.routing.bgp: - VerifyBGPSpecificPeers: address_families: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1b-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1b-catalog.yml index 1ea7a53b2e1..b993006e008 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1b-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1b-catalog.yml @@ -194,29 +194,17 @@ anta.tests.connectivity: description: Loopback0 Reachability anta.tests.hardware: - VerifyEnvironmentPower: - result_overwrite: - categories: - - Hardware states: - ok - VerifyEnvironmentCooling: - result_overwrite: - categories: - - Hardware states: - ok -- VerifyTemperature: - result_overwrite: - categories: - - Hardware +- VerifyTemperature: {} - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present - result_overwrite: - categories: - - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: @@ -227,7 +215,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet3 - MLAG_PEER_dc2-leaf1a_Ethernet3 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet4 @@ -237,7 +225,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet4 - MLAG_PEER_dc2-leaf1a_Ethernet4 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet1 @@ -247,7 +235,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet2 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet2 @@ -257,7 +245,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet2 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet8 @@ -267,7 +255,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet8 - DC2-LEAF1C_Ethernet2 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet5 @@ -277,7 +265,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet5 - dc2-leaf1-server1_PCI2 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel3 @@ -287,7 +275,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel3 - MLAG_PEER_dc2-leaf1a_Po3 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel8 @@ -297,7 +285,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel8 - DC2-LEAF1C_Po1 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel5 @@ -307,7 +295,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan4093 @@ -317,7 +305,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan4093 - MLAG_PEER_L3_PEERING - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan4094 @@ -327,7 +315,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan4094 - MLAG_PEER - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan11 @@ -337,7 +325,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan11 - VRF10_VLAN11 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan12 @@ -347,7 +335,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan12 - VRF10_VLAN12 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan3009 @@ -357,7 +345,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: 'Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10' - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan21 @@ -367,7 +355,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan21 - VRF11_VLAN21 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan22 @@ -377,7 +365,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan22 - VRF11_VLAN22 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan3010 @@ -387,7 +375,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: 'Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11' - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback0 @@ -397,7 +385,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback0 - EVPN_Overlay_Peering - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback1 @@ -407,7 +395,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback1 - VTEP_VXLAN_Tunnel_Source - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback10 @@ -417,7 +405,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback10 - VRF10_VTEP_DIAGNOSTICS - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback11 @@ -427,7 +415,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback11 - VRF11_VTEP_DIAGNOSTICS - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vxlan1 @@ -437,14 +425,9 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vxlan1 - description: Vxlan Interface Status & Line Protocol == \"up\" + description: Vxlan Interface Status & Line Protocol == 'up' anta.tests.mlag: -- VerifyMlagStatus: - result_overwrite: - categories: - - MLAG - custom_field: MLAG - description: MLAG State active & Status connected +- VerifyMlagStatus: {} anta.tests.routing.bgp: - VerifyBGPSpecificPeers: address_families: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1c-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1c-catalog.yml index 7fd0f7d96f6..721b297eea1 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1c-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf1c-catalog.yml @@ -21,29 +21,17 @@ anta.tests.connectivity: description: LLDP topology - validate peer and interface anta.tests.hardware: - VerifyEnvironmentPower: - result_overwrite: - categories: - - Hardware states: - ok - VerifyEnvironmentCooling: - result_overwrite: - categories: - - Hardware states: - ok -- VerifyTemperature: - result_overwrite: - categories: - - Hardware +- VerifyTemperature: {} - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present - result_overwrite: - categories: - - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: @@ -54,7 +42,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet1 - DC2-LEAF1A_Ethernet8 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet2 @@ -64,7 +52,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet2 - DC2-LEAF1B_Ethernet8 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet5 @@ -74,7 +62,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet5 - dc2-leaf1-server1_iLO - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel1 @@ -84,7 +72,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel1 - DC2_L3_LEAF1_Po8 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' anta.tests.system: - VerifyNTP: result_overwrite: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2a-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2a-catalog.yml index 3906288fec3..d101e4d9030 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2a-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2a-catalog.yml @@ -215,29 +215,17 @@ anta.tests.connectivity: description: Loopback0 Reachability anta.tests.hardware: - VerifyEnvironmentPower: - result_overwrite: - categories: - - Hardware states: - ok - VerifyEnvironmentCooling: - result_overwrite: - categories: - - Hardware states: - ok -- VerifyTemperature: - result_overwrite: - categories: - - Hardware +- VerifyTemperature: {} - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present - result_overwrite: - categories: - - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: @@ -248,7 +236,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet3 - MLAG_PEER_dc2-leaf2b_Ethernet3 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet4 @@ -258,7 +246,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet4 - MLAG_PEER_dc2-leaf2b_Ethernet4 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet1 @@ -268,7 +256,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet3 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet2 @@ -278,7 +266,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet3 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet8 @@ -288,7 +276,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet8 - DC2-LEAF2C_Ethernet1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet6 @@ -298,7 +286,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet6 - P2P_LINK_TO_dc1-leaf2a_Ethernet6 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet5 @@ -308,7 +296,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet5 - dc2-leaf2-server1_PCI1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel3 @@ -318,7 +306,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel3 - MLAG_PEER_dc2-leaf2b_Po3 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel8 @@ -328,7 +316,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel8 - DC2-LEAF2C_Po1 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel5 @@ -338,7 +326,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan4093 @@ -348,7 +336,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan4093 - MLAG_PEER_L3_PEERING - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan4094 @@ -358,7 +346,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan4094 - MLAG_PEER - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan11 @@ -368,7 +356,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan11 - VRF10_VLAN11 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan12 @@ -378,7 +366,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan12 - VRF10_VLAN12 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan3009 @@ -388,7 +376,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: 'Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10' - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan21 @@ -398,7 +386,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan21 - VRF11_VLAN21 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan22 @@ -408,7 +396,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan22 - VRF11_VLAN22 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan3010 @@ -418,7 +406,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: 'Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11' - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback0 @@ -428,7 +416,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback0 - EVPN_Overlay_Peering - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback1 @@ -438,7 +426,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback1 - VTEP_VXLAN_Tunnel_Source - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback10 @@ -448,7 +436,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback10 - VRF10_VTEP_DIAGNOSTICS - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback11 @@ -458,7 +446,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback11 - VRF11_VTEP_DIAGNOSTICS - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vxlan1 @@ -468,14 +456,9 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vxlan1 - description: Vxlan Interface Status & Line Protocol == \"up\" + description: Vxlan Interface Status & Line Protocol == 'up' anta.tests.mlag: -- VerifyMlagStatus: - result_overwrite: - categories: - - MLAG - custom_field: MLAG - description: MLAG State active & Status connected +- VerifyMlagStatus: {} anta.tests.routing.bgp: - VerifyBGPSpecificPeers: address_families: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2b-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2b-catalog.yml index a7386b87a1e..cb5c828e462 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2b-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2b-catalog.yml @@ -194,29 +194,17 @@ anta.tests.connectivity: description: Loopback0 Reachability anta.tests.hardware: - VerifyEnvironmentPower: - result_overwrite: - categories: - - Hardware states: - ok - VerifyEnvironmentCooling: - result_overwrite: - categories: - - Hardware states: - ok -- VerifyTemperature: - result_overwrite: - categories: - - Hardware +- VerifyTemperature: {} - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present - result_overwrite: - categories: - - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: @@ -227,7 +215,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet3 - MLAG_PEER_dc2-leaf2a_Ethernet3 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet4 @@ -237,7 +225,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet4 - MLAG_PEER_dc2-leaf2a_Ethernet4 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet1 @@ -247,7 +235,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet4 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet2 @@ -257,7 +245,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet4 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet8 @@ -267,7 +255,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet8 - DC2-LEAF2C_Ethernet2 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet6 @@ -277,7 +265,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet6 - P2P_LINK_TO_dc1-leaf2b_Ethernet6 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet5 @@ -287,7 +275,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet5 - dc2-leaf2-server1_PCI2 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel3 @@ -297,7 +285,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel3 - MLAG_PEER_dc2-leaf2a_Po3 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel8 @@ -307,7 +295,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel8 - DC2-LEAF2C_Po1 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel5 @@ -317,7 +305,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan4093 @@ -327,7 +315,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan4093 - MLAG_PEER_L3_PEERING - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan4094 @@ -337,7 +325,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan4094 - MLAG_PEER - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan11 @@ -347,7 +335,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan11 - VRF10_VLAN11 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan12 @@ -357,7 +345,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan12 - VRF10_VLAN12 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan3009 @@ -367,7 +355,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: 'Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10' - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan21 @@ -377,7 +365,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan21 - VRF11_VLAN21 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan22 @@ -387,7 +375,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vlan22 - VRF11_VLAN22 - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vlan3010 @@ -397,7 +385,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: 'Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11' - description: Vlan Interface & Line Protocol == \"up\" + description: Vlan Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback0 @@ -407,7 +395,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback0 - EVPN_Overlay_Peering - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback1 @@ -417,7 +405,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback1 - VTEP_VXLAN_Tunnel_Source - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback10 @@ -427,7 +415,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback10 - VRF10_VTEP_DIAGNOSTICS - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback11 @@ -437,7 +425,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback11 - VRF11_VTEP_DIAGNOSTICS - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Vxlan1 @@ -447,14 +435,9 @@ anta.tests.interfaces: categories: - Interface State custom_field: Vxlan1 - description: Vxlan Interface Status & Line Protocol == \"up\" + description: Vxlan Interface Status & Line Protocol == 'up' anta.tests.mlag: -- VerifyMlagStatus: - result_overwrite: - categories: - - MLAG - custom_field: MLAG - description: MLAG State active & Status connected +- VerifyMlagStatus: {} anta.tests.routing.bgp: - VerifyBGPSpecificPeers: address_families: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2c-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2c-catalog.yml index c006e358e94..bd6a0a32bb8 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2c-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-leaf2c-catalog.yml @@ -21,29 +21,17 @@ anta.tests.connectivity: description: LLDP topology - validate peer and interface anta.tests.hardware: - VerifyEnvironmentPower: - result_overwrite: - categories: - - Hardware states: - ok - VerifyEnvironmentCooling: - result_overwrite: - categories: - - Hardware states: - ok -- VerifyTemperature: - result_overwrite: - categories: - - Hardware +- VerifyTemperature: {} - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present - result_overwrite: - categories: - - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: @@ -54,7 +42,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet1 - DC2-LEAF2A_Ethernet8 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet2 @@ -64,7 +52,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet2 - DC2-LEAF2B_Ethernet8 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet5 @@ -74,7 +62,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet5 - dc2-leaf2-server1_iLO - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Port-Channel1 @@ -84,7 +72,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Port-Channel1 - DC2_L3_LEAF2_Po8 - description: Port-Channel Interface & Line Protocol == \"up\" + description: Port-Channel Interface & Line Protocol == 'up' anta.tests.system: - VerifyNTP: result_overwrite: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-spine1-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-spine1-catalog.yml index ff1be2ffab8..384e611f470 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-spine1-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-spine1-catalog.yml @@ -85,29 +85,17 @@ anta.tests.connectivity: description: ip reachability test p2p links anta.tests.hardware: - VerifyEnvironmentPower: - result_overwrite: - categories: - - Hardware states: - ok - VerifyEnvironmentCooling: - result_overwrite: - categories: - - Hardware states: - ok -- VerifyTemperature: - result_overwrite: - categories: - - Hardware +- VerifyTemperature: {} - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present - result_overwrite: - categories: - - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: @@ -118,7 +106,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet2 @@ -128,7 +116,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet3 @@ -138,7 +126,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet4 @@ -148,7 +136,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet1 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback0 @@ -158,7 +146,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback0 - EVPN_Overlay_Peering - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' anta.tests.routing.bgp: - VerifyBGPSpecificPeers: address_families: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-spine2-catalog.yml b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-spine2-catalog.yml index 997e5452734..e8ae52abed4 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-spine2-catalog.yml +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/intended/test_catalogs/dc2-spine2-catalog.yml @@ -85,29 +85,17 @@ anta.tests.connectivity: description: ip reachability test p2p links anta.tests.hardware: - VerifyEnvironmentPower: - result_overwrite: - categories: - - Hardware states: - ok - VerifyEnvironmentCooling: - result_overwrite: - categories: - - Hardware states: - ok -- VerifyTemperature: - result_overwrite: - categories: - - Hardware +- VerifyTemperature: {} - VerifyTransceiversManufacturers: manufacturers: - Arista Networks - Arastra, Inc. - Not Present - result_overwrite: - categories: - - Hardware anta.tests.interfaces: - VerifyInterfacesStatus: interfaces: @@ -118,7 +106,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet2 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet2 @@ -128,7 +116,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet2 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet3 @@ -138,7 +126,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet2 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Ethernet4 @@ -148,7 +136,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet2 - description: Ethernet Interface & Line Protocol == \"up\" + description: Ethernet Interface & Line Protocol == 'up' - VerifyInterfacesStatus: interfaces: - interface: Loopback0 @@ -158,7 +146,7 @@ anta.tests.interfaces: categories: - Interface State custom_field: Loopback0 - EVPN_Overlay_Peering - description: Loopback Interface Status & Line Protocol == \"up\" + description: Loopback Interface Status & Line Protocol == 'up' anta.tests.routing.bgp: - VerifyBGPSpecificPeers: address_families: diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.csv b/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.csv index d2cc8cba26f..8cf6721699f 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.csv +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.csv @@ -1,621 +1,621 @@ -test_id,node,test_category,test_description,test,result,failure_reasons -1,dc1-leaf1a,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! -2,dc1-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,SKIPPED,Dry run! -3,dc1-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,SKIPPED,Dry run! -4,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.97,SKIPPED,Dry run! -5,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.0,SKIPPED,Dry run! -6,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.2,SKIPPED,Dry run! -7,dc1-leaf1a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! -8,dc1-leaf1a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! -9,dc1-leaf1a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! -10,dc1-leaf1a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! -11,dc1-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1a_Ethernet1 - Destination: dc1-spine1_Ethernet1,SKIPPED,Dry run! -12,dc1-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1a_Ethernet2 - Destination: dc1-spine2_Ethernet1,SKIPPED,Dry run! -13,dc1-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet1,SKIPPED,Dry run! -14,dc1-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet1,SKIPPED,Dry run! -15,dc1-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc1-leaf1b_Ethernet3,SKIPPED,Dry run! -16,dc1-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc1-leaf1b_Ethernet4,SKIPPED,Dry run! -17,dc1-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc1-leaf1-server1_PCI1,SKIPPED,Dry run! -18,dc1-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC1-LEAF1C_Ethernet1,SKIPPED,Dry run! -19,dc1-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! -20,dc1-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! -21,dc1-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! -22,dc1-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! -23,dc1-leaf1a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc1-leaf1b_Po3,SKIPPED,Dry run! -24,dc1-leaf1a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1,SKIPPED,Dry run! -25,dc1-leaf1a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC1-LEAF1C_Po1,SKIPPED,Dry run! -26,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! -27,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! -28,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! -29,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! -30,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! -31,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! -32,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! -33,dc1-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! -34,dc1-leaf1a,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! -35,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet1,SKIPPED,Dry run! -36,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet1,SKIPPED,Dry run! -37,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf1b_Ethernet3,SKIPPED,Dry run! -38,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf1b_Ethernet4,SKIPPED,Dry run! -39,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf1c_Ethernet1,SKIPPED,Dry run! -40,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.1,SKIPPED,Dry run! -41,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.2,SKIPPED,Dry run! -42,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.3,SKIPPED,Dry run! -43,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.4,SKIPPED,Dry run! -44,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.5,SKIPPED,Dry run! -45,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.11,SKIPPED,Dry run! -46,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.12,SKIPPED,Dry run! -47,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.13,SKIPPED,Dry run! -48,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.14,SKIPPED,Dry run! -49,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.15,SKIPPED,Dry run! -50,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.16,SKIPPED,Dry run! -51,dc1-leaf1a,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! -52,dc1-leaf1a,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! -53,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! -54,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! -55,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! -56,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! -57,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! -58,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! -59,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! -60,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! -61,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! -62,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! -63,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! -64,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! -65,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! -66,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! -67,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! -68,dc1-leaf1b,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! -69,dc1-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,SKIPPED,Dry run! -70,dc1-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,SKIPPED,Dry run! -71,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.96,SKIPPED,Dry run! -72,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.4,SKIPPED,Dry run! -73,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.6,SKIPPED,Dry run! -74,dc1-leaf1b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! -75,dc1-leaf1b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! -76,dc1-leaf1b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! -77,dc1-leaf1b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! -78,dc1-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1b_Ethernet1 - Destination: dc1-spine1_Ethernet2,SKIPPED,Dry run! -79,dc1-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1b_Ethernet2 - Destination: dc1-spine2_Ethernet2,SKIPPED,Dry run! -80,dc1-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet2,SKIPPED,Dry run! -81,dc1-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet2,SKIPPED,Dry run! -82,dc1-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc1-leaf1a_Ethernet3,SKIPPED,Dry run! -83,dc1-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc1-leaf1a_Ethernet4,SKIPPED,Dry run! -84,dc1-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc1-leaf1-server1_PCI2,SKIPPED,Dry run! -85,dc1-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC1-LEAF1C_Ethernet2,SKIPPED,Dry run! -86,dc1-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! -87,dc1-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! -88,dc1-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! -89,dc1-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! -90,dc1-leaf1b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc1-leaf1a_Po3,SKIPPED,Dry run! -91,dc1-leaf1b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1,SKIPPED,Dry run! -92,dc1-leaf1b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC1-LEAF1C_Po1,SKIPPED,Dry run! -93,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! -94,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! -95,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! -96,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! -97,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! -98,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! -99,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! -100,dc1-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! -101,dc1-leaf1b,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! -102,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet2,SKIPPED,Dry run! -103,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet2,SKIPPED,Dry run! -104,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf1a_Ethernet3,SKIPPED,Dry run! -105,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf1a_Ethernet4,SKIPPED,Dry run! -106,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf1c_Ethernet2,SKIPPED,Dry run! -107,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.1,SKIPPED,Dry run! -108,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.2,SKIPPED,Dry run! -109,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.3,SKIPPED,Dry run! -110,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.4,SKIPPED,Dry run! -111,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.5,SKIPPED,Dry run! -112,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.11,SKIPPED,Dry run! -113,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.12,SKIPPED,Dry run! -114,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.13,SKIPPED,Dry run! -115,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.14,SKIPPED,Dry run! -116,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.15,SKIPPED,Dry run! -117,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.16,SKIPPED,Dry run! -118,dc1-leaf1b,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! -119,dc1-leaf1b,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! -120,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! -121,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! -122,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! -123,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! -124,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! -125,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! -126,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! -127,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! -128,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! -129,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! -130,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! -131,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! -132,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! -133,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! -134,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! -135,dc1-leaf1c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! -136,dc1-leaf1c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! -137,dc1-leaf1c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! -138,dc1-leaf1c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! -139,dc1-leaf1c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - DC1-LEAF1A_Ethernet8,SKIPPED,Dry run! -140,dc1-leaf1c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - DC1-LEAF1B_Ethernet8,SKIPPED,Dry run! -141,dc1-leaf1c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc1-leaf1-server1_iLO,SKIPPED,Dry run! -142,dc1-leaf1c,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel1 - DC1_L3_LEAF1_Po8,SKIPPED,Dry run! -143,dc1-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet8,SKIPPED,Dry run! -144,dc1-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf1b_Ethernet8,SKIPPED,Dry run! -145,dc1-leaf1c,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! -146,dc1-leaf2a,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! -147,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,SKIPPED,Dry run! -148,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,SKIPPED,Dry run! -149,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,SKIPPED,Dry run! -150,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.10,SKIPPED,Dry run! -151,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.8,SKIPPED,Dry run! -152,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.1,SKIPPED,Dry run! -153,dc1-leaf2a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! -154,dc1-leaf2a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! -155,dc1-leaf2a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! -156,dc1-leaf2a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! -157,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet1 - Destination: dc1-spine1_Ethernet3,SKIPPED,Dry run! -158,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet2 - Destination: dc1-spine2_Ethernet3,SKIPPED,Dry run! -159,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet6 - Destination: dc2-leaf2a_Ethernet6,SKIPPED,Dry run! -160,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet3,SKIPPED,Dry run! -161,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet3,SKIPPED,Dry run! -162,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc1-leaf2b_Ethernet3,SKIPPED,Dry run! -163,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc1-leaf2b_Ethernet4,SKIPPED,Dry run! -164,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc1-leaf2-server1_PCI1,SKIPPED,Dry run! -165,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet6 - P2P_LINK_TO_dc2-leaf2a_Ethernet6,SKIPPED,Dry run! -166,dc1-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC1-LEAF2C_Ethernet1,SKIPPED,Dry run! -167,dc1-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! -168,dc1-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! -169,dc1-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! -170,dc1-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! -171,dc1-leaf2a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc1-leaf2b_Po3,SKIPPED,Dry run! -172,dc1-leaf2a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1,SKIPPED,Dry run! -173,dc1-leaf2a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC1-LEAF2C_Po1,SKIPPED,Dry run! -174,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! -175,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! -176,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! -177,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! -178,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! -179,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! -180,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! -181,dc1-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! -182,dc1-leaf2a,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! -183,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet3,SKIPPED,Dry run! -184,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet3,SKIPPED,Dry run! -185,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc2-leaf2a_Ethernet6,SKIPPED,Dry run! -186,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf2c_Ethernet1,SKIPPED,Dry run! -187,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.1,SKIPPED,Dry run! -188,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.2,SKIPPED,Dry run! -189,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.3,SKIPPED,Dry run! -190,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.4,SKIPPED,Dry run! -191,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.5,SKIPPED,Dry run! -192,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.11,SKIPPED,Dry run! -193,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.12,SKIPPED,Dry run! -194,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.13,SKIPPED,Dry run! -195,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.14,SKIPPED,Dry run! -196,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.15,SKIPPED,Dry run! -197,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.16,SKIPPED,Dry run! -198,dc1-leaf2a,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! -199,dc1-leaf2a,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! -200,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! -201,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! -202,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! -203,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! -204,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! -205,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! -206,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! -207,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! -208,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! -209,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! -210,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! -211,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! -212,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! -213,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! -214,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! -215,dc1-leaf2c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! -216,dc1-leaf2c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! -217,dc1-leaf2c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! -218,dc1-leaf2c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! -219,dc1-leaf2c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - DC1-LEAF2A_Ethernet8,SKIPPED,Dry run! -220,dc1-leaf2c,Interface State,"Ethernet Interface & Line Protocol == \""adminDown\""",Ethernet2 - DC1-LEAF2B_Ethernet8,SKIPPED,Dry run! -221,dc1-leaf2c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc1-leaf2-server1_iLO,SKIPPED,Dry run! -222,dc1-leaf2c,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel1 - DC1_L3_LEAF2_Po8,SKIPPED,Dry run! -223,dc1-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf2a_Ethernet8,SKIPPED,Dry run! -224,dc1-leaf2c,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! -225,dc1-spine1,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! -226,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.3,SKIPPED,Dry run! -227,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.4,SKIPPED,Dry run! -228,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,SKIPPED,Dry run! -229,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.1,SKIPPED,Dry run! -230,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.5,SKIPPED,Dry run! -231,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.9,SKIPPED,Dry run! -232,dc1-spine1,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! -233,dc1-spine1,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! -234,dc1-spine1,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! -235,dc1-spine1,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! -236,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet1 - Destination: dc1-leaf1a_Ethernet1,SKIPPED,Dry run! -237,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet2 - Destination: dc1-leaf1b_Ethernet1,SKIPPED,Dry run! -238,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet3 - Destination: dc1-leaf2a_Ethernet1,SKIPPED,Dry run! -239,dc1-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet1,SKIPPED,Dry run! -240,dc1-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet1,SKIPPED,Dry run! -241,dc1-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet1,SKIPPED,Dry run! -242,dc1-spine1,Interface State,"Ethernet Interface & Line Protocol == \""adminDown\""",Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet1,SKIPPED,Dry run! -243,dc1-spine1,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! -244,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet1,SKIPPED,Dry run! -245,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf1b_Ethernet1,SKIPPED,Dry run! -246,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2a_Ethernet1,SKIPPED,Dry run! -247,dc1-spine1,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! -248,dc1-spine2,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! -249,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.3,SKIPPED,Dry run! -250,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.4,SKIPPED,Dry run! -251,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,SKIPPED,Dry run! -252,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.11,SKIPPED,Dry run! -253,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.3,SKIPPED,Dry run! -254,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.7,SKIPPED,Dry run! -255,dc1-spine2,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! -256,dc1-spine2,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! -257,dc1-spine2,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! -258,dc1-spine2,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! -259,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet1 - Destination: dc1-leaf1a_Ethernet2,SKIPPED,Dry run! -260,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet2 - Destination: dc1-leaf1b_Ethernet2,SKIPPED,Dry run! -261,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet3 - Destination: dc1-leaf2a_Ethernet2,SKIPPED,Dry run! -262,dc1-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet2,SKIPPED,Dry run! -263,dc1-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet2,SKIPPED,Dry run! -264,dc1-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet2,SKIPPED,Dry run! -265,dc1-spine2,Interface State,"Ethernet Interface & Line Protocol == \""adminDown\""",Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet2,SKIPPED,Dry run! -266,dc1-spine2,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! -267,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet2,SKIPPED,Dry run! -268,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf1b_Ethernet2,SKIPPED,Dry run! -269,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2a_Ethernet2,SKIPPED,Dry run! -270,dc1-spine2,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! -271,dc2-leaf1a,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! -272,dc2-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,SKIPPED,Dry run! -273,dc2-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,SKIPPED,Dry run! -274,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.117,SKIPPED,Dry run! -275,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.104,SKIPPED,Dry run! -276,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.106,SKIPPED,Dry run! -277,dc2-leaf1a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! -278,dc2-leaf1a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! -279,dc2-leaf1a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! -280,dc2-leaf1a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! -281,dc2-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1a_Ethernet1 - Destination: dc2-spine1_Ethernet1,SKIPPED,Dry run! -282,dc2-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1a_Ethernet2 - Destination: dc2-spine2_Ethernet1,SKIPPED,Dry run! -283,dc2-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet1,SKIPPED,Dry run! -284,dc2-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet1,SKIPPED,Dry run! -285,dc2-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc2-leaf1b_Ethernet3,SKIPPED,Dry run! -286,dc2-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc2-leaf1b_Ethernet4,SKIPPED,Dry run! -287,dc2-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc2-leaf1-server1_PCI1,SKIPPED,Dry run! -288,dc2-leaf1a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC2-LEAF1C_Ethernet1,SKIPPED,Dry run! -289,dc2-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! -290,dc2-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! -291,dc2-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! -292,dc2-leaf1a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! -293,dc2-leaf1a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc2-leaf1b_Po3,SKIPPED,Dry run! -294,dc2-leaf1a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1,SKIPPED,Dry run! -295,dc2-leaf1a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC2-LEAF1C_Po1,SKIPPED,Dry run! -296,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! -297,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! -298,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! -299,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! -300,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! -301,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! -302,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! -303,dc2-leaf1a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! -304,dc2-leaf1a,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! -305,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet1,SKIPPED,Dry run! -306,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet1,SKIPPED,Dry run! -307,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf1b_Ethernet3,SKIPPED,Dry run! -308,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf1b_Ethernet4,SKIPPED,Dry run! -309,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf1c_Ethernet1,SKIPPED,Dry run! -310,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.1,SKIPPED,Dry run! -311,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.2,SKIPPED,Dry run! -312,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.3,SKIPPED,Dry run! -313,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.4,SKIPPED,Dry run! -314,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.5,SKIPPED,Dry run! -315,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.11,SKIPPED,Dry run! -316,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.12,SKIPPED,Dry run! -317,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.13,SKIPPED,Dry run! -318,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.14,SKIPPED,Dry run! -319,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.15,SKIPPED,Dry run! -320,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.16,SKIPPED,Dry run! -321,dc2-leaf1a,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! -322,dc2-leaf1a,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! -323,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! -324,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! -325,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! -326,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! -327,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! -328,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! -329,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! -330,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! -331,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! -332,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! -333,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! -334,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! -335,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! -336,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! -337,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! -338,dc2-leaf1b,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! -339,dc2-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,SKIPPED,Dry run! -340,dc2-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,SKIPPED,Dry run! -341,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.116,SKIPPED,Dry run! -342,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.108,SKIPPED,Dry run! -343,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.110,SKIPPED,Dry run! -344,dc2-leaf1b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! -345,dc2-leaf1b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! -346,dc2-leaf1b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! -347,dc2-leaf1b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! -348,dc2-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1b_Ethernet1 - Destination: dc2-spine1_Ethernet2,SKIPPED,Dry run! -349,dc2-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1b_Ethernet2 - Destination: dc2-spine2_Ethernet2,SKIPPED,Dry run! -350,dc2-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet2,SKIPPED,Dry run! -351,dc2-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet2,SKIPPED,Dry run! -352,dc2-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc2-leaf1a_Ethernet3,SKIPPED,Dry run! -353,dc2-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc2-leaf1a_Ethernet4,SKIPPED,Dry run! -354,dc2-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc2-leaf1-server1_PCI2,SKIPPED,Dry run! -355,dc2-leaf1b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC2-LEAF1C_Ethernet2,SKIPPED,Dry run! -356,dc2-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! -357,dc2-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! -358,dc2-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! -359,dc2-leaf1b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! -360,dc2-leaf1b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc2-leaf1a_Po3,SKIPPED,Dry run! -361,dc2-leaf1b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1,SKIPPED,Dry run! -362,dc2-leaf1b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC2-LEAF1C_Po1,SKIPPED,Dry run! -363,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! -364,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! -365,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! -366,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! -367,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! -368,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! -369,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! -370,dc2-leaf1b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! -371,dc2-leaf1b,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! -372,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet2,SKIPPED,Dry run! -373,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet2,SKIPPED,Dry run! -374,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf1a_Ethernet3,SKIPPED,Dry run! -375,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf1a_Ethernet4,SKIPPED,Dry run! -376,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf1c_Ethernet2,SKIPPED,Dry run! -377,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.1,SKIPPED,Dry run! -378,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.2,SKIPPED,Dry run! -379,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.3,SKIPPED,Dry run! -380,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.4,SKIPPED,Dry run! -381,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.5,SKIPPED,Dry run! -382,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.11,SKIPPED,Dry run! -383,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.12,SKIPPED,Dry run! -384,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.13,SKIPPED,Dry run! -385,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.14,SKIPPED,Dry run! -386,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.15,SKIPPED,Dry run! -387,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.16,SKIPPED,Dry run! -388,dc2-leaf1b,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! -389,dc2-leaf1b,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! -390,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! -391,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! -392,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! -393,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! -394,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! -395,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! -396,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! -397,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! -398,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! -399,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! -400,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! -401,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! -402,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! -403,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! -404,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! -405,dc2-leaf1c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! -406,dc2-leaf1c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! -407,dc2-leaf1c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! -408,dc2-leaf1c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! -409,dc2-leaf1c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - DC2-LEAF1A_Ethernet8,SKIPPED,Dry run! -410,dc2-leaf1c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - DC2-LEAF1B_Ethernet8,SKIPPED,Dry run! -411,dc2-leaf1c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc2-leaf1-server1_iLO,SKIPPED,Dry run! -412,dc2-leaf1c,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel1 - DC2_L3_LEAF1_Po8,SKIPPED,Dry run! -413,dc2-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet8,SKIPPED,Dry run! -414,dc2-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet8,SKIPPED,Dry run! -415,dc2-leaf1c,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! -416,dc2-leaf2a,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! -417,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,SKIPPED,Dry run! -418,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,SKIPPED,Dry run! -419,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,SKIPPED,Dry run! -420,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.121,SKIPPED,Dry run! -421,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.112,SKIPPED,Dry run! -422,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.114,SKIPPED,Dry run! -423,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.0,SKIPPED,Dry run! -424,dc2-leaf2a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! -425,dc2-leaf2a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! -426,dc2-leaf2a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! -427,dc2-leaf2a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! -428,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet1 - Destination: dc2-spine1_Ethernet3,SKIPPED,Dry run! -429,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet2 - Destination: dc2-spine2_Ethernet3,SKIPPED,Dry run! -430,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet6 - Destination: dc1-leaf2a_Ethernet6,SKIPPED,Dry run! -431,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet3,SKIPPED,Dry run! -432,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet3,SKIPPED,Dry run! -433,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc2-leaf2b_Ethernet3,SKIPPED,Dry run! -434,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc2-leaf2b_Ethernet4,SKIPPED,Dry run! -435,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc2-leaf2-server1_PCI1,SKIPPED,Dry run! -436,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet6 - P2P_LINK_TO_dc1-leaf2a_Ethernet6,SKIPPED,Dry run! -437,dc2-leaf2a,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC2-LEAF2C_Ethernet1,SKIPPED,Dry run! -438,dc2-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! -439,dc2-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! -440,dc2-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! -441,dc2-leaf2a,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! -442,dc2-leaf2a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc2-leaf2b_Po3,SKIPPED,Dry run! -443,dc2-leaf2a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1,SKIPPED,Dry run! -444,dc2-leaf2a,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC2-LEAF2C_Po1,SKIPPED,Dry run! -445,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! -446,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! -447,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! -448,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! -449,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! -450,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! -451,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! -452,dc2-leaf2a,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! -453,dc2-leaf2a,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! -454,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet3,SKIPPED,Dry run! -455,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet3,SKIPPED,Dry run! -456,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2b_Ethernet3,SKIPPED,Dry run! -457,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet4,SKIPPED,Dry run! -458,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc1-leaf2a_Ethernet6,SKIPPED,Dry run! -459,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf2c_Ethernet1,SKIPPED,Dry run! -460,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.1,SKIPPED,Dry run! -461,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.2,SKIPPED,Dry run! -462,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.3,SKIPPED,Dry run! -463,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.4,SKIPPED,Dry run! -464,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.5,SKIPPED,Dry run! -465,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.11,SKIPPED,Dry run! -466,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.12,SKIPPED,Dry run! -467,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.13,SKIPPED,Dry run! -468,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.14,SKIPPED,Dry run! -469,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.15,SKIPPED,Dry run! -470,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.16,SKIPPED,Dry run! -471,dc2-leaf2a,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! -472,dc2-leaf2a,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! -473,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! -474,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! -475,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! -476,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! -477,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! -478,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! -479,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! -480,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! -481,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! -482,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! -483,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! -484,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! -485,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! -486,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! -487,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! -488,dc2-leaf2b,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! -489,dc2-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,SKIPPED,Dry run! -490,dc2-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,SKIPPED,Dry run! -491,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.120,SKIPPED,Dry run! -492,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.116,SKIPPED,Dry run! -493,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.118,SKIPPED,Dry run! -494,dc2-leaf2b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! -495,dc2-leaf2b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! -496,dc2-leaf2b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! -497,dc2-leaf2b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! -498,dc2-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2b_Ethernet1 - Destination: dc2-spine1_Ethernet4,SKIPPED,Dry run! -499,dc2-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2b_Ethernet2 - Destination: dc2-spine2_Ethernet4,SKIPPED,Dry run! -500,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet4,SKIPPED,Dry run! -501,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet4,SKIPPED,Dry run! -502,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - MLAG_PEER_dc2-leaf2a_Ethernet3,SKIPPED,Dry run! -503,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - MLAG_PEER_dc2-leaf2a_Ethernet4,SKIPPED,Dry run! -504,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc2-leaf2-server1_PCI2,SKIPPED,Dry run! -505,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet6 - P2P_LINK_TO_dc1-leaf2b_Ethernet6,SKIPPED,Dry run! -506,dc2-leaf2b,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet8 - DC2-LEAF2C_Ethernet2,SKIPPED,Dry run! -507,dc2-leaf2b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! -508,dc2-leaf2b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback1 - VTEP_VXLAN_Tunnel_Source,SKIPPED,Dry run! -509,dc2-leaf2b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback10 - VRF10_VTEP_DIAGNOSTICS,SKIPPED,Dry run! -510,dc2-leaf2b,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback11 - VRF11_VTEP_DIAGNOSTICS,SKIPPED,Dry run! -511,dc2-leaf2b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel3 - MLAG_PEER_dc2-leaf2a_Po3,SKIPPED,Dry run! -512,dc2-leaf2b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1,SKIPPED,Dry run! -513,dc2-leaf2b,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel8 - DC2-LEAF2C_Po1,SKIPPED,Dry run! -514,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan11 - VRF10_VLAN11,SKIPPED,Dry run! -515,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan12 - VRF10_VLAN12,SKIPPED,Dry run! -516,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan21 - VRF11_VLAN21,SKIPPED,Dry run! -517,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan22 - VRF11_VLAN22,SKIPPED,Dry run! -518,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,SKIPPED,Dry run! -519,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,SKIPPED,Dry run! -520,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4093 - MLAG_PEER_L3_PEERING,SKIPPED,Dry run! -521,dc2-leaf2b,Interface State,"Vlan Interface & Line Protocol == \""up\""",Vlan4094 - MLAG_PEER,SKIPPED,Dry run! -522,dc2-leaf2b,Interface State,"Vxlan Interface Status & Line Protocol == \""up\""",Vxlan1,SKIPPED,Dry run! -523,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet4,SKIPPED,Dry run! -524,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet4,SKIPPED,Dry run! -525,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet3,SKIPPED,Dry run! -526,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2a_Ethernet4,SKIPPED,Dry run! -527,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf2c_Ethernet2,SKIPPED,Dry run! -528,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.1,SKIPPED,Dry run! -529,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.2,SKIPPED,Dry run! -530,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.3,SKIPPED,Dry run! -531,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.4,SKIPPED,Dry run! -532,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.5,SKIPPED,Dry run! -533,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.11,SKIPPED,Dry run! -534,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.12,SKIPPED,Dry run! -535,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.13,SKIPPED,Dry run! -536,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.14,SKIPPED,Dry run! -537,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.15,SKIPPED,Dry run! -538,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.16,SKIPPED,Dry run! -539,dc2-leaf2b,MLAG,MLAG State active & Status connected,MLAG,SKIPPED,Dry run! -540,dc2-leaf2b,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! -541,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.1,SKIPPED,Dry run! -542,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.2,SKIPPED,Dry run! -543,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.3,SKIPPED,Dry run! -544,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.4,SKIPPED,Dry run! -545,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.5,SKIPPED,Dry run! -546,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.1.3,SKIPPED,Dry run! -547,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.1.5,SKIPPED,Dry run! -548,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.11,SKIPPED,Dry run! -549,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.12,SKIPPED,Dry run! -550,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.13,SKIPPED,Dry run! -551,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.14,SKIPPED,Dry run! -552,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.15,SKIPPED,Dry run! -553,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.16,SKIPPED,Dry run! -554,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.129.13,SKIPPED,Dry run! -555,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.129.15,SKIPPED,Dry run! -556,dc2-leaf2c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! -557,dc2-leaf2c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! -558,dc2-leaf2c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! -559,dc2-leaf2c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! -560,dc2-leaf2c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - DC2-LEAF2A_Ethernet8,SKIPPED,Dry run! -561,dc2-leaf2c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - DC2-LEAF2B_Ethernet8,SKIPPED,Dry run! -562,dc2-leaf2c,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet5 - dc2-leaf2-server1_iLO,SKIPPED,Dry run! -563,dc2-leaf2c,Interface State,"Port-Channel Interface & Line Protocol == \""up\""",Port-Channel1 - DC2_L3_LEAF2_Po8,SKIPPED,Dry run! -564,dc2-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf2a_Ethernet8,SKIPPED,Dry run! -565,dc2-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf2b_Ethernet8,SKIPPED,Dry run! -566,dc2-leaf2c,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! -567,dc2-spine1,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! -568,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.13,SKIPPED,Dry run! -569,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.14,SKIPPED,Dry run! -570,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,SKIPPED,Dry run! -571,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.16,SKIPPED,Dry run! -572,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.105,SKIPPED,Dry run! -573,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.109,SKIPPED,Dry run! -574,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.113,SKIPPED,Dry run! -575,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.117,SKIPPED,Dry run! -576,dc2-spine1,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! -577,dc2-spine1,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! -578,dc2-spine1,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! -579,dc2-spine1,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! -580,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet1 - Destination: dc2-leaf1a_Ethernet1,SKIPPED,Dry run! -581,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet2 - Destination: dc2-leaf1b_Ethernet1,SKIPPED,Dry run! -582,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet3 - Destination: dc2-leaf2a_Ethernet1,SKIPPED,Dry run! -583,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet4 - Destination: dc2-leaf2b_Ethernet1,SKIPPED,Dry run! -584,dc2-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet1,SKIPPED,Dry run! -585,dc2-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet1,SKIPPED,Dry run! -586,dc2-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet1,SKIPPED,Dry run! -587,dc2-spine1,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet1,SKIPPED,Dry run! -588,dc2-spine1,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! -589,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet1,SKIPPED,Dry run! -590,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet1,SKIPPED,Dry run! -591,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet1,SKIPPED,Dry run! -592,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet1,SKIPPED,Dry run! -593,dc2-spine1,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! -594,dc2-spine2,BGP,ArBGP is configured and operating,ArBGP,SKIPPED,Dry run! -595,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.13,SKIPPED,Dry run! -596,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.14,SKIPPED,Dry run! -597,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,SKIPPED,Dry run! -598,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.16,SKIPPED,Dry run! -599,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.107,SKIPPED,Dry run! -600,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.111,SKIPPED,Dry run! -601,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.115,SKIPPED,Dry run! -602,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.119,SKIPPED,Dry run! -603,dc2-spine2,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,SKIPPED,Dry run! -604,dc2-spine2,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,SKIPPED,Dry run! -605,dc2-spine2,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,SKIPPED,Dry run! -606,dc2-spine2,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,SKIPPED,Dry run! -607,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet1 - Destination: dc2-leaf1a_Ethernet2,SKIPPED,Dry run! -608,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet2 - Destination: dc2-leaf1b_Ethernet2,SKIPPED,Dry run! -609,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet3 - Destination: dc2-leaf2a_Ethernet2,SKIPPED,Dry run! -610,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet4 - Destination: dc2-leaf2b_Ethernet2,SKIPPED,Dry run! -611,dc2-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet2,SKIPPED,Dry run! -612,dc2-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet2,SKIPPED,Dry run! -613,dc2-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet2,SKIPPED,Dry run! -614,dc2-spine2,Interface State,"Ethernet Interface & Line Protocol == \""up\""",Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet2,SKIPPED,Dry run! -615,dc2-spine2,Interface State,"Loopback Interface Status & Line Protocol == \""up\""",Loopback0 - EVPN_Overlay_Peering,SKIPPED,Dry run! -616,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet2,SKIPPED,Dry run! -617,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet2,SKIPPED,Dry run! -618,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet2,SKIPPED,Dry run! -619,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet2,SKIPPED,Dry run! -620,dc2-spine2,NTP,Synchronised with NTP server,NTP,SKIPPED,Dry run! +test_id,node,test_categories,test_description,test,result,failure_reasons +1,dc1-leaf1a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +2,dc1-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,NOT RUN, +3,dc1-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,NOT RUN, +4,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.97,NOT RUN, +5,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.0,NOT RUN, +6,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.2,NOT RUN, +7,dc1-leaf1a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +8,dc1-leaf1a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +9,dc1-leaf1a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +10,dc1-leaf1a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +11,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet1,NOT RUN, +12,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet1,NOT RUN, +13,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc1-leaf1b_Ethernet3,NOT RUN, +14,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc1-leaf1b_Ethernet4,NOT RUN, +15,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc1-leaf1-server1_PCI1,NOT RUN, +16,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC1-LEAF1C_Ethernet1,NOT RUN, +17,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +18,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, +19,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, +20,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, +21,dc1-leaf1a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc1-leaf1b_Po3,NOT RUN, +22,dc1-leaf1a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1,NOT RUN, +23,dc1-leaf1a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC1-LEAF1C_Po1,NOT RUN, +24,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, +25,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, +26,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, +27,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, +28,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, +29,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, +30,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, +31,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, +32,dc1-leaf1a,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, +33,dc1-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1a_Ethernet1 - Destination: dc1-spine1_Ethernet1,NOT RUN, +34,dc1-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1a_Ethernet2 - Destination: dc1-spine2_Ethernet1,NOT RUN, +35,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet1,NOT RUN, +36,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet1,NOT RUN, +37,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf1b_Ethernet3,NOT RUN, +38,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf1b_Ethernet4,NOT RUN, +39,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf1c_Ethernet1,NOT RUN, +40,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.1,NOT RUN, +41,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.2,NOT RUN, +42,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.3,NOT RUN, +43,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.4,NOT RUN, +44,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.5,NOT RUN, +45,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.11,NOT RUN, +46,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.12,NOT RUN, +47,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.13,NOT RUN, +48,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.14,NOT RUN, +49,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.15,NOT RUN, +50,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.16,NOT RUN, +51,dc1-leaf1a,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, +52,dc1-leaf1a,NTP,Synchronised with NTP server,NTP,NOT RUN, +53,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, +54,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, +55,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, +56,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, +57,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, +58,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, +59,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, +60,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, +61,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, +62,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, +63,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, +64,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, +65,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, +66,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, +67,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, +68,dc1-leaf1b,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +69,dc1-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,NOT RUN, +70,dc1-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,NOT RUN, +71,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.96,NOT RUN, +72,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.4,NOT RUN, +73,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.6,NOT RUN, +74,dc1-leaf1b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +75,dc1-leaf1b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +76,dc1-leaf1b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +77,dc1-leaf1b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +78,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet2,NOT RUN, +79,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet2,NOT RUN, +80,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc1-leaf1a_Ethernet3,NOT RUN, +81,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc1-leaf1a_Ethernet4,NOT RUN, +82,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc1-leaf1-server1_PCI2,NOT RUN, +83,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC1-LEAF1C_Ethernet2,NOT RUN, +84,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +85,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, +86,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, +87,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, +88,dc1-leaf1b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc1-leaf1a_Po3,NOT RUN, +89,dc1-leaf1b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1,NOT RUN, +90,dc1-leaf1b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC1-LEAF1C_Po1,NOT RUN, +91,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, +92,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, +93,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, +94,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, +95,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, +96,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, +97,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, +98,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, +99,dc1-leaf1b,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, +100,dc1-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1b_Ethernet1 - Destination: dc1-spine1_Ethernet2,NOT RUN, +101,dc1-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1b_Ethernet2 - Destination: dc1-spine2_Ethernet2,NOT RUN, +102,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet2,NOT RUN, +103,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet2,NOT RUN, +104,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf1a_Ethernet3,NOT RUN, +105,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf1a_Ethernet4,NOT RUN, +106,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf1c_Ethernet2,NOT RUN, +107,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.1,NOT RUN, +108,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.2,NOT RUN, +109,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.3,NOT RUN, +110,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.4,NOT RUN, +111,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.5,NOT RUN, +112,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.11,NOT RUN, +113,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.12,NOT RUN, +114,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.13,NOT RUN, +115,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.14,NOT RUN, +116,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.15,NOT RUN, +117,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.16,NOT RUN, +118,dc1-leaf1b,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, +119,dc1-leaf1b,NTP,Synchronised with NTP server,NTP,NOT RUN, +120,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, +121,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, +122,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, +123,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, +124,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, +125,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, +126,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, +127,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, +128,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, +129,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, +130,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, +131,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, +132,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, +133,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, +134,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, +135,dc1-leaf1c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +136,dc1-leaf1c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +137,dc1-leaf1c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +138,dc1-leaf1c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +139,dc1-leaf1c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - DC1-LEAF1A_Ethernet8,NOT RUN, +140,dc1-leaf1c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - DC1-LEAF1B_Ethernet8,NOT RUN, +141,dc1-leaf1c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc1-leaf1-server1_iLO,NOT RUN, +142,dc1-leaf1c,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel1 - DC1_L3_LEAF1_Po8,NOT RUN, +143,dc1-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet8,NOT RUN, +144,dc1-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf1b_Ethernet8,NOT RUN, +145,dc1-leaf1c,NTP,Synchronised with NTP server,NTP,NOT RUN, +146,dc1-leaf2a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +147,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,NOT RUN, +148,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,NOT RUN, +149,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,NOT RUN, +150,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.10,NOT RUN, +151,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.8,NOT RUN, +152,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.1,NOT RUN, +153,dc1-leaf2a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +154,dc1-leaf2a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +155,dc1-leaf2a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +156,dc1-leaf2a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +157,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet3,NOT RUN, +158,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet3,NOT RUN, +159,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc1-leaf2b_Ethernet3,NOT RUN, +160,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc1-leaf2b_Ethernet4,NOT RUN, +161,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc1-leaf2-server1_PCI1,NOT RUN, +162,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet6 - P2P_LINK_TO_dc2-leaf2a_Ethernet6,NOT RUN, +163,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC1-LEAF2C_Ethernet1,NOT RUN, +164,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +165,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, +166,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, +167,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, +168,dc1-leaf2a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc1-leaf2b_Po3,NOT RUN, +169,dc1-leaf2a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1,NOT RUN, +170,dc1-leaf2a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC1-LEAF2C_Po1,NOT RUN, +171,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, +172,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, +173,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, +174,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, +175,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, +176,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, +177,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, +178,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, +179,dc1-leaf2a,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, +180,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet1 - Destination: dc1-spine1_Ethernet3,NOT RUN, +181,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet2 - Destination: dc1-spine2_Ethernet3,NOT RUN, +182,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet6 - Destination: dc2-leaf2a_Ethernet6,NOT RUN, +183,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet3,NOT RUN, +184,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet3,NOT RUN, +185,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc2-leaf2a_Ethernet6,NOT RUN, +186,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf2c_Ethernet1,NOT RUN, +187,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.1,NOT RUN, +188,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.2,NOT RUN, +189,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.3,NOT RUN, +190,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.4,NOT RUN, +191,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.5,NOT RUN, +192,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.11,NOT RUN, +193,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.12,NOT RUN, +194,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.13,NOT RUN, +195,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.14,NOT RUN, +196,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.15,NOT RUN, +197,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.16,NOT RUN, +198,dc1-leaf2a,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, +199,dc1-leaf2a,NTP,Synchronised with NTP server,NTP,NOT RUN, +200,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, +201,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, +202,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, +203,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, +204,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, +205,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, +206,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, +207,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, +208,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, +209,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, +210,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, +211,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, +212,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, +213,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, +214,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, +215,dc1-leaf2c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +216,dc1-leaf2c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +217,dc1-leaf2c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +218,dc1-leaf2c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +219,dc1-leaf2c,Interface State,Ethernet Interface & Line Protocol == 'adminDown',Ethernet2 - DC1-LEAF2B_Ethernet8,NOT RUN, +220,dc1-leaf2c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - DC1-LEAF2A_Ethernet8,NOT RUN, +221,dc1-leaf2c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc1-leaf2-server1_iLO,NOT RUN, +222,dc1-leaf2c,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel1 - DC1_L3_LEAF2_Po8,NOT RUN, +223,dc1-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf2a_Ethernet8,NOT RUN, +224,dc1-leaf2c,NTP,Synchronised with NTP server,NTP,NOT RUN, +225,dc1-spine1,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +226,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.3,NOT RUN, +227,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.4,NOT RUN, +228,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,NOT RUN, +229,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.1,NOT RUN, +230,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.5,NOT RUN, +231,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.9,NOT RUN, +232,dc1-spine1,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +233,dc1-spine1,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +234,dc1-spine1,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +235,dc1-spine1,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +236,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == 'adminDown',Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet1,NOT RUN, +237,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet1,NOT RUN, +238,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet1,NOT RUN, +239,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet1,NOT RUN, +240,dc1-spine1,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +241,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet1 - Destination: dc1-leaf1a_Ethernet1,NOT RUN, +242,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet2 - Destination: dc1-leaf1b_Ethernet1,NOT RUN, +243,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet3 - Destination: dc1-leaf2a_Ethernet1,NOT RUN, +244,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet1,NOT RUN, +245,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf1b_Ethernet1,NOT RUN, +246,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2a_Ethernet1,NOT RUN, +247,dc1-spine1,NTP,Synchronised with NTP server,NTP,NOT RUN, +248,dc1-spine2,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +249,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.3,NOT RUN, +250,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.4,NOT RUN, +251,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,NOT RUN, +252,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.11,NOT RUN, +253,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.3,NOT RUN, +254,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.7,NOT RUN, +255,dc1-spine2,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +256,dc1-spine2,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +257,dc1-spine2,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +258,dc1-spine2,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +259,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == 'adminDown',Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet2,NOT RUN, +260,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet2,NOT RUN, +261,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet2,NOT RUN, +262,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet2,NOT RUN, +263,dc1-spine2,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +264,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet1 - Destination: dc1-leaf1a_Ethernet2,NOT RUN, +265,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet2 - Destination: dc1-leaf1b_Ethernet2,NOT RUN, +266,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet3 - Destination: dc1-leaf2a_Ethernet2,NOT RUN, +267,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet2,NOT RUN, +268,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf1b_Ethernet2,NOT RUN, +269,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2a_Ethernet2,NOT RUN, +270,dc1-spine2,NTP,Synchronised with NTP server,NTP,NOT RUN, +271,dc2-leaf1a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +272,dc2-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, +273,dc2-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, +274,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.117,NOT RUN, +275,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.104,NOT RUN, +276,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.106,NOT RUN, +277,dc2-leaf1a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +278,dc2-leaf1a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +279,dc2-leaf1a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +280,dc2-leaf1a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +281,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet1,NOT RUN, +282,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet1,NOT RUN, +283,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc2-leaf1b_Ethernet3,NOT RUN, +284,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc2-leaf1b_Ethernet4,NOT RUN, +285,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc2-leaf1-server1_PCI1,NOT RUN, +286,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC2-LEAF1C_Ethernet1,NOT RUN, +287,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +288,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, +289,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, +290,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, +291,dc2-leaf1a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc2-leaf1b_Po3,NOT RUN, +292,dc2-leaf1a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1,NOT RUN, +293,dc2-leaf1a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC2-LEAF1C_Po1,NOT RUN, +294,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, +295,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, +296,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, +297,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, +298,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, +299,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, +300,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, +301,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, +302,dc2-leaf1a,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, +303,dc2-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1a_Ethernet1 - Destination: dc2-spine1_Ethernet1,NOT RUN, +304,dc2-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1a_Ethernet2 - Destination: dc2-spine2_Ethernet1,NOT RUN, +305,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet1,NOT RUN, +306,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet1,NOT RUN, +307,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf1b_Ethernet3,NOT RUN, +308,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf1b_Ethernet4,NOT RUN, +309,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf1c_Ethernet1,NOT RUN, +310,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.1,NOT RUN, +311,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.2,NOT RUN, +312,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.3,NOT RUN, +313,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.4,NOT RUN, +314,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.5,NOT RUN, +315,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.11,NOT RUN, +316,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.12,NOT RUN, +317,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.13,NOT RUN, +318,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.14,NOT RUN, +319,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.15,NOT RUN, +320,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.16,NOT RUN, +321,dc2-leaf1a,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, +322,dc2-leaf1a,NTP,Synchronised with NTP server,NTP,NOT RUN, +323,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, +324,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, +325,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, +326,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, +327,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, +328,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, +329,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, +330,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, +331,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, +332,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, +333,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, +334,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, +335,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, +336,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, +337,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, +338,dc2-leaf1b,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +339,dc2-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, +340,dc2-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, +341,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.116,NOT RUN, +342,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.108,NOT RUN, +343,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.110,NOT RUN, +344,dc2-leaf1b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +345,dc2-leaf1b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +346,dc2-leaf1b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +347,dc2-leaf1b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +348,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet2,NOT RUN, +349,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet2,NOT RUN, +350,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc2-leaf1a_Ethernet3,NOT RUN, +351,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc2-leaf1a_Ethernet4,NOT RUN, +352,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc2-leaf1-server1_PCI2,NOT RUN, +353,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC2-LEAF1C_Ethernet2,NOT RUN, +354,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +355,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, +356,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, +357,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, +358,dc2-leaf1b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc2-leaf1a_Po3,NOT RUN, +359,dc2-leaf1b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1,NOT RUN, +360,dc2-leaf1b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC2-LEAF1C_Po1,NOT RUN, +361,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, +362,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, +363,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, +364,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, +365,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, +366,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, +367,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, +368,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, +369,dc2-leaf1b,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, +370,dc2-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1b_Ethernet1 - Destination: dc2-spine1_Ethernet2,NOT RUN, +371,dc2-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1b_Ethernet2 - Destination: dc2-spine2_Ethernet2,NOT RUN, +372,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet2,NOT RUN, +373,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet2,NOT RUN, +374,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf1a_Ethernet3,NOT RUN, +375,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf1a_Ethernet4,NOT RUN, +376,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf1c_Ethernet2,NOT RUN, +377,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.1,NOT RUN, +378,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.2,NOT RUN, +379,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.3,NOT RUN, +380,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.4,NOT RUN, +381,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.5,NOT RUN, +382,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.11,NOT RUN, +383,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.12,NOT RUN, +384,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.13,NOT RUN, +385,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.14,NOT RUN, +386,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.15,NOT RUN, +387,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.16,NOT RUN, +388,dc2-leaf1b,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, +389,dc2-leaf1b,NTP,Synchronised with NTP server,NTP,NOT RUN, +390,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, +391,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, +392,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, +393,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, +394,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, +395,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, +396,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, +397,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, +398,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, +399,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, +400,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, +401,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, +402,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, +403,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, +404,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, +405,dc2-leaf1c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +406,dc2-leaf1c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +407,dc2-leaf1c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +408,dc2-leaf1c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +409,dc2-leaf1c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - DC2-LEAF1A_Ethernet8,NOT RUN, +410,dc2-leaf1c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - DC2-LEAF1B_Ethernet8,NOT RUN, +411,dc2-leaf1c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc2-leaf1-server1_iLO,NOT RUN, +412,dc2-leaf1c,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel1 - DC2_L3_LEAF1_Po8,NOT RUN, +413,dc2-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet8,NOT RUN, +414,dc2-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet8,NOT RUN, +415,dc2-leaf1c,NTP,Synchronised with NTP server,NTP,NOT RUN, +416,dc2-leaf2a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +417,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,NOT RUN, +418,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, +419,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, +420,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.121,NOT RUN, +421,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.112,NOT RUN, +422,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.114,NOT RUN, +423,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.0,NOT RUN, +424,dc2-leaf2a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +425,dc2-leaf2a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +426,dc2-leaf2a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +427,dc2-leaf2a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +428,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet3,NOT RUN, +429,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet3,NOT RUN, +430,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc2-leaf2b_Ethernet3,NOT RUN, +431,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc2-leaf2b_Ethernet4,NOT RUN, +432,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc2-leaf2-server1_PCI1,NOT RUN, +433,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet6 - P2P_LINK_TO_dc1-leaf2a_Ethernet6,NOT RUN, +434,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC2-LEAF2C_Ethernet1,NOT RUN, +435,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +436,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, +437,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, +438,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, +439,dc2-leaf2a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc2-leaf2b_Po3,NOT RUN, +440,dc2-leaf2a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1,NOT RUN, +441,dc2-leaf2a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC2-LEAF2C_Po1,NOT RUN, +442,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, +443,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, +444,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, +445,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, +446,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, +447,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, +448,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, +449,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, +450,dc2-leaf2a,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, +451,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet1 - Destination: dc2-spine1_Ethernet3,NOT RUN, +452,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet2 - Destination: dc2-spine2_Ethernet3,NOT RUN, +453,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet6 - Destination: dc1-leaf2a_Ethernet6,NOT RUN, +454,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet3,NOT RUN, +455,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet3,NOT RUN, +456,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2b_Ethernet3,NOT RUN, +457,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet4,NOT RUN, +458,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc1-leaf2a_Ethernet6,NOT RUN, +459,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf2c_Ethernet1,NOT RUN, +460,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.1,NOT RUN, +461,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.2,NOT RUN, +462,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.3,NOT RUN, +463,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.4,NOT RUN, +464,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.5,NOT RUN, +465,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.11,NOT RUN, +466,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.12,NOT RUN, +467,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.13,NOT RUN, +468,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.14,NOT RUN, +469,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.15,NOT RUN, +470,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.16,NOT RUN, +471,dc2-leaf2a,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, +472,dc2-leaf2a,NTP,Synchronised with NTP server,NTP,NOT RUN, +473,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, +474,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, +475,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, +476,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, +477,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, +478,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, +479,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, +480,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, +481,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, +482,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, +483,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, +484,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, +485,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, +486,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, +487,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, +488,dc2-leaf2b,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +489,dc2-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, +490,dc2-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, +491,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.120,NOT RUN, +492,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.116,NOT RUN, +493,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.118,NOT RUN, +494,dc2-leaf2b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +495,dc2-leaf2b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +496,dc2-leaf2b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +497,dc2-leaf2b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +498,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet4,NOT RUN, +499,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet4,NOT RUN, +500,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc2-leaf2a_Ethernet3,NOT RUN, +501,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc2-leaf2a_Ethernet4,NOT RUN, +502,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc2-leaf2-server1_PCI2,NOT RUN, +503,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet6 - P2P_LINK_TO_dc1-leaf2b_Ethernet6,NOT RUN, +504,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC2-LEAF2C_Ethernet2,NOT RUN, +505,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +506,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, +507,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, +508,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, +509,dc2-leaf2b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc2-leaf2a_Po3,NOT RUN, +510,dc2-leaf2b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1,NOT RUN, +511,dc2-leaf2b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC2-LEAF2C_Po1,NOT RUN, +512,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, +513,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, +514,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, +515,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, +516,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, +517,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, +518,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, +519,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, +520,dc2-leaf2b,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, +521,dc2-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2b_Ethernet1 - Destination: dc2-spine1_Ethernet4,NOT RUN, +522,dc2-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2b_Ethernet2 - Destination: dc2-spine2_Ethernet4,NOT RUN, +523,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet4,NOT RUN, +524,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet4,NOT RUN, +525,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet3,NOT RUN, +526,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2a_Ethernet4,NOT RUN, +527,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf2c_Ethernet2,NOT RUN, +528,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.1,NOT RUN, +529,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.2,NOT RUN, +530,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.3,NOT RUN, +531,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.4,NOT RUN, +532,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.5,NOT RUN, +533,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.11,NOT RUN, +534,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.12,NOT RUN, +535,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.13,NOT RUN, +536,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.14,NOT RUN, +537,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.15,NOT RUN, +538,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.16,NOT RUN, +539,dc2-leaf2b,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, +540,dc2-leaf2b,NTP,Synchronised with NTP server,NTP,NOT RUN, +541,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, +542,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, +543,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, +544,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, +545,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, +546,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, +547,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, +548,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, +549,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, +550,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, +551,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, +552,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, +553,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, +554,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, +555,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, +556,dc2-leaf2c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +557,dc2-leaf2c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +558,dc2-leaf2c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +559,dc2-leaf2c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +560,dc2-leaf2c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - DC2-LEAF2A_Ethernet8,NOT RUN, +561,dc2-leaf2c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - DC2-LEAF2B_Ethernet8,NOT RUN, +562,dc2-leaf2c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc2-leaf2-server1_iLO,NOT RUN, +563,dc2-leaf2c,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel1 - DC2_L3_LEAF2_Po8,NOT RUN, +564,dc2-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf2a_Ethernet8,NOT RUN, +565,dc2-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf2b_Ethernet8,NOT RUN, +566,dc2-leaf2c,NTP,Synchronised with NTP server,NTP,NOT RUN, +567,dc2-spine1,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +568,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.13,NOT RUN, +569,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.14,NOT RUN, +570,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,NOT RUN, +571,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.16,NOT RUN, +572,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.105,NOT RUN, +573,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.109,NOT RUN, +574,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.113,NOT RUN, +575,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.117,NOT RUN, +576,dc2-spine1,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +577,dc2-spine1,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +578,dc2-spine1,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +579,dc2-spine1,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +580,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet1,NOT RUN, +581,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet1,NOT RUN, +582,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet1,NOT RUN, +583,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet1,NOT RUN, +584,dc2-spine1,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +585,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet1 - Destination: dc2-leaf1a_Ethernet1,NOT RUN, +586,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet2 - Destination: dc2-leaf1b_Ethernet1,NOT RUN, +587,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet3 - Destination: dc2-leaf2a_Ethernet1,NOT RUN, +588,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet4 - Destination: dc2-leaf2b_Ethernet1,NOT RUN, +589,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet1,NOT RUN, +590,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet1,NOT RUN, +591,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet1,NOT RUN, +592,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet1,NOT RUN, +593,dc2-spine1,NTP,Synchronised with NTP server,NTP,NOT RUN, +594,dc2-spine2,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +595,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.13,NOT RUN, +596,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.14,NOT RUN, +597,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,NOT RUN, +598,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.16,NOT RUN, +599,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.107,NOT RUN, +600,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.111,NOT RUN, +601,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.115,NOT RUN, +602,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.119,NOT RUN, +603,dc2-spine2,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +604,dc2-spine2,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +605,dc2-spine2,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +606,dc2-spine2,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +607,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet2,NOT RUN, +608,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet2,NOT RUN, +609,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet2,NOT RUN, +610,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet2,NOT RUN, +611,dc2-spine2,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +612,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet1 - Destination: dc2-leaf1a_Ethernet2,NOT RUN, +613,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet2 - Destination: dc2-leaf1b_Ethernet2,NOT RUN, +614,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet3 - Destination: dc2-leaf2a_Ethernet2,NOT RUN, +615,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet4 - Destination: dc2-leaf2b_Ethernet2,NOT RUN, +616,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet2,NOT RUN, +617,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet2,NOT RUN, +618,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet2,NOT RUN, +619,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet2,NOT RUN, +620,dc2-spine2,NTP,Synchronised with NTP server,NTP,NOT RUN, diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.md b/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.md index d17a470b560..8984470eb57 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.md +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.md @@ -13,669 +13,645 @@ | Total Tests | Total Tests Passed | Total Tests Failed | Total Tests Skipped | | ----------- | ------------------ | ------------------ | ------------------- | -| 620 | 0 | 0 | 620 | +| 620 | 0 | 0 | 0 | ### Summary Totals Devices Under Tests | DUT | Total Tests | Tests Passed | Tests Failed | Tests Skipped | Categories Failed | Categories Skipped | | --- | ----------- | ------------ | ------------ | ------------- | ----------------- | ------------------ | -| dc1-leaf1a | 67 | 0 | 0 | 67 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | -| dc1-leaf1b | 67 | 0 | 0 | 67 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | -| dc1-leaf1c | 11 | 0 | 0 | 11 | | Hardware, Interface State, LLDP Topology, NTP | -| dc1-leaf2a | 69 | 0 | 0 | 69 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | -| dc1-leaf2c | 10 | 0 | 0 | 10 | | Hardware, Interface State, LLDP Topology, NTP | -| dc1-spine1 | 23 | 0 | 0 | 23 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, NTP | -| dc1-spine2 | 23 | 0 | 0 | 23 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, NTP | -| dc2-leaf1a | 67 | 0 | 0 | 67 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | -| dc2-leaf1b | 67 | 0 | 0 | 67 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | -| dc2-leaf1c | 11 | 0 | 0 | 11 | | Hardware, Interface State, LLDP Topology, NTP | -| dc2-leaf2a | 72 | 0 | 0 | 72 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | -| dc2-leaf2b | 68 | 0 | 0 | 68 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, Loopback0 Reachability, MLAG, NTP, Routing Table | -| dc2-leaf2c | 11 | 0 | 0 | 11 | | Hardware, Interface State, LLDP Topology, NTP | -| dc2-spine1 | 27 | 0 | 0 | 27 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, NTP | -| dc2-spine2 | 27 | 0 | 0 | 27 | | BGP, Hardware, IP Reachability, Interface State, LLDP Topology, NTP | ### Summary Totals Per Category | Test Category | Total Tests | Tests Passed | Tests Failed | Tests Skipped | | ------------- | ----------- | ------------ | ------------ | ------------- | -| BGP | 77 | 0 | 0 | 77 | -| Hardware | 60 | 0 | 0 | 60 | -| IP Reachability | 30 | 0 | 0 | 30 | -| Interface State | 193 | 0 | 0 | 193 | -| LLDP Topology | 56 | 0 | 0 | 56 | -| Loopback0 Reachability | 77 | 0 | 0 | 77 | -| MLAG | 7 | 0 | 0 | 7 | -| NTP | 15 | 0 | 0 | 15 | -| Routing Table | 105 | 0 | 0 | 105 | ## Failed Test Results Summary -| Test ID | Node | Test Category | Test Description | Test | Test Result | Failure Reasons | -| ------- | ---- | ------------- | ---------------- | ---- | ----------- | --------------- | +| Test ID | Node | Test Categories | Test Description | Test | Test Result | Failure Reasons | +| ------- | ---- | --------------- | ---------------- | ---- | ----------- | --------------- | ## All Test Results -| Test ID | Node | Test Category | Test Description | Test | Test Result | Failure Reasons | -| ------- | ---- | ------------- | ---------------- | ---- | ----------- | --------------- | -| 1 | dc1-leaf1a | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | -| 2 | dc1-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | SKIPPED | Dry run! | -| 3 | dc1-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | SKIPPED | Dry run! | -| 4 | dc1-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.1.97 | SKIPPED | Dry run! | -| 5 | dc1-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.0 | SKIPPED | Dry run! | -| 6 | dc1-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.2 | SKIPPED | Dry run! | -| 7 | dc1-leaf1a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | -| 8 | dc1-leaf1a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | -| 9 | dc1-leaf1a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | -| 10 | dc1-leaf1a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | -| 11 | dc1-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1a_Ethernet1 - Destination: dc1-spine1_Ethernet1 | SKIPPED | Dry run! | -| 12 | dc1-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1a_Ethernet2 - Destination: dc1-spine2_Ethernet1 | SKIPPED | Dry run! | -| 13 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet1 | SKIPPED | Dry run! | -| 14 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet1 | SKIPPED | Dry run! | -| 15 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc1-leaf1b_Ethernet3 | SKIPPED | Dry run! | -| 16 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc1-leaf1b_Ethernet4 | SKIPPED | Dry run! | -| 17 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc1-leaf1-server1_PCI1 | SKIPPED | Dry run! | -| 18 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC1-LEAF1C_Ethernet1 | SKIPPED | Dry run! | -| 19 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | -| 20 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | -| 21 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | -| 22 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | -| 23 | dc1-leaf1a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc1-leaf1b_Po3 | SKIPPED | Dry run! | -| 24 | dc1-leaf1a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1 | SKIPPED | Dry run! | -| 25 | dc1-leaf1a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC1-LEAF1C_Po1 | SKIPPED | Dry run! | -| 26 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | -| 27 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | -| 28 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | -| 29 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | -| 30 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | -| 31 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | -| 32 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | -| 33 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | -| 34 | dc1-leaf1a | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | -| 35 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet1 | SKIPPED | Dry run! | -| 36 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet1 | SKIPPED | Dry run! | -| 37 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf1b_Ethernet3 | SKIPPED | Dry run! | -| 38 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc1-leaf1b_Ethernet4 | SKIPPED | Dry run! | -| 39 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf1c_Ethernet1 | SKIPPED | Dry run! | -| 40 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | -| 41 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | -| 42 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | -| 43 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | -| 44 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | -| 45 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | -| 46 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | -| 47 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | -| 48 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | -| 49 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | -| 50 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | -| 51 | dc1-leaf1a | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | -| 52 | dc1-leaf1a | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | -| 53 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | -| 54 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | -| 55 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | -| 56 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | -| 57 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | -| 58 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | -| 59 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | -| 60 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | -| 61 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | -| 62 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | -| 63 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | -| 64 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | -| 65 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | -| 66 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | -| 67 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | -| 68 | dc1-leaf1b | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | -| 69 | dc1-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | SKIPPED | Dry run! | -| 70 | dc1-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | SKIPPED | Dry run! | -| 71 | dc1-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.1.96 | SKIPPED | Dry run! | -| 72 | dc1-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.4 | SKIPPED | Dry run! | -| 73 | dc1-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.6 | SKIPPED | Dry run! | -| 74 | dc1-leaf1b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | -| 75 | dc1-leaf1b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | -| 76 | dc1-leaf1b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | -| 77 | dc1-leaf1b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | -| 78 | dc1-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1b_Ethernet1 - Destination: dc1-spine1_Ethernet2 | SKIPPED | Dry run! | -| 79 | dc1-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1b_Ethernet2 - Destination: dc1-spine2_Ethernet2 | SKIPPED | Dry run! | -| 80 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet2 | SKIPPED | Dry run! | -| 81 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet2 | SKIPPED | Dry run! | -| 82 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc1-leaf1a_Ethernet3 | SKIPPED | Dry run! | -| 83 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc1-leaf1a_Ethernet4 | SKIPPED | Dry run! | -| 84 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc1-leaf1-server1_PCI2 | SKIPPED | Dry run! | -| 85 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC1-LEAF1C_Ethernet2 | SKIPPED | Dry run! | -| 86 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | -| 87 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | -| 88 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | -| 89 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | -| 90 | dc1-leaf1b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc1-leaf1a_Po3 | SKIPPED | Dry run! | -| 91 | dc1-leaf1b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1 | SKIPPED | Dry run! | -| 92 | dc1-leaf1b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC1-LEAF1C_Po1 | SKIPPED | Dry run! | -| 93 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | -| 94 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | -| 95 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | -| 96 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | -| 97 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | -| 98 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | -| 99 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | -| 100 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | -| 101 | dc1-leaf1b | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | -| 102 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet2 | SKIPPED | Dry run! | -| 103 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet2 | SKIPPED | Dry run! | -| 104 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf1a_Ethernet3 | SKIPPED | Dry run! | -| 105 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc1-leaf1a_Ethernet4 | SKIPPED | Dry run! | -| 106 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf1c_Ethernet2 | SKIPPED | Dry run! | -| 107 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | -| 108 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | -| 109 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | -| 110 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | -| 111 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | -| 112 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | -| 113 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | -| 114 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | -| 115 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | -| 116 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | -| 117 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | -| 118 | dc1-leaf1b | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | -| 119 | dc1-leaf1b | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | -| 120 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | -| 121 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | -| 122 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | -| 123 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | -| 124 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | -| 125 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | -| 126 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | -| 127 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | -| 128 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | -| 129 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | -| 130 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | -| 131 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | -| 132 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | -| 133 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | -| 134 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | -| 135 | dc1-leaf1c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | -| 136 | dc1-leaf1c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | -| 137 | dc1-leaf1c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | -| 138 | dc1-leaf1c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | -| 139 | dc1-leaf1c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - DC1-LEAF1A_Ethernet8 | SKIPPED | Dry run! | -| 140 | dc1-leaf1c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - DC1-LEAF1B_Ethernet8 | SKIPPED | Dry run! | -| 141 | dc1-leaf1c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc1-leaf1-server1_iLO | SKIPPED | Dry run! | -| 142 | dc1-leaf1c | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel1 - DC1_L3_LEAF1_Po8 | SKIPPED | Dry run! | -| 143 | dc1-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf1a_Ethernet8 | SKIPPED | Dry run! | -| 144 | dc1-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-leaf1b_Ethernet8 | SKIPPED | Dry run! | -| 145 | dc1-leaf1c | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | -| 146 | dc1-leaf2a | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | -| 147 | dc1-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | SKIPPED | Dry run! | -| 148 | dc1-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | SKIPPED | Dry run! | -| 149 | dc1-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.15 | SKIPPED | Dry run! | -| 150 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.10 | SKIPPED | Dry run! | -| 151 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.8 | SKIPPED | Dry run! | -| 152 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 192.168.100.1 | SKIPPED | Dry run! | -| 153 | dc1-leaf2a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | -| 154 | dc1-leaf2a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | -| 155 | dc1-leaf2a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | -| 156 | dc1-leaf2a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | -| 157 | dc1-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2a_Ethernet1 - Destination: dc1-spine1_Ethernet3 | SKIPPED | Dry run! | -| 158 | dc1-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2a_Ethernet2 - Destination: dc1-spine2_Ethernet3 | SKIPPED | Dry run! | -| 159 | dc1-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2a_Ethernet6 - Destination: dc2-leaf2a_Ethernet6 | SKIPPED | Dry run! | -| 160 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet3 | SKIPPED | Dry run! | -| 161 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet3 | SKIPPED | Dry run! | -| 162 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc1-leaf2b_Ethernet3 | SKIPPED | Dry run! | -| 163 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc1-leaf2b_Ethernet4 | SKIPPED | Dry run! | -| 164 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc1-leaf2-server1_PCI1 | SKIPPED | Dry run! | -| 165 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet6 - P2P_LINK_TO_dc2-leaf2a_Ethernet6 | SKIPPED | Dry run! | -| 166 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC1-LEAF2C_Ethernet1 | SKIPPED | Dry run! | -| 167 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | -| 168 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | -| 169 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | -| 170 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | -| 171 | dc1-leaf2a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc1-leaf2b_Po3 | SKIPPED | Dry run! | -| 172 | dc1-leaf2a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1 | SKIPPED | Dry run! | -| 173 | dc1-leaf2a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC1-LEAF2C_Po1 | SKIPPED | Dry run! | -| 174 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | -| 175 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | -| 176 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | -| 177 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | -| 178 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | -| 179 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | -| 180 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | -| 181 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | -| 182 | dc1-leaf2a | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | -| 183 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet3 | SKIPPED | Dry run! | -| 184 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet3 | SKIPPED | Dry run! | -| 185 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet6 - remote: dc2-leaf2a_Ethernet6 | SKIPPED | Dry run! | -| 186 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf2c_Ethernet1 | SKIPPED | Dry run! | -| 187 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | -| 188 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | -| 189 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | -| 190 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | -| 191 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | -| 192 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | -| 193 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | -| 194 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | -| 195 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | -| 196 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | -| 197 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | -| 198 | dc1-leaf2a | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | -| 199 | dc1-leaf2a | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | -| 200 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | -| 201 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | -| 202 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | -| 203 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | -| 204 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | -| 205 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | -| 206 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | -| 207 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | -| 208 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | -| 209 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | -| 210 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | -| 211 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | -| 212 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | -| 213 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | -| 214 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | -| 215 | dc1-leaf2c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | -| 216 | dc1-leaf2c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | -| 217 | dc1-leaf2c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | -| 218 | dc1-leaf2c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | -| 219 | dc1-leaf2c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - DC1-LEAF2A_Ethernet8 | SKIPPED | Dry run! | -| 220 | dc1-leaf2c | Interface State | Ethernet Interface & Line Protocol == \"adminDown\" | Ethernet2 - DC1-LEAF2B_Ethernet8 | SKIPPED | Dry run! | -| 221 | dc1-leaf2c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc1-leaf2-server1_iLO | SKIPPED | Dry run! | -| 222 | dc1-leaf2c | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel1 - DC1_L3_LEAF2_Po8 | SKIPPED | Dry run! | -| 223 | dc1-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf2a_Ethernet8 | SKIPPED | Dry run! | -| 224 | dc1-leaf2c | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | -| 225 | dc1-spine1 | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | -| 226 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.3 | SKIPPED | Dry run! | -| 227 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.4 | SKIPPED | Dry run! | -| 228 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.5 | SKIPPED | Dry run! | -| 229 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.1 | SKIPPED | Dry run! | -| 230 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.5 | SKIPPED | Dry run! | -| 231 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.9 | SKIPPED | Dry run! | -| 232 | dc1-spine1 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | -| 233 | dc1-spine1 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | -| 234 | dc1-spine1 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | -| 235 | dc1-spine1 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | -| 236 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet1 - Destination: dc1-leaf1a_Ethernet1 | SKIPPED | Dry run! | -| 237 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet2 - Destination: dc1-leaf1b_Ethernet1 | SKIPPED | Dry run! | -| 238 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet3 - Destination: dc1-leaf2a_Ethernet1 | SKIPPED | Dry run! | -| 239 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet1 | SKIPPED | Dry run! | -| 240 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet1 | SKIPPED | Dry run! | -| 241 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet1 | SKIPPED | Dry run! | -| 242 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == \"adminDown\" | Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet1 | SKIPPED | Dry run! | -| 243 | dc1-spine1 | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | -| 244 | dc1-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf1a_Ethernet1 | SKIPPED | Dry run! | -| 245 | dc1-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-leaf1b_Ethernet1 | SKIPPED | Dry run! | -| 246 | dc1-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf2a_Ethernet1 | SKIPPED | Dry run! | -| 247 | dc1-spine1 | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | -| 248 | dc1-spine2 | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | -| 249 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.3 | SKIPPED | Dry run! | -| 250 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.4 | SKIPPED | Dry run! | -| 251 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.5 | SKIPPED | Dry run! | -| 252 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.11 | SKIPPED | Dry run! | -| 253 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.3 | SKIPPED | Dry run! | -| 254 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.7 | SKIPPED | Dry run! | -| 255 | dc1-spine2 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | -| 256 | dc1-spine2 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | -| 257 | dc1-spine2 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | -| 258 | dc1-spine2 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | -| 259 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet1 - Destination: dc1-leaf1a_Ethernet2 | SKIPPED | Dry run! | -| 260 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet2 - Destination: dc1-leaf1b_Ethernet2 | SKIPPED | Dry run! | -| 261 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet3 - Destination: dc1-leaf2a_Ethernet2 | SKIPPED | Dry run! | -| 262 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet2 | SKIPPED | Dry run! | -| 263 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet2 | SKIPPED | Dry run! | -| 264 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet2 | SKIPPED | Dry run! | -| 265 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == \"adminDown\" | Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet2 | SKIPPED | Dry run! | -| 266 | dc1-spine2 | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | -| 267 | dc1-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf1a_Ethernet2 | SKIPPED | Dry run! | -| 268 | dc1-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-leaf1b_Ethernet2 | SKIPPED | Dry run! | -| 269 | dc1-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf2a_Ethernet2 | SKIPPED | Dry run! | -| 270 | dc1-spine2 | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | -| 271 | dc2-leaf1a | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | -| 272 | dc2-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | SKIPPED | Dry run! | -| 273 | dc2-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | SKIPPED | Dry run! | -| 274 | dc2-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.117 | SKIPPED | Dry run! | -| 275 | dc2-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.104 | SKIPPED | Dry run! | -| 276 | dc2-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.106 | SKIPPED | Dry run! | -| 277 | dc2-leaf1a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | -| 278 | dc2-leaf1a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | -| 279 | dc2-leaf1a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | -| 280 | dc2-leaf1a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | -| 281 | dc2-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1a_Ethernet1 - Destination: dc2-spine1_Ethernet1 | SKIPPED | Dry run! | -| 282 | dc2-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1a_Ethernet2 - Destination: dc2-spine2_Ethernet1 | SKIPPED | Dry run! | -| 283 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet1 | SKIPPED | Dry run! | -| 284 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet1 | SKIPPED | Dry run! | -| 285 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc2-leaf1b_Ethernet3 | SKIPPED | Dry run! | -| 286 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc2-leaf1b_Ethernet4 | SKIPPED | Dry run! | -| 287 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc2-leaf1-server1_PCI1 | SKIPPED | Dry run! | -| 288 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC2-LEAF1C_Ethernet1 | SKIPPED | Dry run! | -| 289 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | -| 290 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | -| 291 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | -| 292 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | -| 293 | dc2-leaf1a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc2-leaf1b_Po3 | SKIPPED | Dry run! | -| 294 | dc2-leaf1a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1 | SKIPPED | Dry run! | -| 295 | dc2-leaf1a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC2-LEAF1C_Po1 | SKIPPED | Dry run! | -| 296 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | -| 297 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | -| 298 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | -| 299 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | -| 300 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | -| 301 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | -| 302 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | -| 303 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | -| 304 | dc2-leaf1a | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | -| 305 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet1 | SKIPPED | Dry run! | -| 306 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet1 | SKIPPED | Dry run! | -| 307 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf1b_Ethernet3 | SKIPPED | Dry run! | -| 308 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf1b_Ethernet4 | SKIPPED | Dry run! | -| 309 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf1c_Ethernet1 | SKIPPED | Dry run! | -| 310 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | -| 311 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | -| 312 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | -| 313 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | -| 314 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | -| 315 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | -| 316 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | -| 317 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | -| 318 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | -| 319 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | -| 320 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | -| 321 | dc2-leaf1a | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | -| 322 | dc2-leaf1a | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | -| 323 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | -| 324 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | -| 325 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | -| 326 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | -| 327 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | -| 328 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | -| 329 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | -| 330 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | -| 331 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | -| 332 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | -| 333 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | -| 334 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | -| 335 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | -| 336 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | -| 337 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | -| 338 | dc2-leaf1b | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | -| 339 | dc2-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | SKIPPED | Dry run! | -| 340 | dc2-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | SKIPPED | Dry run! | -| 341 | dc2-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.116 | SKIPPED | Dry run! | -| 342 | dc2-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.108 | SKIPPED | Dry run! | -| 343 | dc2-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.110 | SKIPPED | Dry run! | -| 344 | dc2-leaf1b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | -| 345 | dc2-leaf1b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | -| 346 | dc2-leaf1b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | -| 347 | dc2-leaf1b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | -| 348 | dc2-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1b_Ethernet1 - Destination: dc2-spine1_Ethernet2 | SKIPPED | Dry run! | -| 349 | dc2-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1b_Ethernet2 - Destination: dc2-spine2_Ethernet2 | SKIPPED | Dry run! | -| 350 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet2 | SKIPPED | Dry run! | -| 351 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet2 | SKIPPED | Dry run! | -| 352 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc2-leaf1a_Ethernet3 | SKIPPED | Dry run! | -| 353 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc2-leaf1a_Ethernet4 | SKIPPED | Dry run! | -| 354 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc2-leaf1-server1_PCI2 | SKIPPED | Dry run! | -| 355 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC2-LEAF1C_Ethernet2 | SKIPPED | Dry run! | -| 356 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | -| 357 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | -| 358 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | -| 359 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | -| 360 | dc2-leaf1b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc2-leaf1a_Po3 | SKIPPED | Dry run! | -| 361 | dc2-leaf1b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1 | SKIPPED | Dry run! | -| 362 | dc2-leaf1b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC2-LEAF1C_Po1 | SKIPPED | Dry run! | -| 363 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | -| 364 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | -| 365 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | -| 366 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | -| 367 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | -| 368 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | -| 369 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | -| 370 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | -| 371 | dc2-leaf1b | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | -| 372 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet2 | SKIPPED | Dry run! | -| 373 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet2 | SKIPPED | Dry run! | -| 374 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf1a_Ethernet3 | SKIPPED | Dry run! | -| 375 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf1a_Ethernet4 | SKIPPED | Dry run! | -| 376 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf1c_Ethernet2 | SKIPPED | Dry run! | -| 377 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | -| 378 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | -| 379 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | -| 380 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | -| 381 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | -| 382 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | -| 383 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | -| 384 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | -| 385 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | -| 386 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | -| 387 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | -| 388 | dc2-leaf1b | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | -| 389 | dc2-leaf1b | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | -| 390 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | -| 391 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | -| 392 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | -| 393 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | -| 394 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | -| 395 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | -| 396 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | -| 397 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | -| 398 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | -| 399 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | -| 400 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | -| 401 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | -| 402 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | -| 403 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | -| 404 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | -| 405 | dc2-leaf1c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | -| 406 | dc2-leaf1c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | -| 407 | dc2-leaf1c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | -| 408 | dc2-leaf1c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | -| 409 | dc2-leaf1c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - DC2-LEAF1A_Ethernet8 | SKIPPED | Dry run! | -| 410 | dc2-leaf1c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - DC2-LEAF1B_Ethernet8 | SKIPPED | Dry run! | -| 411 | dc2-leaf1c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc2-leaf1-server1_iLO | SKIPPED | Dry run! | -| 412 | dc2-leaf1c | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel1 - DC2_L3_LEAF1_Po8 | SKIPPED | Dry run! | -| 413 | dc2-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf1a_Ethernet8 | SKIPPED | Dry run! | -| 414 | dc2-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf1b_Ethernet8 | SKIPPED | Dry run! | -| 415 | dc2-leaf1c | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | -| 416 | dc2-leaf2a | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | -| 417 | dc2-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.5 | SKIPPED | Dry run! | -| 418 | dc2-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | SKIPPED | Dry run! | -| 419 | dc2-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | SKIPPED | Dry run! | -| 420 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.121 | SKIPPED | Dry run! | -| 421 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.112 | SKIPPED | Dry run! | -| 422 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.114 | SKIPPED | Dry run! | -| 423 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 192.168.100.0 | SKIPPED | Dry run! | -| 424 | dc2-leaf2a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | -| 425 | dc2-leaf2a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | -| 426 | dc2-leaf2a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | -| 427 | dc2-leaf2a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | -| 428 | dc2-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2a_Ethernet1 - Destination: dc2-spine1_Ethernet3 | SKIPPED | Dry run! | -| 429 | dc2-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2a_Ethernet2 - Destination: dc2-spine2_Ethernet3 | SKIPPED | Dry run! | -| 430 | dc2-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2a_Ethernet6 - Destination: dc1-leaf2a_Ethernet6 | SKIPPED | Dry run! | -| 431 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet3 | SKIPPED | Dry run! | -| 432 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet3 | SKIPPED | Dry run! | -| 433 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc2-leaf2b_Ethernet3 | SKIPPED | Dry run! | -| 434 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc2-leaf2b_Ethernet4 | SKIPPED | Dry run! | -| 435 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc2-leaf2-server1_PCI1 | SKIPPED | Dry run! | -| 436 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet6 - P2P_LINK_TO_dc1-leaf2a_Ethernet6 | SKIPPED | Dry run! | -| 437 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC2-LEAF2C_Ethernet1 | SKIPPED | Dry run! | -| 438 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | -| 439 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | -| 440 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | -| 441 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | -| 442 | dc2-leaf2a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc2-leaf2b_Po3 | SKIPPED | Dry run! | -| 443 | dc2-leaf2a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1 | SKIPPED | Dry run! | -| 444 | dc2-leaf2a | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC2-LEAF2C_Po1 | SKIPPED | Dry run! | -| 445 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | -| 446 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | -| 447 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | -| 448 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | -| 449 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | -| 450 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | -| 451 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | -| 452 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | -| 453 | dc2-leaf2a | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | -| 454 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet3 | SKIPPED | Dry run! | -| 455 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet3 | SKIPPED | Dry run! | -| 456 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2b_Ethernet3 | SKIPPED | Dry run! | -| 457 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2b_Ethernet4 | SKIPPED | Dry run! | -| 458 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet6 - remote: dc1-leaf2a_Ethernet6 | SKIPPED | Dry run! | -| 459 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf2c_Ethernet1 | SKIPPED | Dry run! | -| 460 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | -| 461 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | -| 462 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | -| 463 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | -| 464 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | -| 465 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | -| 466 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | -| 467 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | -| 468 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | -| 469 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | -| 470 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | -| 471 | dc2-leaf2a | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | -| 472 | dc2-leaf2a | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | -| 473 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | -| 474 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | -| 475 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | -| 476 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | -| 477 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | -| 478 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | -| 479 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | -| 480 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | -| 481 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | -| 482 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | -| 483 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | -| 484 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | -| 485 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | -| 486 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | -| 487 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | -| 488 | dc2-leaf2b | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | -| 489 | dc2-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | SKIPPED | Dry run! | -| 490 | dc2-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | SKIPPED | Dry run! | -| 491 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.120 | SKIPPED | Dry run! | -| 492 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.116 | SKIPPED | Dry run! | -| 493 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.118 | SKIPPED | Dry run! | -| 494 | dc2-leaf2b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | -| 495 | dc2-leaf2b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | -| 496 | dc2-leaf2b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | -| 497 | dc2-leaf2b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | -| 498 | dc2-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2b_Ethernet1 - Destination: dc2-spine1_Ethernet4 | SKIPPED | Dry run! | -| 499 | dc2-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2b_Ethernet2 - Destination: dc2-spine2_Ethernet4 | SKIPPED | Dry run! | -| 500 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet4 | SKIPPED | Dry run! | -| 501 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet4 | SKIPPED | Dry run! | -| 502 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - MLAG_PEER_dc2-leaf2a_Ethernet3 | SKIPPED | Dry run! | -| 503 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - MLAG_PEER_dc2-leaf2a_Ethernet4 | SKIPPED | Dry run! | -| 504 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc2-leaf2-server1_PCI2 | SKIPPED | Dry run! | -| 505 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet6 - P2P_LINK_TO_dc1-leaf2b_Ethernet6 | SKIPPED | Dry run! | -| 506 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet8 - DC2-LEAF2C_Ethernet2 | SKIPPED | Dry run! | -| 507 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | -| 508 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback1 - VTEP_VXLAN_Tunnel_Source | SKIPPED | Dry run! | -| 509 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback10 - VRF10_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | -| 510 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback11 - VRF11_VTEP_DIAGNOSTICS | SKIPPED | Dry run! | -| 511 | dc2-leaf2b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel3 - MLAG_PEER_dc2-leaf2a_Po3 | SKIPPED | Dry run! | -| 512 | dc2-leaf2b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1 | SKIPPED | Dry run! | -| 513 | dc2-leaf2b | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel8 - DC2-LEAF2C_Po1 | SKIPPED | Dry run! | -| 514 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan11 - VRF10_VLAN11 | SKIPPED | Dry run! | -| 515 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan12 - VRF10_VLAN12 | SKIPPED | Dry run! | -| 516 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan21 - VRF11_VLAN21 | SKIPPED | Dry run! | -| 517 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan22 - VRF11_VLAN22 | SKIPPED | Dry run! | -| 518 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | SKIPPED | Dry run! | -| 519 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | SKIPPED | Dry run! | -| 520 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4093 - MLAG_PEER_L3_PEERING | SKIPPED | Dry run! | -| 521 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == \"up\" | Vlan4094 - MLAG_PEER | SKIPPED | Dry run! | -| 522 | dc2-leaf2b | Interface State | Vxlan Interface Status & Line Protocol == \"up\" | Vxlan1 | SKIPPED | Dry run! | -| 523 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet4 | SKIPPED | Dry run! | -| 524 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet4 | SKIPPED | Dry run! | -| 525 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2a_Ethernet3 | SKIPPED | Dry run! | -| 526 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2a_Ethernet4 | SKIPPED | Dry run! | -| 527 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf2c_Ethernet2 | SKIPPED | Dry run! | -| 528 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.1 | SKIPPED | Dry run! | -| 529 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.2 | SKIPPED | Dry run! | -| 530 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.3 | SKIPPED | Dry run! | -| 531 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.4 | SKIPPED | Dry run! | -| 532 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.5 | SKIPPED | Dry run! | -| 533 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.11 | SKIPPED | Dry run! | -| 534 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.12 | SKIPPED | Dry run! | -| 535 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.13 | SKIPPED | Dry run! | -| 536 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.14 | SKIPPED | Dry run! | -| 537 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.15 | SKIPPED | Dry run! | -| 538 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.16 | SKIPPED | Dry run! | -| 539 | dc2-leaf2b | MLAG | MLAG State active & Status connected | MLAG | SKIPPED | Dry run! | -| 540 | dc2-leaf2b | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | -| 541 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.1 | SKIPPED | Dry run! | -| 542 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.2 | SKIPPED | Dry run! | -| 543 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.3 | SKIPPED | Dry run! | -| 544 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.4 | SKIPPED | Dry run! | -| 545 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.5 | SKIPPED | Dry run! | -| 546 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.1.3 | SKIPPED | Dry run! | -| 547 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.1.5 | SKIPPED | Dry run! | -| 548 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.11 | SKIPPED | Dry run! | -| 549 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.12 | SKIPPED | Dry run! | -| 550 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.13 | SKIPPED | Dry run! | -| 551 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.14 | SKIPPED | Dry run! | -| 552 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.15 | SKIPPED | Dry run! | -| 553 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.16 | SKIPPED | Dry run! | -| 554 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.129.13 | SKIPPED | Dry run! | -| 555 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.129.15 | SKIPPED | Dry run! | -| 556 | dc2-leaf2c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | -| 557 | dc2-leaf2c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | -| 558 | dc2-leaf2c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | -| 559 | dc2-leaf2c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | -| 560 | dc2-leaf2c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - DC2-LEAF2A_Ethernet8 | SKIPPED | Dry run! | -| 561 | dc2-leaf2c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - DC2-LEAF2B_Ethernet8 | SKIPPED | Dry run! | -| 562 | dc2-leaf2c | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet5 - dc2-leaf2-server1_iLO | SKIPPED | Dry run! | -| 563 | dc2-leaf2c | Interface State | Port-Channel Interface & Line Protocol == \"up\" | Port-Channel1 - DC2_L3_LEAF2_Po8 | SKIPPED | Dry run! | -| 564 | dc2-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf2a_Ethernet8 | SKIPPED | Dry run! | -| 565 | dc2-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf2b_Ethernet8 | SKIPPED | Dry run! | -| 566 | dc2-leaf2c | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | -| 567 | dc2-spine1 | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | -| 568 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.13 | SKIPPED | Dry run! | -| 569 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.14 | SKIPPED | Dry run! | -| 570 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.15 | SKIPPED | Dry run! | -| 571 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.16 | SKIPPED | Dry run! | -| 572 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.105 | SKIPPED | Dry run! | -| 573 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.109 | SKIPPED | Dry run! | -| 574 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.113 | SKIPPED | Dry run! | -| 575 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.117 | SKIPPED | Dry run! | -| 576 | dc2-spine1 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | -| 577 | dc2-spine1 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | -| 578 | dc2-spine1 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | -| 579 | dc2-spine1 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | -| 580 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet1 - Destination: dc2-leaf1a_Ethernet1 | SKIPPED | Dry run! | -| 581 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet2 - Destination: dc2-leaf1b_Ethernet1 | SKIPPED | Dry run! | -| 582 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet3 - Destination: dc2-leaf2a_Ethernet1 | SKIPPED | Dry run! | -| 583 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet4 - Destination: dc2-leaf2b_Ethernet1 | SKIPPED | Dry run! | -| 584 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet1 | SKIPPED | Dry run! | -| 585 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet1 | SKIPPED | Dry run! | -| 586 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet1 | SKIPPED | Dry run! | -| 587 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet1 | SKIPPED | Dry run! | -| 588 | dc2-spine1 | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | -| 589 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf1a_Ethernet1 | SKIPPED | Dry run! | -| 590 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf1b_Ethernet1 | SKIPPED | Dry run! | -| 591 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2a_Ethernet1 | SKIPPED | Dry run! | -| 592 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2b_Ethernet1 | SKIPPED | Dry run! | -| 593 | dc2-spine1 | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | -| 594 | dc2-spine2 | BGP | ArBGP is configured and operating | ArBGP | SKIPPED | Dry run! | -| 595 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.13 | SKIPPED | Dry run! | -| 596 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.14 | SKIPPED | Dry run! | -| 597 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.15 | SKIPPED | Dry run! | -| 598 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.16 | SKIPPED | Dry run! | -| 599 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.107 | SKIPPED | Dry run! | -| 600 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.111 | SKIPPED | Dry run! | -| 601 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.115 | SKIPPED | Dry run! | -| 602 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.119 | SKIPPED | Dry run! | -| 603 | dc2-spine2 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | SKIPPED | Dry run! | -| 604 | dc2-spine2 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | SKIPPED | Dry run! | -| 605 | dc2-spine2 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | SKIPPED | Dry run! | -| 606 | dc2-spine2 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | SKIPPED | Dry run! | -| 607 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet1 - Destination: dc2-leaf1a_Ethernet2 | SKIPPED | Dry run! | -| 608 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet2 - Destination: dc2-leaf1b_Ethernet2 | SKIPPED | Dry run! | -| 609 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet3 - Destination: dc2-leaf2a_Ethernet2 | SKIPPED | Dry run! | -| 610 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet4 - Destination: dc2-leaf2b_Ethernet2 | SKIPPED | Dry run! | -| 611 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet2 | SKIPPED | Dry run! | -| 612 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet2 | SKIPPED | Dry run! | -| 613 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet2 | SKIPPED | Dry run! | -| 614 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == \"up\" | Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet2 | SKIPPED | Dry run! | -| 615 | dc2-spine2 | Interface State | Loopback Interface Status & Line Protocol == \"up\" | Loopback0 - EVPN_Overlay_Peering | SKIPPED | Dry run! | -| 616 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf1a_Ethernet2 | SKIPPED | Dry run! | -| 617 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf1b_Ethernet2 | SKIPPED | Dry run! | -| 618 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2a_Ethernet2 | SKIPPED | Dry run! | -| 619 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2b_Ethernet2 | SKIPPED | Dry run! | -| 620 | dc2-spine2 | NTP | Synchronised with NTP server | NTP | SKIPPED | Dry run! | +| Test ID | Node | Test Categories | Test Description | Test | Test Result | Failure Reasons | +| ------- | ---- | --------------- | ---------------- | ---- | ----------- | --------------- | +| 1 | dc1-leaf1a | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | +| 2 | dc1-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | NOT RUN | - | +| 3 | dc1-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | NOT RUN | - | +| 4 | dc1-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.1.97 | NOT RUN | - | +| 5 | dc1-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.0 | NOT RUN | - | +| 6 | dc1-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.2 | NOT RUN | - | +| 7 | dc1-leaf1a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | +| 8 | dc1-leaf1a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | +| 9 | dc1-leaf1a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | +| 10 | dc1-leaf1a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | +| 11 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet1 | NOT RUN | - | +| 12 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet1 | NOT RUN | - | +| 13 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet3 - MLAG_PEER_dc1-leaf1b_Ethernet3 | NOT RUN | - | +| 14 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet4 - MLAG_PEER_dc1-leaf1b_Ethernet4 | NOT RUN | - | +| 15 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet5 - dc1-leaf1-server1_PCI1 | NOT RUN | - | +| 16 | dc1-leaf1a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet8 - DC1-LEAF1C_Ethernet1 | NOT RUN | - | +| 17 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | +| 18 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | +| 19 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | +| 20 | dc1-leaf1a | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | +| 21 | dc1-leaf1a | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel3 - MLAG_PEER_dc1-leaf1b_Po3 | NOT RUN | - | +| 22 | dc1-leaf1a | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1 | NOT RUN | - | +| 23 | dc1-leaf1a | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel8 - DC1-LEAF1C_Po1 | NOT RUN | - | +| 24 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan11 - VRF10_VLAN11 | NOT RUN | - | +| 25 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan12 - VRF10_VLAN12 | NOT RUN | - | +| 26 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan21 - VRF11_VLAN21 | NOT RUN | - | +| 27 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan22 - VRF11_VLAN22 | NOT RUN | - | +| 28 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | +| 29 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | +| 30 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | +| 31 | dc1-leaf1a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan4094 - MLAG_PEER | NOT RUN | - | +| 32 | dc1-leaf1a | Interface State | Vxlan Interface Status & Line Protocol == 'up' | Vxlan1 | NOT RUN | - | +| 33 | dc1-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1a_Ethernet1 - Destination: dc1-spine1_Ethernet1 | NOT RUN | - | +| 34 | dc1-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1a_Ethernet2 - Destination: dc1-spine2_Ethernet1 | NOT RUN | - | +| 35 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet1 | NOT RUN | - | +| 36 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet1 | NOT RUN | - | +| 37 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf1b_Ethernet3 | NOT RUN | - | +| 38 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc1-leaf1b_Ethernet4 | NOT RUN | - | +| 39 | dc1-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf1c_Ethernet1 | NOT RUN | - | +| 40 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.1 | NOT RUN | - | +| 41 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.2 | NOT RUN | - | +| 42 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.3 | NOT RUN | - | +| 43 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.4 | NOT RUN | - | +| 44 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.5 | NOT RUN | - | +| 45 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.11 | NOT RUN | - | +| 46 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.12 | NOT RUN | - | +| 47 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.13 | NOT RUN | - | +| 48 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.14 | NOT RUN | - | +| 49 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.15 | NOT RUN | - | +| 50 | dc1-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.16 | NOT RUN | - | +| 51 | dc1-leaf1a | MLAG | This test verifies the health status of the MLAG configuration. | VerifyMlagStatus | NOT RUN | - | +| 52 | dc1-leaf1a | NTP | Synchronised with NTP server | NTP | NOT RUN | - | +| 53 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | +| 54 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | +| 55 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | +| 56 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | +| 57 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | +| 58 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | +| 59 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | +| 60 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | +| 61 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | +| 62 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | +| 63 | dc1-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | +| 64 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | +| 65 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | +| 66 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | +| 67 | dc1-leaf1a | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | +| 68 | dc1-leaf1b | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | +| 69 | dc1-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | NOT RUN | - | +| 70 | dc1-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | NOT RUN | - | +| 71 | dc1-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.1.96 | NOT RUN | - | +| 72 | dc1-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.4 | NOT RUN | - | +| 73 | dc1-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.6 | NOT RUN | - | +| 74 | dc1-leaf1b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | +| 75 | dc1-leaf1b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | +| 76 | dc1-leaf1b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | +| 77 | dc1-leaf1b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | +| 78 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet2 | NOT RUN | - | +| 79 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet2 | NOT RUN | - | +| 80 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet3 - MLAG_PEER_dc1-leaf1a_Ethernet3 | NOT RUN | - | +| 81 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet4 - MLAG_PEER_dc1-leaf1a_Ethernet4 | NOT RUN | - | +| 82 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet5 - dc1-leaf1-server1_PCI2 | NOT RUN | - | +| 83 | dc1-leaf1b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet8 - DC1-LEAF1C_Ethernet2 | NOT RUN | - | +| 84 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | +| 85 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | +| 86 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | +| 87 | dc1-leaf1b | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | +| 88 | dc1-leaf1b | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel3 - MLAG_PEER_dc1-leaf1a_Po3 | NOT RUN | - | +| 89 | dc1-leaf1b | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1 | NOT RUN | - | +| 90 | dc1-leaf1b | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel8 - DC1-LEAF1C_Po1 | NOT RUN | - | +| 91 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan11 - VRF10_VLAN11 | NOT RUN | - | +| 92 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan12 - VRF10_VLAN12 | NOT RUN | - | +| 93 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan21 - VRF11_VLAN21 | NOT RUN | - | +| 94 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan22 - VRF11_VLAN22 | NOT RUN | - | +| 95 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | +| 96 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | +| 97 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | +| 98 | dc1-leaf1b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan4094 - MLAG_PEER | NOT RUN | - | +| 99 | dc1-leaf1b | Interface State | Vxlan Interface Status & Line Protocol == 'up' | Vxlan1 | NOT RUN | - | +| 100 | dc1-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1b_Ethernet1 - Destination: dc1-spine1_Ethernet2 | NOT RUN | - | +| 101 | dc1-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc1-leaf1b_Ethernet2 - Destination: dc1-spine2_Ethernet2 | NOT RUN | - | +| 102 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet2 | NOT RUN | - | +| 103 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet2 | NOT RUN | - | +| 104 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf1a_Ethernet3 | NOT RUN | - | +| 105 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc1-leaf1a_Ethernet4 | NOT RUN | - | +| 106 | dc1-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf1c_Ethernet2 | NOT RUN | - | +| 107 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.1 | NOT RUN | - | +| 108 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.2 | NOT RUN | - | +| 109 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.3 | NOT RUN | - | +| 110 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.4 | NOT RUN | - | +| 111 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.5 | NOT RUN | - | +| 112 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.11 | NOT RUN | - | +| 113 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.12 | NOT RUN | - | +| 114 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.13 | NOT RUN | - | +| 115 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.14 | NOT RUN | - | +| 116 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.15 | NOT RUN | - | +| 117 | dc1-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.16 | NOT RUN | - | +| 118 | dc1-leaf1b | MLAG | This test verifies the health status of the MLAG configuration. | VerifyMlagStatus | NOT RUN | - | +| 119 | dc1-leaf1b | NTP | Synchronised with NTP server | NTP | NOT RUN | - | +| 120 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | +| 121 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | +| 122 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | +| 123 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | +| 124 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | +| 125 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | +| 126 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | +| 127 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | +| 128 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | +| 129 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | +| 130 | dc1-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | +| 131 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | +| 132 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | +| 133 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | +| 134 | dc1-leaf1b | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | +| 135 | dc1-leaf1c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | +| 136 | dc1-leaf1c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | +| 137 | dc1-leaf1c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | +| 138 | dc1-leaf1c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | +| 139 | dc1-leaf1c | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet1 - DC1-LEAF1A_Ethernet8 | NOT RUN | - | +| 140 | dc1-leaf1c | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet2 - DC1-LEAF1B_Ethernet8 | NOT RUN | - | +| 141 | dc1-leaf1c | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet5 - dc1-leaf1-server1_iLO | NOT RUN | - | +| 142 | dc1-leaf1c | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel1 - DC1_L3_LEAF1_Po8 | NOT RUN | - | +| 143 | dc1-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf1a_Ethernet8 | NOT RUN | - | +| 144 | dc1-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-leaf1b_Ethernet8 | NOT RUN | - | +| 145 | dc1-leaf1c | NTP | Synchronised with NTP server | NTP | NOT RUN | - | +| 146 | dc1-leaf2a | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | +| 147 | dc1-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.1 | NOT RUN | - | +| 148 | dc1-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.2 | NOT RUN | - | +| 149 | dc1-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.15 | NOT RUN | - | +| 150 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.10 | NOT RUN | - | +| 151 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.8 | NOT RUN | - | +| 152 | dc1-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 192.168.100.1 | NOT RUN | - | +| 153 | dc1-leaf2a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | +| 154 | dc1-leaf2a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | +| 155 | dc1-leaf2a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | +| 156 | dc1-leaf2a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | +| 157 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet3 | NOT RUN | - | +| 158 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet3 | NOT RUN | - | +| 159 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet3 - MLAG_PEER_dc1-leaf2b_Ethernet3 | NOT RUN | - | +| 160 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet4 - MLAG_PEER_dc1-leaf2b_Ethernet4 | NOT RUN | - | +| 161 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet5 - dc1-leaf2-server1_PCI1 | NOT RUN | - | +| 162 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet6 - P2P_LINK_TO_dc2-leaf2a_Ethernet6 | NOT RUN | - | +| 163 | dc1-leaf2a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet8 - DC1-LEAF2C_Ethernet1 | NOT RUN | - | +| 164 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | +| 165 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | +| 166 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | +| 167 | dc1-leaf2a | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | +| 168 | dc1-leaf2a | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel3 - MLAG_PEER_dc1-leaf2b_Po3 | NOT RUN | - | +| 169 | dc1-leaf2a | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1 | NOT RUN | - | +| 170 | dc1-leaf2a | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel8 - DC1-LEAF2C_Po1 | NOT RUN | - | +| 171 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan11 - VRF10_VLAN11 | NOT RUN | - | +| 172 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan12 - VRF10_VLAN12 | NOT RUN | - | +| 173 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan21 - VRF11_VLAN21 | NOT RUN | - | +| 174 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan22 - VRF11_VLAN22 | NOT RUN | - | +| 175 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | +| 176 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | +| 177 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | +| 178 | dc1-leaf2a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan4094 - MLAG_PEER | NOT RUN | - | +| 179 | dc1-leaf2a | Interface State | Vxlan Interface Status & Line Protocol == 'up' | Vxlan1 | NOT RUN | - | +| 180 | dc1-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2a_Ethernet1 - Destination: dc1-spine1_Ethernet3 | NOT RUN | - | +| 181 | dc1-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2a_Ethernet2 - Destination: dc1-spine2_Ethernet3 | NOT RUN | - | +| 182 | dc1-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc1-leaf2a_Ethernet6 - Destination: dc2-leaf2a_Ethernet6 | NOT RUN | - | +| 183 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-spine1_Ethernet3 | NOT RUN | - | +| 184 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-spine2_Ethernet3 | NOT RUN | - | +| 185 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet6 - remote: dc2-leaf2a_Ethernet6 | NOT RUN | - | +| 186 | dc1-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc1-leaf2c_Ethernet1 | NOT RUN | - | +| 187 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.1 | NOT RUN | - | +| 188 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.2 | NOT RUN | - | +| 189 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.3 | NOT RUN | - | +| 190 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.4 | NOT RUN | - | +| 191 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.5 | NOT RUN | - | +| 192 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.11 | NOT RUN | - | +| 193 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.12 | NOT RUN | - | +| 194 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.13 | NOT RUN | - | +| 195 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.14 | NOT RUN | - | +| 196 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.15 | NOT RUN | - | +| 197 | dc1-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.16 | NOT RUN | - | +| 198 | dc1-leaf2a | MLAG | This test verifies the health status of the MLAG configuration. | VerifyMlagStatus | NOT RUN | - | +| 199 | dc1-leaf2a | NTP | Synchronised with NTP server | NTP | NOT RUN | - | +| 200 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | +| 201 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | +| 202 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | +| 203 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | +| 204 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | +| 205 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | +| 206 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | +| 207 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | +| 208 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | +| 209 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | +| 210 | dc1-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | +| 211 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | +| 212 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | +| 213 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | +| 214 | dc1-leaf2a | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | +| 215 | dc1-leaf2c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | +| 216 | dc1-leaf2c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | +| 217 | dc1-leaf2c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | +| 218 | dc1-leaf2c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | +| 219 | dc1-leaf2c | Interface State | Ethernet Interface & Line Protocol == 'adminDown' | Ethernet2 - DC1-LEAF2B_Ethernet8 | NOT RUN | - | +| 220 | dc1-leaf2c | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet1 - DC1-LEAF2A_Ethernet8 | NOT RUN | - | +| 221 | dc1-leaf2c | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet5 - dc1-leaf2-server1_iLO | NOT RUN | - | +| 222 | dc1-leaf2c | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel1 - DC1_L3_LEAF2_Po8 | NOT RUN | - | +| 223 | dc1-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf2a_Ethernet8 | NOT RUN | - | +| 224 | dc1-leaf2c | NTP | Synchronised with NTP server | NTP | NOT RUN | - | +| 225 | dc1-spine1 | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | +| 226 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.3 | NOT RUN | - | +| 227 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.4 | NOT RUN | - | +| 228 | dc1-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.5 | NOT RUN | - | +| 229 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.1 | NOT RUN | - | +| 230 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.5 | NOT RUN | - | +| 231 | dc1-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.9 | NOT RUN | - | +| 232 | dc1-spine1 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | +| 233 | dc1-spine1 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | +| 234 | dc1-spine1 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | +| 235 | dc1-spine1 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | +| 236 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == 'adminDown' | Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet1 | NOT RUN | - | +| 237 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet1 | NOT RUN | - | +| 238 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet1 | NOT RUN | - | +| 239 | dc1-spine1 | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet1 | NOT RUN | - | +| 240 | dc1-spine1 | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | +| 241 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet1 - Destination: dc1-leaf1a_Ethernet1 | NOT RUN | - | +| 242 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet2 - Destination: dc1-leaf1b_Ethernet1 | NOT RUN | - | +| 243 | dc1-spine1 | IP Reachability | ip reachability test p2p links | Source: dc1-spine1_Ethernet3 - Destination: dc1-leaf2a_Ethernet1 | NOT RUN | - | +| 244 | dc1-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf1a_Ethernet1 | NOT RUN | - | +| 245 | dc1-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-leaf1b_Ethernet1 | NOT RUN | - | +| 246 | dc1-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf2a_Ethernet1 | NOT RUN | - | +| 247 | dc1-spine1 | NTP | Synchronised with NTP server | NTP | NOT RUN | - | +| 248 | dc1-spine2 | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | +| 249 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.3 | NOT RUN | - | +| 250 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.4 | NOT RUN | - | +| 251 | dc1-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.5 | NOT RUN | - | +| 252 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.11 | NOT RUN | - | +| 253 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.3 | NOT RUN | - | +| 254 | dc1-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.7 | NOT RUN | - | +| 255 | dc1-spine2 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | +| 256 | dc1-spine2 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | +| 257 | dc1-spine2 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | +| 258 | dc1-spine2 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | +| 259 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == 'adminDown' | Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet2 | NOT RUN | - | +| 260 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet2 | NOT RUN | - | +| 261 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet2 | NOT RUN | - | +| 262 | dc1-spine2 | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet2 | NOT RUN | - | +| 263 | dc1-spine2 | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | +| 264 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet1 - Destination: dc1-leaf1a_Ethernet2 | NOT RUN | - | +| 265 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet2 - Destination: dc1-leaf1b_Ethernet2 | NOT RUN | - | +| 266 | dc1-spine2 | IP Reachability | ip reachability test p2p links | Source: dc1-spine2_Ethernet3 - Destination: dc1-leaf2a_Ethernet2 | NOT RUN | - | +| 267 | dc1-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc1-leaf1a_Ethernet2 | NOT RUN | - | +| 268 | dc1-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc1-leaf1b_Ethernet2 | NOT RUN | - | +| 269 | dc1-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc1-leaf2a_Ethernet2 | NOT RUN | - | +| 270 | dc1-spine2 | NTP | Synchronised with NTP server | NTP | NOT RUN | - | +| 271 | dc2-leaf1a | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | +| 272 | dc2-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | NOT RUN | - | +| 273 | dc2-leaf1a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | NOT RUN | - | +| 274 | dc2-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.117 | NOT RUN | - | +| 275 | dc2-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.104 | NOT RUN | - | +| 276 | dc2-leaf1a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.106 | NOT RUN | - | +| 277 | dc2-leaf1a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | +| 278 | dc2-leaf1a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | +| 279 | dc2-leaf1a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | +| 280 | dc2-leaf1a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | +| 281 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet1 | NOT RUN | - | +| 282 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet1 | NOT RUN | - | +| 283 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet3 - MLAG_PEER_dc2-leaf1b_Ethernet3 | NOT RUN | - | +| 284 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet4 - MLAG_PEER_dc2-leaf1b_Ethernet4 | NOT RUN | - | +| 285 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet5 - dc2-leaf1-server1_PCI1 | NOT RUN | - | +| 286 | dc2-leaf1a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet8 - DC2-LEAF1C_Ethernet1 | NOT RUN | - | +| 287 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | +| 288 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | +| 289 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | +| 290 | dc2-leaf1a | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | +| 291 | dc2-leaf1a | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel3 - MLAG_PEER_dc2-leaf1b_Po3 | NOT RUN | - | +| 292 | dc2-leaf1a | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1 | NOT RUN | - | +| 293 | dc2-leaf1a | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel8 - DC2-LEAF1C_Po1 | NOT RUN | - | +| 294 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan11 - VRF10_VLAN11 | NOT RUN | - | +| 295 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan12 - VRF10_VLAN12 | NOT RUN | - | +| 296 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan21 - VRF11_VLAN21 | NOT RUN | - | +| 297 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan22 - VRF11_VLAN22 | NOT RUN | - | +| 298 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | +| 299 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | +| 300 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | +| 301 | dc2-leaf1a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan4094 - MLAG_PEER | NOT RUN | - | +| 302 | dc2-leaf1a | Interface State | Vxlan Interface Status & Line Protocol == 'up' | Vxlan1 | NOT RUN | - | +| 303 | dc2-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1a_Ethernet1 - Destination: dc2-spine1_Ethernet1 | NOT RUN | - | +| 304 | dc2-leaf1a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1a_Ethernet2 - Destination: dc2-spine2_Ethernet1 | NOT RUN | - | +| 305 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet1 | NOT RUN | - | +| 306 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet1 | NOT RUN | - | +| 307 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf1b_Ethernet3 | NOT RUN | - | +| 308 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf1b_Ethernet4 | NOT RUN | - | +| 309 | dc2-leaf1a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf1c_Ethernet1 | NOT RUN | - | +| 310 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.1 | NOT RUN | - | +| 311 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.2 | NOT RUN | - | +| 312 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.3 | NOT RUN | - | +| 313 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.4 | NOT RUN | - | +| 314 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.5 | NOT RUN | - | +| 315 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.11 | NOT RUN | - | +| 316 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.12 | NOT RUN | - | +| 317 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.13 | NOT RUN | - | +| 318 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.14 | NOT RUN | - | +| 319 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.15 | NOT RUN | - | +| 320 | dc2-leaf1a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.16 | NOT RUN | - | +| 321 | dc2-leaf1a | MLAG | This test verifies the health status of the MLAG configuration. | VerifyMlagStatus | NOT RUN | - | +| 322 | dc2-leaf1a | NTP | Synchronised with NTP server | NTP | NOT RUN | - | +| 323 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | +| 324 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | +| 325 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | +| 326 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | +| 327 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | +| 328 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | +| 329 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | +| 330 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | +| 331 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | +| 332 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | +| 333 | dc2-leaf1a | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | +| 334 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | +| 335 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | +| 336 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | +| 337 | dc2-leaf1a | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | +| 338 | dc2-leaf1b | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | +| 339 | dc2-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | NOT RUN | - | +| 340 | dc2-leaf1b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | NOT RUN | - | +| 341 | dc2-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.116 | NOT RUN | - | +| 342 | dc2-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.108 | NOT RUN | - | +| 343 | dc2-leaf1b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.110 | NOT RUN | - | +| 344 | dc2-leaf1b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | +| 345 | dc2-leaf1b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | +| 346 | dc2-leaf1b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | +| 347 | dc2-leaf1b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | +| 348 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet2 | NOT RUN | - | +| 349 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet2 | NOT RUN | - | +| 350 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet3 - MLAG_PEER_dc2-leaf1a_Ethernet3 | NOT RUN | - | +| 351 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet4 - MLAG_PEER_dc2-leaf1a_Ethernet4 | NOT RUN | - | +| 352 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet5 - dc2-leaf1-server1_PCI2 | NOT RUN | - | +| 353 | dc2-leaf1b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet8 - DC2-LEAF1C_Ethernet2 | NOT RUN | - | +| 354 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | +| 355 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | +| 356 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | +| 357 | dc2-leaf1b | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | +| 358 | dc2-leaf1b | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel3 - MLAG_PEER_dc2-leaf1a_Po3 | NOT RUN | - | +| 359 | dc2-leaf1b | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1 | NOT RUN | - | +| 360 | dc2-leaf1b | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel8 - DC2-LEAF1C_Po1 | NOT RUN | - | +| 361 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan11 - VRF10_VLAN11 | NOT RUN | - | +| 362 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan12 - VRF10_VLAN12 | NOT RUN | - | +| 363 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan21 - VRF11_VLAN21 | NOT RUN | - | +| 364 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan22 - VRF11_VLAN22 | NOT RUN | - | +| 365 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | +| 366 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | +| 367 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | +| 368 | dc2-leaf1b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan4094 - MLAG_PEER | NOT RUN | - | +| 369 | dc2-leaf1b | Interface State | Vxlan Interface Status & Line Protocol == 'up' | Vxlan1 | NOT RUN | - | +| 370 | dc2-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1b_Ethernet1 - Destination: dc2-spine1_Ethernet2 | NOT RUN | - | +| 371 | dc2-leaf1b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf1b_Ethernet2 - Destination: dc2-spine2_Ethernet2 | NOT RUN | - | +| 372 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet2 | NOT RUN | - | +| 373 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet2 | NOT RUN | - | +| 374 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf1a_Ethernet3 | NOT RUN | - | +| 375 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf1a_Ethernet4 | NOT RUN | - | +| 376 | dc2-leaf1b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf1c_Ethernet2 | NOT RUN | - | +| 377 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.1 | NOT RUN | - | +| 378 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.2 | NOT RUN | - | +| 379 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.3 | NOT RUN | - | +| 380 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.4 | NOT RUN | - | +| 381 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.5 | NOT RUN | - | +| 382 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.11 | NOT RUN | - | +| 383 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.12 | NOT RUN | - | +| 384 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.13 | NOT RUN | - | +| 385 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.14 | NOT RUN | - | +| 386 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.15 | NOT RUN | - | +| 387 | dc2-leaf1b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.16 | NOT RUN | - | +| 388 | dc2-leaf1b | MLAG | This test verifies the health status of the MLAG configuration. | VerifyMlagStatus | NOT RUN | - | +| 389 | dc2-leaf1b | NTP | Synchronised with NTP server | NTP | NOT RUN | - | +| 390 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | +| 391 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | +| 392 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | +| 393 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | +| 394 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | +| 395 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | +| 396 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | +| 397 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | +| 398 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | +| 399 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | +| 400 | dc2-leaf1b | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | +| 401 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | +| 402 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | +| 403 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | +| 404 | dc2-leaf1b | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | +| 405 | dc2-leaf1c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | +| 406 | dc2-leaf1c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | +| 407 | dc2-leaf1c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | +| 408 | dc2-leaf1c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | +| 409 | dc2-leaf1c | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet1 - DC2-LEAF1A_Ethernet8 | NOT RUN | - | +| 410 | dc2-leaf1c | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet2 - DC2-LEAF1B_Ethernet8 | NOT RUN | - | +| 411 | dc2-leaf1c | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet5 - dc2-leaf1-server1_iLO | NOT RUN | - | +| 412 | dc2-leaf1c | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel1 - DC2_L3_LEAF1_Po8 | NOT RUN | - | +| 413 | dc2-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf1a_Ethernet8 | NOT RUN | - | +| 414 | dc2-leaf1c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf1b_Ethernet8 | NOT RUN | - | +| 415 | dc2-leaf1c | NTP | Synchronised with NTP server | NTP | NOT RUN | - | +| 416 | dc2-leaf2a | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | +| 417 | dc2-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.0.5 | NOT RUN | - | +| 418 | dc2-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | NOT RUN | - | +| 419 | dc2-leaf2a | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | NOT RUN | - | +| 420 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.121 | NOT RUN | - | +| 421 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.112 | NOT RUN | - | +| 422 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.114 | NOT RUN | - | +| 423 | dc2-leaf2a | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 192.168.100.0 | NOT RUN | - | +| 424 | dc2-leaf2a | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | +| 425 | dc2-leaf2a | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | +| 426 | dc2-leaf2a | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | +| 427 | dc2-leaf2a | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | +| 428 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet3 | NOT RUN | - | +| 429 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet3 | NOT RUN | - | +| 430 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet3 - MLAG_PEER_dc2-leaf2b_Ethernet3 | NOT RUN | - | +| 431 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet4 - MLAG_PEER_dc2-leaf2b_Ethernet4 | NOT RUN | - | +| 432 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet5 - dc2-leaf2-server1_PCI1 | NOT RUN | - | +| 433 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet6 - P2P_LINK_TO_dc1-leaf2a_Ethernet6 | NOT RUN | - | +| 434 | dc2-leaf2a | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet8 - DC2-LEAF2C_Ethernet1 | NOT RUN | - | +| 435 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | +| 436 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | +| 437 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | +| 438 | dc2-leaf2a | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | +| 439 | dc2-leaf2a | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel3 - MLAG_PEER_dc2-leaf2b_Po3 | NOT RUN | - | +| 440 | dc2-leaf2a | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1 | NOT RUN | - | +| 441 | dc2-leaf2a | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel8 - DC2-LEAF2C_Po1 | NOT RUN | - | +| 442 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan11 - VRF10_VLAN11 | NOT RUN | - | +| 443 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan12 - VRF10_VLAN12 | NOT RUN | - | +| 444 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan21 - VRF11_VLAN21 | NOT RUN | - | +| 445 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan22 - VRF11_VLAN22 | NOT RUN | - | +| 446 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | +| 447 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | +| 448 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | +| 449 | dc2-leaf2a | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan4094 - MLAG_PEER | NOT RUN | - | +| 450 | dc2-leaf2a | Interface State | Vxlan Interface Status & Line Protocol == 'up' | Vxlan1 | NOT RUN | - | +| 451 | dc2-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2a_Ethernet1 - Destination: dc2-spine1_Ethernet3 | NOT RUN | - | +| 452 | dc2-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2a_Ethernet2 - Destination: dc2-spine2_Ethernet3 | NOT RUN | - | +| 453 | dc2-leaf2a | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2a_Ethernet6 - Destination: dc1-leaf2a_Ethernet6 | NOT RUN | - | +| 454 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet3 | NOT RUN | - | +| 455 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet3 | NOT RUN | - | +| 456 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2b_Ethernet3 | NOT RUN | - | +| 457 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2b_Ethernet4 | NOT RUN | - | +| 458 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet6 - remote: dc1-leaf2a_Ethernet6 | NOT RUN | - | +| 459 | dc2-leaf2a | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf2c_Ethernet1 | NOT RUN | - | +| 460 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.1 | NOT RUN | - | +| 461 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.2 | NOT RUN | - | +| 462 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.3 | NOT RUN | - | +| 463 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.4 | NOT RUN | - | +| 464 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.5 | NOT RUN | - | +| 465 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.11 | NOT RUN | - | +| 466 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.12 | NOT RUN | - | +| 467 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.13 | NOT RUN | - | +| 468 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.14 | NOT RUN | - | +| 469 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.15 | NOT RUN | - | +| 470 | dc2-leaf2a | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.16 | NOT RUN | - | +| 471 | dc2-leaf2a | MLAG | This test verifies the health status of the MLAG configuration. | VerifyMlagStatus | NOT RUN | - | +| 472 | dc2-leaf2a | NTP | Synchronised with NTP server | NTP | NOT RUN | - | +| 473 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | +| 474 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | +| 475 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | +| 476 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | +| 477 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | +| 478 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | +| 479 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | +| 480 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | +| 481 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | +| 482 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | +| 483 | dc2-leaf2a | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | +| 484 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | +| 485 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | +| 486 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | +| 487 | dc2-leaf2a | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | +| 488 | dc2-leaf2b | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | +| 489 | dc2-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.11 | NOT RUN | - | +| 490 | dc2-leaf2b | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.12 | NOT RUN | - | +| 491 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.129.120 | NOT RUN | - | +| 492 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.116 | NOT RUN | - | +| 493 | dc2-leaf2b | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.118 | NOT RUN | - | +| 494 | dc2-leaf2b | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | +| 495 | dc2-leaf2b | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | +| 496 | dc2-leaf2b | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | +| 497 | dc2-leaf2b | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | +| 498 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet4 | NOT RUN | - | +| 499 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet4 | NOT RUN | - | +| 500 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet3 - MLAG_PEER_dc2-leaf2a_Ethernet3 | NOT RUN | - | +| 501 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet4 - MLAG_PEER_dc2-leaf2a_Ethernet4 | NOT RUN | - | +| 502 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet5 - dc2-leaf2-server1_PCI2 | NOT RUN | - | +| 503 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet6 - P2P_LINK_TO_dc1-leaf2b_Ethernet6 | NOT RUN | - | +| 504 | dc2-leaf2b | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet8 - DC2-LEAF2C_Ethernet2 | NOT RUN | - | +| 505 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | +| 506 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback1 - VTEP_VXLAN_Tunnel_Source | NOT RUN | - | +| 507 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback10 - VRF10_VTEP_DIAGNOSTICS | NOT RUN | - | +| 508 | dc2-leaf2b | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback11 - VRF11_VTEP_DIAGNOSTICS | NOT RUN | - | +| 509 | dc2-leaf2b | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel3 - MLAG_PEER_dc2-leaf2a_Po3 | NOT RUN | - | +| 510 | dc2-leaf2b | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1 | NOT RUN | - | +| 511 | dc2-leaf2b | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel8 - DC2-LEAF2C_Po1 | NOT RUN | - | +| 512 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan11 - VRF10_VLAN11 | NOT RUN | - | +| 513 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan12 - VRF10_VLAN12 | NOT RUN | - | +| 514 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan21 - VRF11_VLAN21 | NOT RUN | - | +| 515 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan22 - VRF11_VLAN22 | NOT RUN | - | +| 516 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10 | NOT RUN | - | +| 517 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11 | NOT RUN | - | +| 518 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan4093 - MLAG_PEER_L3_PEERING | NOT RUN | - | +| 519 | dc2-leaf2b | Interface State | Vlan Interface & Line Protocol == 'up' | Vlan4094 - MLAG_PEER | NOT RUN | - | +| 520 | dc2-leaf2b | Interface State | Vxlan Interface Status & Line Protocol == 'up' | Vxlan1 | NOT RUN | - | +| 521 | dc2-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2b_Ethernet1 - Destination: dc2-spine1_Ethernet4 | NOT RUN | - | +| 522 | dc2-leaf2b | IP Reachability | ip reachability test p2p links | Source: dc2-leaf2b_Ethernet2 - Destination: dc2-spine2_Ethernet4 | NOT RUN | - | +| 523 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-spine1_Ethernet4 | NOT RUN | - | +| 524 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-spine2_Ethernet4 | NOT RUN | - | +| 525 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2a_Ethernet3 | NOT RUN | - | +| 526 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2a_Ethernet4 | NOT RUN | - | +| 527 | dc2-leaf2b | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet8 - remote: dc2-leaf2c_Ethernet2 | NOT RUN | - | +| 528 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.1 | NOT RUN | - | +| 529 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.2 | NOT RUN | - | +| 530 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.3 | NOT RUN | - | +| 531 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.4 | NOT RUN | - | +| 532 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.5 | NOT RUN | - | +| 533 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.11 | NOT RUN | - | +| 534 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.12 | NOT RUN | - | +| 535 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.13 | NOT RUN | - | +| 536 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.14 | NOT RUN | - | +| 537 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.15 | NOT RUN | - | +| 538 | dc2-leaf2b | Loopback0 Reachability | Loopback0 Reachability | Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.16 | NOT RUN | - | +| 539 | dc2-leaf2b | MLAG | This test verifies the health status of the MLAG configuration. | VerifyMlagStatus | NOT RUN | - | +| 540 | dc2-leaf2b | NTP | Synchronised with NTP server | NTP | NOT RUN | - | +| 541 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.1 | NOT RUN | - | +| 542 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.2 | NOT RUN | - | +| 543 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.3 | NOT RUN | - | +| 544 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.4 | NOT RUN | - | +| 545 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.0.5 | NOT RUN | - | +| 546 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.11 | NOT RUN | - | +| 547 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.12 | NOT RUN | - | +| 548 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.13 | NOT RUN | - | +| 549 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.14 | NOT RUN | - | +| 550 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.15 | NOT RUN | - | +| 551 | dc2-leaf2b | Routing Table | Remote Lo0 address | 10.255.128.16 | NOT RUN | - | +| 552 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.1.3 | NOT RUN | - | +| 553 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.1.5 | NOT RUN | - | +| 554 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.129.13 | NOT RUN | - | +| 555 | dc2-leaf2b | Routing Table | Remote VTEP address | 10.255.129.15 | NOT RUN | - | +| 556 | dc2-leaf2c | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | +| 557 | dc2-leaf2c | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | +| 558 | dc2-leaf2c | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | +| 559 | dc2-leaf2c | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | +| 560 | dc2-leaf2c | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet1 - DC2-LEAF2A_Ethernet8 | NOT RUN | - | +| 561 | dc2-leaf2c | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet2 - DC2-LEAF2B_Ethernet8 | NOT RUN | - | +| 562 | dc2-leaf2c | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet5 - dc2-leaf2-server1_iLO | NOT RUN | - | +| 563 | dc2-leaf2c | Interface State | Port-Channel Interface & Line Protocol == 'up' | Port-Channel1 - DC2_L3_LEAF2_Po8 | NOT RUN | - | +| 564 | dc2-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf2a_Ethernet8 | NOT RUN | - | +| 565 | dc2-leaf2c | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf2b_Ethernet8 | NOT RUN | - | +| 566 | dc2-leaf2c | NTP | Synchronised with NTP server | NTP | NOT RUN | - | +| 567 | dc2-spine1 | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | +| 568 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.13 | NOT RUN | - | +| 569 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.14 | NOT RUN | - | +| 570 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.15 | NOT RUN | - | +| 571 | dc2-spine1 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.16 | NOT RUN | - | +| 572 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.105 | NOT RUN | - | +| 573 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.109 | NOT RUN | - | +| 574 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.113 | NOT RUN | - | +| 575 | dc2-spine1 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.117 | NOT RUN | - | +| 576 | dc2-spine1 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | +| 577 | dc2-spine1 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | +| 578 | dc2-spine1 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | +| 579 | dc2-spine1 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | +| 580 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet1 | NOT RUN | - | +| 581 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet1 | NOT RUN | - | +| 582 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet1 | NOT RUN | - | +| 583 | dc2-spine1 | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet1 | NOT RUN | - | +| 584 | dc2-spine1 | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | +| 585 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet1 - Destination: dc2-leaf1a_Ethernet1 | NOT RUN | - | +| 586 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet2 - Destination: dc2-leaf1b_Ethernet1 | NOT RUN | - | +| 587 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet3 - Destination: dc2-leaf2a_Ethernet1 | NOT RUN | - | +| 588 | dc2-spine1 | IP Reachability | ip reachability test p2p links | Source: dc2-spine1_Ethernet4 - Destination: dc2-leaf2b_Ethernet1 | NOT RUN | - | +| 589 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf1a_Ethernet1 | NOT RUN | - | +| 590 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf1b_Ethernet1 | NOT RUN | - | +| 591 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2a_Ethernet1 | NOT RUN | - | +| 592 | dc2-spine1 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2b_Ethernet1 | NOT RUN | - | +| 593 | dc2-spine1 | NTP | Synchronised with NTP server | NTP | NOT RUN | - | +| 594 | dc2-spine2 | BGP | ArBGP is configured and operating | ArBGP | NOT RUN | - | +| 595 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.13 | NOT RUN | - | +| 596 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.14 | NOT RUN | - | +| 597 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.15 | NOT RUN | - | +| 598 | dc2-spine2 | BGP | bgp evpn peer state established (evpn) | bgp_neighbor: 10.255.128.16 | NOT RUN | - | +| 599 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.107 | NOT RUN | - | +| 600 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.111 | NOT RUN | - | +| 601 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.115 | NOT RUN | - | +| 602 | dc2-spine2 | BGP | ip bgp peer state established (ipv4) | bgp_neighbor: 10.255.255.119 | NOT RUN | - | +| 603 | dc2-spine2 | Hardware | Verifies if the device temperature is within the acceptable range. | VerifyTemperature | NOT RUN | - | +| 604 | dc2-spine2 | Hardware | Verifies if the fans status are within the accepted states list. | VerifyEnvironmentCooling | NOT RUN | - | +| 605 | dc2-spine2 | Hardware | Verifies if the power supplies status are within the accepted states list. | VerifyEnvironmentPower | NOT RUN | - | +| 606 | dc2-spine2 | Hardware | Verifies the transceiver's manufacturer against a list of approved manufacturers. | VerifyTransceiversManufacturers | NOT RUN | - | +| 607 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet2 | NOT RUN | - | +| 608 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet2 | NOT RUN | - | +| 609 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet2 | NOT RUN | - | +| 610 | dc2-spine2 | Interface State | Ethernet Interface & Line Protocol == 'up' | Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet2 | NOT RUN | - | +| 611 | dc2-spine2 | Interface State | Loopback Interface Status & Line Protocol == 'up' | Loopback0 - EVPN_Overlay_Peering | NOT RUN | - | +| 612 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet1 - Destination: dc2-leaf1a_Ethernet2 | NOT RUN | - | +| 613 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet2 - Destination: dc2-leaf1b_Ethernet2 | NOT RUN | - | +| 614 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet3 - Destination: dc2-leaf2a_Ethernet2 | NOT RUN | - | +| 615 | dc2-spine2 | IP Reachability | ip reachability test p2p links | Source: dc2-spine2_Ethernet4 - Destination: dc2-leaf2b_Ethernet2 | NOT RUN | - | +| 616 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet1 - remote: dc2-leaf1a_Ethernet2 | NOT RUN | - | +| 617 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet2 - remote: dc2-leaf1b_Ethernet2 | NOT RUN | - | +| 618 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet3 - remote: dc2-leaf2a_Ethernet2 | NOT RUN | - | +| 619 | dc2-spine2 | LLDP Topology | LLDP topology - validate peer and interface | local: Ethernet4 - remote: dc2-leaf2b_Ethernet2 | NOT RUN | - | +| 620 | dc2-spine2 | NTP | Synchronised with NTP server | NTP | NOT RUN | - | diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py index f9f82993205..ef3fe189063 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py @@ -38,11 +38,15 @@ def generate_rows(self) -> Generator[dict, None, None]: results = self.results.failed_tests if self.results.only_failed_tests else self.results.all_tests for result in results: - yield {**result, "failure_reasons": ";".join(result["failure_reasons"])} + yield { + **result, + "failure_reasons": ";".join(result["failure_reasons"]), + "test_categories": ";".join(result["test_categories"]), + } def generate_report(self) -> None: """Generate and writes the CSV report using the collected test results.""" - fieldnames = ["test_id", "node", "test_category", "test_description", "test", "result", "failure_reasons"] + fieldnames = ["test_id", "node", "test_categories", "test_description", "test", "result", "failure_reasons"] writer = csv.DictWriter(self.csvfile, fieldnames=fieldnames) writer.writeheader() diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/get_anta_results.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/get_anta_results.py index 587b46409dd..a516f388d10 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/get_anta_results.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/get_anta_results.py @@ -135,7 +135,14 @@ def get_anta_results( results: list[dict] = loads(manager.get_results(output_format="json")) # Return sorted results - return sorted(results, key=lambda result: (result["categories"], result["custom_field"])) + return sorted( + results, + key=lambda result: ( + result.get("categories", [""])[0].lower(), + result.get("description", "").lower(), + result.get("custom_field", "").lower(), + ), + ) def _create_dry_run_report(device_name: str, tests: list[tuple], manager: ResultManager) -> None: @@ -158,6 +165,4 @@ def _create_dry_run_report(device_name: str, tests: list[tuple], manager: Result categories = result_overwrite.get("categories", test_class.categories) custom_field = result_overwrite.get("custom_field", None) - manager.add_test_result( - TestResult(name=device_name, test=test_class.name, categories=categories, description=description, custom_field=custom_field, messages=["Dry run!"]) - ) + manager.add_test_result(TestResult(name=device_name, test=test_class.name, categories=categories, description=description, custom_field=custom_field)) diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py index f0c5679a3dd..ea03a322e5f 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py @@ -201,16 +201,17 @@ class FailedTestResultsSummary(MDReportBase): """Generate the `## Failed Test Results Summary` section of the markdown report.""" TABLE_HEADER: ClassVar[list[str]] = [ - "| Test ID | Node | Test Category | Test Description | Test | Test Result | Failure Reasons |", - "| ------- | ---- | ------------- | ---------------- | ---- | ----------- | --------------- |", + "| Test ID | Node | Test Categories | Test Description | Test | Test Result | Failure Reasons |", + "| ------- | ---- | --------------- | ---------------- | ---- | ----------- | --------------- |", ] def generate_rows(self) -> Generator[str, None, None]: """Generate the rows of the results table.""" for result in self.results.failed_tests: - failure_reasons = "\n".join(result["failure_reasons"]) + failure_reasons = ", ".join(result["failure_reasons"]) + categories = ", ".join(result["test_categories"]) yield ( - f"| {result['test_id'] or '-'} | {result['node'] or '-'} | {result['test_category'] or '-'} | {result['test_description'] or '-'} |" + f"| {result['test_id'] or '-'} | {result['node'] or '-'} | {categories or '-'} | {result['test_description'] or '-'} |" f" {result['test'] or '-'} | {result['result'] or '-'} | {failure_reasons or '-'} |\n" ) @@ -226,16 +227,17 @@ class AllTestResults(MDReportBase): """ TABLE_HEADER: ClassVar[list[str]] = [ - "| Test ID | Node | Test Category | Test Description | Test | Test Result | Failure Reasons |", - "| ------- | ---- | ------------- | ---------------- | ---- | ----------- | --------------- |", + "| Test ID | Node | Test Categories | Test Description | Test | Test Result | Failure Reasons |", + "| ------- | ---- | --------------- | ---------------- | ---- | ----------- | --------------- |", ] def generate_rows(self) -> Generator[str, None, None]: """Generate the rows of the results table.""" for result in self.results.all_tests: - failure_reasons = "\n".join(result["failure_reasons"]) + failure_reasons = ", ".join(result["failure_reasons"]) + categories = ", ".join(result["test_categories"]) yield ( - f"| {result['test_id'] or '-'} | {result['node'] or '-'} | {result['test_category'] or '-'} | {result['test_description'] or '-'} |" + f"| {result['test_id'] or '-'} | {result['node'] or '-'} | {categories or '-'} | {result['test_description'] or '-'} |" f" {result['test'] or '-'} | {result['result'] or '-'} | {failure_reasons or '-'} |\n" ) diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py index 2d39ea259fe..d13cf6eac97 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py @@ -5,6 +5,8 @@ from collections import defaultdict +from ansible_collections.arista.avd.roles.eos_validate_state.python_modules.constants import ACRONYM_CATEGORIES + class ResultsManager: """Manages and stores test results from eos_validate_state running ANTA. @@ -26,6 +28,7 @@ def __init__(self, *, only_failed_tests: bool = True) -> None: self.total_tests_passed = 0 self.total_tests_failed = 0 self.total_tests_skipped = 0 + self.total_tests_not_run = 0 self.dut_stats = defaultdict( lambda: { "tests_passed": 0, @@ -57,11 +60,13 @@ def _parse_result(self, result: dict) -> dict: ------- dict: The parsed and standardized test result. """ - # All AVD tests have a single category and overwrite the native ANTA tests categories - new_test_category = result.get("categories", [""])[0] + test_categories = [ + " ".join(word.upper() if word.lower() in ACRONYM_CATEGORIES else word.title() for word in category.split()) + for category in result.get("categories", []) + ] # Mapping the ANTA results - result_mapping = {"success": "PASS", "failure": "FAIL", "error": "FAIL", "skipped": "SKIPPED", "unset": "SKIPPED"} + result_mapping = {"success": "PASS", "failure": "FAIL", "error": "FAIL", "skipped": "SKIPPED", "unset": "NOT RUN"} anta_result = result.get("result", "") new_result = result_mapping.get(anta_result, "") @@ -69,7 +74,7 @@ def _parse_result(self, result: dict) -> dict: return { "test_id": self.test_id, "node": result.get("name", ""), - "test_category": new_test_category, + "test_categories": test_categories, "test_description": result.get("description", ""), # Since AVD tests can have the same description and category, ANTA's custom_field is used to differentiate tests "test": result.get("custom_field", "") if result.get("custom_field") != "None" else result.get("test", ""), @@ -77,14 +82,14 @@ def _parse_result(self, result: dict) -> dict: "failure_reasons": result.get("messages", []), } - def _increment_stats(self, test_result: str, dut: str, category: str) -> None: + def _increment_stats(self, test_result: str, dut: str, categories: list[str]) -> None: """Increment test statistics based on the test result. Args: ---- test_result (str): The test result. dut (str): The name of the device under test. - category (str): The category of the test. + categories (list[str]): The categories of the test. """ stats_mapping = { "PASS": ("total_tests_passed", "tests_passed"), @@ -94,15 +99,16 @@ def _increment_stats(self, test_result: str, dut: str, category: str) -> None: stats_to_increment = stats_mapping.get(test_result, ()) for stat in stats_to_increment: - if hasattr(self, stat): + if stat.startswith("total_"): setattr(self, stat, getattr(self, stat) + 1) - if stat in self.dut_stats[dut]: - if isinstance(self.dut_stats[dut][stat], set): - self.dut_stats[dut][stat].add(category) + continue + if stat.startswith("tests_"): + self.dut_stats[dut][stat] += 1 + for category in categories: + if stat.startswith("tests_"): + self.category_stats[category][stat] += 1 else: - self.dut_stats[dut][stat] += 1 - if stat in self.category_stats[category]: - self.category_stats[category][stat] += 1 + self.dut_stats[dut][stat].add(category) def update_results(self, result: dict) -> None: """Update the internal statistics and test results based on the given test result. @@ -114,13 +120,15 @@ def update_results(self, result: dict) -> None: self.test_id += 1 parsed_result = self._parse_result(result) test_result = parsed_result["result"] - category = parsed_result["test_category"] + categories = parsed_result["test_categories"] dut = parsed_result["node"] - self._increment_stats(test_result, dut, category) + self._increment_stats(test_result, dut, categories) if test_result == "FAIL": self.failed_tests.append(parsed_result) + elif test_result == "NOT RUN": + self.total_tests_not_run += 1 if not self.only_failed_tests: self.all_tests.append(parsed_result) @@ -132,4 +140,4 @@ def total_tests(self) -> int: ------- int: The total number of tests. """ - return self.total_tests_passed + self.total_tests_failed + self.total_tests_skipped + return self.total_tests_passed + self.total_tests_failed + self.total_tests_skipped + self.total_tests_not_run diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/python_modules/tests/avdtesthardware.py b/ansible_collections/arista/avd/roles/eos_validate_state/python_modules/tests/avdtesthardware.py index 102a7979dcd..1937e152fa6 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/python_modules/tests/avdtesthardware.py +++ b/ansible_collections/arista/avd/roles/eos_validate_state/python_modules/tests/avdtesthardware.py @@ -15,7 +15,6 @@ class AvdTestHardware(AvdTestBase): """ anta_module = "anta.tests.hardware" - categories = ["Hardware"] @cached_property def test_definition(self) -> dict: @@ -29,24 +28,10 @@ def test_definition(self) -> dict: xcvr_manufacturers.append("Not Present") anta_tests = [ - { - "VerifyEnvironmentPower": { - "states": get(self.hostvars[self.device_name], "validation_role.pwr_supply_states", ["ok"]), - "result_overwrite": {"categories": self.categories}, - } - }, - { - "VerifyEnvironmentCooling": { - "states": get(self.hostvars[self.device_name], "validation_role.fan_states", ["ok"]), - "result_overwrite": {"categories": self.categories}, - } - }, - { - "VerifyTemperature": { - "result_overwrite": {"categories": self.categories}, - } - }, - {"VerifyTransceiversManufacturers": {"manufacturers": xcvr_manufacturers, "result_overwrite": {"categories": self.categories}}}, + {"VerifyEnvironmentPower": {"states": get(self.hostvars[self.device_name], "validation_role.pwr_supply_states", ["ok"])}}, + {"VerifyEnvironmentCooling": {"states": get(self.hostvars[self.device_name], "validation_role.fan_states", ["ok"])}}, + {"VerifyTemperature": {}}, + {"VerifyTransceiversManufacturers": {"manufacturers": xcvr_manufacturers}}, ] return {self.anta_module: anta_tests} diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/python_modules/tests/avdtestinterfaces.py b/ansible_collections/arista/avd/roles/eos_validate_state/python_modules/tests/avdtestinterfaces.py index 5446edfd8e9..116438a331c 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/python_modules/tests/avdtestinterfaces.py +++ b/ansible_collections/arista/avd/roles/eos_validate_state/python_modules/tests/avdtestinterfaces.py @@ -66,10 +66,10 @@ def generate_test_details(interface: dict, description_template: str) -> tuple(s return "up", "up", description_template.format(state="up") interface_types = [ - ("ethernet_interfaces", r"Ethernet Interface & Line Protocol == \"{state}\""), - ("port_channel_interfaces", r"Port-Channel Interface & Line Protocol == \"{state}\""), - ("vlan_interfaces", r"Vlan Interface & Line Protocol == \"{state}\""), - ("loopback_interfaces", r"Loopback Interface Status & Line Protocol == \"up\""), + ("ethernet_interfaces", "Ethernet Interface & Line Protocol == '{state}'"), + ("port_channel_interfaces", "Port-Channel Interface & Line Protocol == '{state}'"), + ("vlan_interfaces", "Vlan Interface & Line Protocol == '{state}'"), + ("loopback_interfaces", "Loopback Interface Status & Line Protocol == 'up'"), ] for interface_key, description_template in interface_types: @@ -82,6 +82,6 @@ def generate_test_details(interface: dict, description_template: str) -> tuple(s add_test(str(interface["name"]), state, proto, description, custom_field) if get(self.hostvars[self.device_name], "vxlan_interface.Vxlan1") is not None: - add_test("Vxlan1", "up", "up", r"Vxlan Interface Status & Line Protocol == \"up\"", "Vxlan1") + add_test("Vxlan1", "up", "up", "Vxlan Interface Status & Line Protocol == 'up'", "Vxlan1") return {self.anta_module: anta_tests} if anta_tests else None diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/python_modules/tests/avdtestmlag.py b/ansible_collections/arista/avd/roles/eos_validate_state/python_modules/tests/avdtestmlag.py index eea6e7d6645..b51f221386b 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/python_modules/tests/avdtestmlag.py +++ b/ansible_collections/arista/avd/roles/eos_validate_state/python_modules/tests/avdtestmlag.py @@ -14,7 +14,6 @@ class AvdTestMLAG(AvdTestBase): """ anta_module = "anta.tests.mlag" - categories = ["MLAG"] @cached_property def test_definition(self) -> dict: @@ -28,11 +27,7 @@ def test_definition(self) -> dict: return None anta_tests = [ - { - "VerifyMlagStatus": { - "result_overwrite": {"categories": self.categories, "description": "MLAG State active & Status connected", "custom_field": "MLAG"} - } - }, + {"VerifyMlagStatus": {}}, ] return {self.anta_module: anta_tests} From 05a11044e9c6b0d04dfe54ed18c08914717dfc21 Mon Sep 17 00:00:00 2001 From: Carl Baillargeon Date: Wed, 22 Nov 2023 09:43:15 -0500 Subject: [PATCH 09/26] Fix per review comments --- .../action/eos_validate_state_reports.py | 27 +++++++------------ .../eos_validate_state_utils/md_report.py | 8 +++--- .../results_manager.py | 5 ++-- 3 files changed, 16 insertions(+), 24 deletions(-) diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py index 6dcbc143767..1089b8da996 100644 --- a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py @@ -36,20 +36,6 @@ def _test_results_gen(input_path: str) -> Generator[dict, None, None]: yield from load(file) -def _generate_report(report_path: str, report_class: type, test_results: ResultsManager) -> None: - """Generate a report using the specified report class. - - Args: - ---- - report_path: The path to the report file. - report_class: The class used to generate the report. - test_results: The ResultsManager object containing the test results. - """ - with Path(report_path).open("w", encoding="UTF-8") as report_file: - report = report_class(report_file, test_results) - report.generate_report() - - class ActionModule(ActionBase): def _validate_arg_boolean(self, arg_name: str, *, default_value: bool) -> bool: """Validate if a task argument is a boolean.""" @@ -99,12 +85,13 @@ def run(self, tmp=None, task_vars=None): # Initialize an empty ResultsManager that will be used to store results and statistics test_results = ResultsManager(only_failed_tests=only_failed_tests) for host in sorted(ansible_play_hosts_all): + host_hostvars = hostvars[host] # Hosts marked as not deployed do not have any results - if not get(hostvars[host], "is_deployed"): + if not get(host_hostvars, "is_deployed", default=True): display.warning(f"No test results for host {host} since it's marked as not deployed.") continue # Getting the host results temp file saved by eos_validate_state_runner action plugin - temp_file = get(hostvars[host], "anta_results.results_temp_file") + temp_file = get(host_hostvars, "anta_results.results_temp_file") if not isinstance(temp_file, str) or not Path(temp_file).exists(): display.warning(f"Results temporary file path is invalid or does not exist for host {host}.") continue @@ -120,9 +107,13 @@ def run(self, tmp=None, task_vars=None): # Generate the reports if validation_report_csv: - _generate_report(report_path=csv_report_path, report_class=CSVReport, test_results=test_results) + with Path(csv_report_path).open("w", encoding="UTF-8") as report_file: + csv_report = CSVReport(report_file, test_results) + csv_report.generate_report() if validation_report_md: - _generate_report(report_path=md_report_path, report_class=ValidateStateReport, test_results=test_results) + with Path(md_report_path).open("w", encoding="UTF-8") as report_file: + md_report = ValidateStateReport(report_file, test_results) + md_report.generate_report() except Exception as error: raise AnsibleActionFail(f"Error during plugin execution: {error}") from error diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py index ea03a322e5f..d3ed924a71d 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py @@ -165,12 +165,12 @@ class SummaryTotalsDevicesUnderTests(MDReportBase): def generate_rows(self) -> Generator[str, None, None]: """Generate the rows of the results table.""" for dut, stat in self.results.dut_stats.items(): - total_tests = stat["tests_passed"] + stat["tests_failed"] + stat["tests_skipped"] + total_tests = stat["tests_passed"] + stat["tests_failed"] + stat["tests_skipped"] + stat["tests_not_run"] categories_failed = ", ".join(sorted(stat["categories_failed"])) categories_skipped = ", ".join(sorted(stat["categories_skipped"])) yield ( - f"| {dut} | {total_tests} | {stat['tests_passed']} | {stat['tests_failed']} | {stat['tests_skipped']} | {categories_failed} |" - f" {categories_skipped} |\n" + f"| {dut} | {total_tests} | {stat['tests_passed']} | {stat['tests_failed']} | {stat['tests_skipped']} | {categories_failed or '-'} |" + f" {categories_skipped or '-'} |\n" ) def generate_section(self) -> None: @@ -189,7 +189,7 @@ class SummaryTotalsPerCategory(MDReportBase): def generate_rows(self) -> Generator[str, None, None]: """Generate the rows of the results table.""" for category, stat in self.results.category_stats.items(): - total_tests = stat["tests_passed"] + stat["tests_failed"] + stat["tests_skipped"] + total_tests = stat["tests_passed"] + stat["tests_failed"] + stat["tests_skipped"] + stat["tests_not_run"] yield f"| {category} | {total_tests} | {stat['tests_passed']} | {stat['tests_failed']} | {stat['tests_skipped']} |\n" def generate_section(self) -> None: diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py index d13cf6eac97..93295edc731 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py @@ -34,6 +34,7 @@ def __init__(self, *, only_failed_tests: bool = True) -> None: "tests_passed": 0, "tests_failed": 0, "tests_skipped": 0, + "tests_not_run": 0, "categories_failed": set(), "categories_skipped": set(), }, @@ -43,6 +44,7 @@ def __init__(self, *, only_failed_tests: bool = True) -> None: "tests_passed": 0, "tests_failed": 0, "tests_skipped": 0, + "tests_not_run": 0, }, ) self.failed_tests = [] @@ -95,6 +97,7 @@ def _increment_stats(self, test_result: str, dut: str, categories: list[str]) -> "PASS": ("total_tests_passed", "tests_passed"), "FAIL": ("total_tests_failed", "tests_failed", "categories_failed"), "SKIPPED": ("total_tests_skipped", "tests_skipped", "categories_skipped"), + "NOT RUN": ("total_tests_not_run", "tests_not_run"), } stats_to_increment = stats_mapping.get(test_result, ()) @@ -127,8 +130,6 @@ def update_results(self, result: dict) -> None: if test_result == "FAIL": self.failed_tests.append(parsed_result) - elif test_result == "NOT RUN": - self.total_tests_not_run += 1 if not self.only_failed_tests: self.all_tests.append(parsed_result) From 7570e4e7f4e7e514069fe55712869c978c6ca920 Mon Sep 17 00:00:00 2001 From: Carl Baillargeon Date: Wed, 22 Nov 2023 20:51:45 -0500 Subject: [PATCH 10/26] Update molecule --- .../reports/FABRIC-state.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.md b/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.md index 8984470eb57..1b0e0134c8b 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.md +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.md @@ -19,11 +19,35 @@ | DUT | Total Tests | Tests Passed | Tests Failed | Tests Skipped | Categories Failed | Categories Skipped | | --- | ----------- | ------------ | ------------ | ------------- | ----------------- | ------------------ | +| dc1-leaf1a | 67 | 0 | 0 | 0 | - | - | +| dc1-leaf1b | 67 | 0 | 0 | 0 | - | - | +| dc1-leaf1c | 11 | 0 | 0 | 0 | - | - | +| dc1-leaf2a | 69 | 0 | 0 | 0 | - | - | +| dc1-leaf2c | 10 | 0 | 0 | 0 | - | - | +| dc1-spine1 | 23 | 0 | 0 | 0 | - | - | +| dc1-spine2 | 23 | 0 | 0 | 0 | - | - | +| dc2-leaf1a | 67 | 0 | 0 | 0 | - | - | +| dc2-leaf1b | 67 | 0 | 0 | 0 | - | - | +| dc2-leaf1c | 11 | 0 | 0 | 0 | - | - | +| dc2-leaf2a | 72 | 0 | 0 | 0 | - | - | +| dc2-leaf2b | 68 | 0 | 0 | 0 | - | - | +| dc2-leaf2c | 11 | 0 | 0 | 0 | - | - | +| dc2-spine1 | 27 | 0 | 0 | 0 | - | - | +| dc2-spine2 | 27 | 0 | 0 | 0 | - | - | ### Summary Totals Per Category | Test Category | Total Tests | Tests Passed | Tests Failed | Tests Skipped | | ------------- | ----------- | ------------ | ------------ | ------------- | +| BGP | 77 | 0 | 0 | 0 | +| Hardware | 60 | 0 | 0 | 0 | +| Interface State | 193 | 0 | 0 | 0 | +| IP Reachability | 30 | 0 | 0 | 0 | +| LLDP Topology | 56 | 0 | 0 | 0 | +| Loopback0 Reachability | 77 | 0 | 0 | 0 | +| MLAG | 7 | 0 | 0 | 0 | +| NTP | 15 | 0 | 0 | 0 | +| Routing Table | 105 | 0 | 0 | 0 | ## Failed Test Results Summary From 3ccff5fbf8f7503cdc31f93af92be08ad64d854f Mon Sep 17 00:00:00 2001 From: Carl Baillargeon Date: Tue, 28 Nov 2023 17:25:23 -0500 Subject: [PATCH 11/26] Added plugin doc --- .../eos_validate_state_reports.md | 65 + .../reports/FABRIC-state.csv | 1242 ++++++++--------- .../action/eos_validate_state_reports.py | 36 +- .../action/eos_validate_state_runner.py | 79 +- .../modules/eos_validate_state_reports.py | 73 + .../eos_validate_state/defaults/main.yml | 4 + .../eos_validate_state/tasks/anta_tests.yml | 2 + .../roles/eos_validate_state/tasks/main.yml | 1 + 8 files changed, 827 insertions(+), 675 deletions(-) create mode 100644 ansible_collections/arista/avd/docs/plugins/Modules and action plugins/eos_validate_state_reports.md create mode 100644 ansible_collections/arista/avd/plugins/modules/eos_validate_state_reports.py diff --git a/ansible_collections/arista/avd/docs/plugins/Modules and action plugins/eos_validate_state_reports.md b/ansible_collections/arista/avd/docs/plugins/Modules and action plugins/eos_validate_state_reports.md new file mode 100644 index 00000000000..305b22dc748 --- /dev/null +++ b/ansible_collections/arista/avd/docs/plugins/Modules and action plugins/eos_validate_state_reports.md @@ -0,0 +1,65 @@ + + +# eos_validate_state_reports + +!!! note + Always use the FQCN (Fully Qualified Collection Name) `arista.avd.eos_validate_state_reports` when using this plugin. + +!!! warning "This module is in **preview** mode" + This module is not guaranteed to have a backwards compatible interface. + +Generates validation reports for the eos\_validate\_state role + +## Synopsis + +The arista.avd.eos\_validate\_state\_reports module, an Ansible Action Plugin, is designed to generate validation reports from the test results produced by the ANTA test framework. + +This plugin requires a temporary JSON file for each host in the Ansible play, which contains all test results. The path to this temporary JSON file, used by the plugin, is supplied in the hostvars by the \`eos\_validate\_state\_runner\` plugin. + +The plugin offers the following functionalities\: + \- It aggregates all test results from every host in the Ansible play and generates a CSV report. + \- It produces a detailed Markdown report with various sections presenting key statistics derived from the results. + \- The design allows for easy extension to support additional report formats in the future. + +## Parameters + +| Argument | Type | Required | Default | Value Restrictions | Description | +| -------- | ---- | -------- | ------- | ------------------ | ----------- | +| validation_report_csv | bool | optional | True | | Indicates whether a CSV report should be generated. | +| validation_report_md | bool | optional | True | | Indicates whether a Markdown report should be generated. | +| only_failed_tests | bool | optional | False | | Determines if the generated reports should include only the failed tests. | +| csv_report_path | str | optional | None | | Specifies the absolute path where the CSV report will be saved.
Required if validation\_report\_csv is set to True. | +| md_report_path | str | optional | None | | Specifies the absolute path where the Markdown report will be saved.
Required if validation\_report\_md is set to True. | +| cprofile_file | any | optional | None | | Specifies the filename for storing cProfile data, which aids in debugging performance issues.
Note that enabling cProfile can itself impact performance, so it should only be used for troubleshooting. | + +## Notes + +- Enabling the cProfile feature for performance profiling may impact the plugin\'s performance, especially in production environments. +- The plugin manages temporary files created for processing test results, ensuring clean\-up post\-execution. +- Hosts marked as not deployed are automatically skipped, and no test results are processed for these hosts. + +## See Also + +- ANTA website: [https://anta.ninja](https://anta.ninja)
Documentation for the ANTA test framework + +## Examples + +```yaml +- name: Generate validation reports from ANTA test results + arista.avd.eos_validate_state_reports: + csv_report_path: "/git_projects/my_avd_project/reports/my-fabric-state.csv" + md_report_path: "/git_projects/my_avd_project/reports/my-fabric-state.md" + validation_report_csv: true + validation_report_md: true + only_failed_tests: false + delegate_to: localhost + run_once: true +``` + +## Authors + +- Arista Ansible Team (@aristanetworks) diff --git a/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.csv b/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.csv index 8cf6721699f..15e8d268fe3 100644 --- a/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.csv +++ b/ansible_collections/arista/avd/molecule/eos_validate_state/reports/FABRIC-state.csv @@ -1,621 +1,621 @@ -test_id,node,test_categories,test_description,test,result,failure_reasons -1,dc1-leaf1a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -2,dc1-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,NOT RUN, -3,dc1-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,NOT RUN, -4,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.97,NOT RUN, -5,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.0,NOT RUN, -6,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.2,NOT RUN, -7,dc1-leaf1a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -8,dc1-leaf1a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -9,dc1-leaf1a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -10,dc1-leaf1a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -11,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet1,NOT RUN, -12,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet1,NOT RUN, -13,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc1-leaf1b_Ethernet3,NOT RUN, -14,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc1-leaf1b_Ethernet4,NOT RUN, -15,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc1-leaf1-server1_PCI1,NOT RUN, -16,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC1-LEAF1C_Ethernet1,NOT RUN, -17,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, -18,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -19,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -20,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -21,dc1-leaf1a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc1-leaf1b_Po3,NOT RUN, -22,dc1-leaf1a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1,NOT RUN, -23,dc1-leaf1a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC1-LEAF1C_Po1,NOT RUN, -24,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, -25,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, -26,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, -27,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, -28,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -29,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -30,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -31,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, -32,dc1-leaf1a,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, -33,dc1-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1a_Ethernet1 - Destination: dc1-spine1_Ethernet1,NOT RUN, -34,dc1-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1a_Ethernet2 - Destination: dc1-spine2_Ethernet1,NOT RUN, -35,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet1,NOT RUN, -36,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet1,NOT RUN, -37,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf1b_Ethernet3,NOT RUN, -38,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf1b_Ethernet4,NOT RUN, -39,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf1c_Ethernet1,NOT RUN, -40,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.1,NOT RUN, -41,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.2,NOT RUN, -42,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.3,NOT RUN, -43,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.4,NOT RUN, -44,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.5,NOT RUN, -45,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.11,NOT RUN, -46,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.12,NOT RUN, -47,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.13,NOT RUN, -48,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.14,NOT RUN, -49,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.15,NOT RUN, -50,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.16,NOT RUN, -51,dc1-leaf1a,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, -52,dc1-leaf1a,NTP,Synchronised with NTP server,NTP,NOT RUN, -53,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -54,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -55,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -56,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -57,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -58,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -59,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -60,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -61,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -62,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -63,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -64,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -65,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -66,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -67,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -68,dc1-leaf1b,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -69,dc1-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,NOT RUN, -70,dc1-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,NOT RUN, -71,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.96,NOT RUN, -72,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.4,NOT RUN, -73,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.6,NOT RUN, -74,dc1-leaf1b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -75,dc1-leaf1b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -76,dc1-leaf1b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -77,dc1-leaf1b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -78,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet2,NOT RUN, -79,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet2,NOT RUN, -80,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc1-leaf1a_Ethernet3,NOT RUN, -81,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc1-leaf1a_Ethernet4,NOT RUN, -82,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc1-leaf1-server1_PCI2,NOT RUN, -83,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC1-LEAF1C_Ethernet2,NOT RUN, -84,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, -85,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -86,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -87,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -88,dc1-leaf1b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc1-leaf1a_Po3,NOT RUN, -89,dc1-leaf1b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1,NOT RUN, -90,dc1-leaf1b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC1-LEAF1C_Po1,NOT RUN, -91,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, -92,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, -93,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, -94,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, -95,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -96,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -97,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -98,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, -99,dc1-leaf1b,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, -100,dc1-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1b_Ethernet1 - Destination: dc1-spine1_Ethernet2,NOT RUN, -101,dc1-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1b_Ethernet2 - Destination: dc1-spine2_Ethernet2,NOT RUN, -102,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet2,NOT RUN, -103,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet2,NOT RUN, -104,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf1a_Ethernet3,NOT RUN, -105,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf1a_Ethernet4,NOT RUN, -106,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf1c_Ethernet2,NOT RUN, -107,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.1,NOT RUN, -108,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.2,NOT RUN, -109,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.3,NOT RUN, -110,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.4,NOT RUN, -111,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.5,NOT RUN, -112,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.11,NOT RUN, -113,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.12,NOT RUN, -114,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.13,NOT RUN, -115,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.14,NOT RUN, -116,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.15,NOT RUN, -117,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.16,NOT RUN, -118,dc1-leaf1b,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, -119,dc1-leaf1b,NTP,Synchronised with NTP server,NTP,NOT RUN, -120,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -121,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -122,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -123,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -124,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -125,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -126,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -127,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -128,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -129,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -130,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -131,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -132,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -133,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -134,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -135,dc1-leaf1c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -136,dc1-leaf1c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -137,dc1-leaf1c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -138,dc1-leaf1c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -139,dc1-leaf1c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - DC1-LEAF1A_Ethernet8,NOT RUN, -140,dc1-leaf1c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - DC1-LEAF1B_Ethernet8,NOT RUN, -141,dc1-leaf1c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc1-leaf1-server1_iLO,NOT RUN, -142,dc1-leaf1c,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel1 - DC1_L3_LEAF1_Po8,NOT RUN, -143,dc1-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet8,NOT RUN, -144,dc1-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf1b_Ethernet8,NOT RUN, -145,dc1-leaf1c,NTP,Synchronised with NTP server,NTP,NOT RUN, -146,dc1-leaf2a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -147,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,NOT RUN, -148,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,NOT RUN, -149,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,NOT RUN, -150,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.10,NOT RUN, -151,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.8,NOT RUN, -152,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.1,NOT RUN, -153,dc1-leaf2a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -154,dc1-leaf2a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -155,dc1-leaf2a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -156,dc1-leaf2a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -157,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet3,NOT RUN, -158,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet3,NOT RUN, -159,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc1-leaf2b_Ethernet3,NOT RUN, -160,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc1-leaf2b_Ethernet4,NOT RUN, -161,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc1-leaf2-server1_PCI1,NOT RUN, -162,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet6 - P2P_LINK_TO_dc2-leaf2a_Ethernet6,NOT RUN, -163,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC1-LEAF2C_Ethernet1,NOT RUN, -164,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, -165,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -166,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -167,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -168,dc1-leaf2a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc1-leaf2b_Po3,NOT RUN, -169,dc1-leaf2a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1,NOT RUN, -170,dc1-leaf2a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC1-LEAF2C_Po1,NOT RUN, -171,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, -172,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, -173,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, -174,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, -175,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -176,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -177,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -178,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, -179,dc1-leaf2a,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, -180,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet1 - Destination: dc1-spine1_Ethernet3,NOT RUN, -181,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet2 - Destination: dc1-spine2_Ethernet3,NOT RUN, -182,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet6 - Destination: dc2-leaf2a_Ethernet6,NOT RUN, -183,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet3,NOT RUN, -184,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet3,NOT RUN, -185,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc2-leaf2a_Ethernet6,NOT RUN, -186,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf2c_Ethernet1,NOT RUN, -187,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.1,NOT RUN, -188,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.2,NOT RUN, -189,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.3,NOT RUN, -190,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.4,NOT RUN, -191,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.5,NOT RUN, -192,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.11,NOT RUN, -193,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.12,NOT RUN, -194,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.13,NOT RUN, -195,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.14,NOT RUN, -196,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.15,NOT RUN, -197,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.16,NOT RUN, -198,dc1-leaf2a,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, -199,dc1-leaf2a,NTP,Synchronised with NTP server,NTP,NOT RUN, -200,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -201,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -202,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -203,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -204,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -205,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -206,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -207,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -208,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -209,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -210,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -211,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -212,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -213,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -214,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -215,dc1-leaf2c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -216,dc1-leaf2c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -217,dc1-leaf2c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -218,dc1-leaf2c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -219,dc1-leaf2c,Interface State,Ethernet Interface & Line Protocol == 'adminDown',Ethernet2 - DC1-LEAF2B_Ethernet8,NOT RUN, -220,dc1-leaf2c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - DC1-LEAF2A_Ethernet8,NOT RUN, -221,dc1-leaf2c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc1-leaf2-server1_iLO,NOT RUN, -222,dc1-leaf2c,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel1 - DC1_L3_LEAF2_Po8,NOT RUN, -223,dc1-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf2a_Ethernet8,NOT RUN, -224,dc1-leaf2c,NTP,Synchronised with NTP server,NTP,NOT RUN, -225,dc1-spine1,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -226,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.3,NOT RUN, -227,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.4,NOT RUN, -228,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,NOT RUN, -229,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.1,NOT RUN, -230,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.5,NOT RUN, -231,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.9,NOT RUN, -232,dc1-spine1,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -233,dc1-spine1,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -234,dc1-spine1,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -235,dc1-spine1,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -236,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == 'adminDown',Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet1,NOT RUN, -237,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet1,NOT RUN, -238,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet1,NOT RUN, -239,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet1,NOT RUN, -240,dc1-spine1,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, -241,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet1 - Destination: dc1-leaf1a_Ethernet1,NOT RUN, -242,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet2 - Destination: dc1-leaf1b_Ethernet1,NOT RUN, -243,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet3 - Destination: dc1-leaf2a_Ethernet1,NOT RUN, -244,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet1,NOT RUN, -245,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf1b_Ethernet1,NOT RUN, -246,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2a_Ethernet1,NOT RUN, -247,dc1-spine1,NTP,Synchronised with NTP server,NTP,NOT RUN, -248,dc1-spine2,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -249,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.3,NOT RUN, -250,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.4,NOT RUN, -251,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,NOT RUN, -252,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.11,NOT RUN, -253,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.3,NOT RUN, -254,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.7,NOT RUN, -255,dc1-spine2,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -256,dc1-spine2,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -257,dc1-spine2,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -258,dc1-spine2,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -259,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == 'adminDown',Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet2,NOT RUN, -260,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet2,NOT RUN, -261,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet2,NOT RUN, -262,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet2,NOT RUN, -263,dc1-spine2,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, -264,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet1 - Destination: dc1-leaf1a_Ethernet2,NOT RUN, -265,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet2 - Destination: dc1-leaf1b_Ethernet2,NOT RUN, -266,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet3 - Destination: dc1-leaf2a_Ethernet2,NOT RUN, -267,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet2,NOT RUN, -268,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf1b_Ethernet2,NOT RUN, -269,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2a_Ethernet2,NOT RUN, -270,dc1-spine2,NTP,Synchronised with NTP server,NTP,NOT RUN, -271,dc2-leaf1a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -272,dc2-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, -273,dc2-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, -274,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.117,NOT RUN, -275,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.104,NOT RUN, -276,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.106,NOT RUN, -277,dc2-leaf1a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -278,dc2-leaf1a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -279,dc2-leaf1a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -280,dc2-leaf1a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -281,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet1,NOT RUN, -282,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet1,NOT RUN, -283,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc2-leaf1b_Ethernet3,NOT RUN, -284,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc2-leaf1b_Ethernet4,NOT RUN, -285,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc2-leaf1-server1_PCI1,NOT RUN, -286,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC2-LEAF1C_Ethernet1,NOT RUN, -287,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, -288,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -289,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -290,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -291,dc2-leaf1a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc2-leaf1b_Po3,NOT RUN, -292,dc2-leaf1a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1,NOT RUN, -293,dc2-leaf1a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC2-LEAF1C_Po1,NOT RUN, -294,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, -295,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, -296,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, -297,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, -298,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -299,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -300,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -301,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, -302,dc2-leaf1a,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, -303,dc2-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1a_Ethernet1 - Destination: dc2-spine1_Ethernet1,NOT RUN, -304,dc2-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1a_Ethernet2 - Destination: dc2-spine2_Ethernet1,NOT RUN, -305,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet1,NOT RUN, -306,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet1,NOT RUN, -307,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf1b_Ethernet3,NOT RUN, -308,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf1b_Ethernet4,NOT RUN, -309,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf1c_Ethernet1,NOT RUN, -310,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.1,NOT RUN, -311,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.2,NOT RUN, -312,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.3,NOT RUN, -313,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.4,NOT RUN, -314,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.5,NOT RUN, -315,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.11,NOT RUN, -316,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.12,NOT RUN, -317,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.13,NOT RUN, -318,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.14,NOT RUN, -319,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.15,NOT RUN, -320,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.16,NOT RUN, -321,dc2-leaf1a,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, -322,dc2-leaf1a,NTP,Synchronised with NTP server,NTP,NOT RUN, -323,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -324,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -325,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -326,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -327,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -328,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -329,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -330,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -331,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -332,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -333,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -334,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -335,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -336,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -337,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -338,dc2-leaf1b,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -339,dc2-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, -340,dc2-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, -341,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.116,NOT RUN, -342,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.108,NOT RUN, -343,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.110,NOT RUN, -344,dc2-leaf1b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -345,dc2-leaf1b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -346,dc2-leaf1b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -347,dc2-leaf1b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -348,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet2,NOT RUN, -349,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet2,NOT RUN, -350,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc2-leaf1a_Ethernet3,NOT RUN, -351,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc2-leaf1a_Ethernet4,NOT RUN, -352,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc2-leaf1-server1_PCI2,NOT RUN, -353,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC2-LEAF1C_Ethernet2,NOT RUN, -354,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, -355,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -356,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -357,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -358,dc2-leaf1b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc2-leaf1a_Po3,NOT RUN, -359,dc2-leaf1b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1,NOT RUN, -360,dc2-leaf1b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC2-LEAF1C_Po1,NOT RUN, -361,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, -362,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, -363,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, -364,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, -365,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -366,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -367,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -368,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, -369,dc2-leaf1b,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, -370,dc2-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1b_Ethernet1 - Destination: dc2-spine1_Ethernet2,NOT RUN, -371,dc2-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1b_Ethernet2 - Destination: dc2-spine2_Ethernet2,NOT RUN, -372,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet2,NOT RUN, -373,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet2,NOT RUN, -374,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf1a_Ethernet3,NOT RUN, -375,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf1a_Ethernet4,NOT RUN, -376,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf1c_Ethernet2,NOT RUN, -377,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.1,NOT RUN, -378,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.2,NOT RUN, -379,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.3,NOT RUN, -380,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.4,NOT RUN, -381,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.5,NOT RUN, -382,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.11,NOT RUN, -383,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.12,NOT RUN, -384,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.13,NOT RUN, -385,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.14,NOT RUN, -386,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.15,NOT RUN, -387,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.16,NOT RUN, -388,dc2-leaf1b,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, -389,dc2-leaf1b,NTP,Synchronised with NTP server,NTP,NOT RUN, -390,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -391,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -392,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -393,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -394,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -395,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -396,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -397,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -398,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -399,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -400,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -401,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -402,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -403,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -404,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -405,dc2-leaf1c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -406,dc2-leaf1c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -407,dc2-leaf1c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -408,dc2-leaf1c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -409,dc2-leaf1c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - DC2-LEAF1A_Ethernet8,NOT RUN, -410,dc2-leaf1c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - DC2-LEAF1B_Ethernet8,NOT RUN, -411,dc2-leaf1c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc2-leaf1-server1_iLO,NOT RUN, -412,dc2-leaf1c,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel1 - DC2_L3_LEAF1_Po8,NOT RUN, -413,dc2-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet8,NOT RUN, -414,dc2-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet8,NOT RUN, -415,dc2-leaf1c,NTP,Synchronised with NTP server,NTP,NOT RUN, -416,dc2-leaf2a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -417,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,NOT RUN, -418,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, -419,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, -420,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.121,NOT RUN, -421,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.112,NOT RUN, -422,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.114,NOT RUN, -423,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.0,NOT RUN, -424,dc2-leaf2a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -425,dc2-leaf2a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -426,dc2-leaf2a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -427,dc2-leaf2a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -428,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet3,NOT RUN, -429,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet3,NOT RUN, -430,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc2-leaf2b_Ethernet3,NOT RUN, -431,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc2-leaf2b_Ethernet4,NOT RUN, -432,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc2-leaf2-server1_PCI1,NOT RUN, -433,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet6 - P2P_LINK_TO_dc1-leaf2a_Ethernet6,NOT RUN, -434,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC2-LEAF2C_Ethernet1,NOT RUN, -435,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, -436,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -437,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -438,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -439,dc2-leaf2a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc2-leaf2b_Po3,NOT RUN, -440,dc2-leaf2a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1,NOT RUN, -441,dc2-leaf2a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC2-LEAF2C_Po1,NOT RUN, -442,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, -443,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, -444,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, -445,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, -446,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -447,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -448,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -449,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, -450,dc2-leaf2a,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, -451,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet1 - Destination: dc2-spine1_Ethernet3,NOT RUN, -452,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet2 - Destination: dc2-spine2_Ethernet3,NOT RUN, -453,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet6 - Destination: dc1-leaf2a_Ethernet6,NOT RUN, -454,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet3,NOT RUN, -455,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet3,NOT RUN, -456,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2b_Ethernet3,NOT RUN, -457,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet4,NOT RUN, -458,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc1-leaf2a_Ethernet6,NOT RUN, -459,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf2c_Ethernet1,NOT RUN, -460,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.1,NOT RUN, -461,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.2,NOT RUN, -462,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.3,NOT RUN, -463,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.4,NOT RUN, -464,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.5,NOT RUN, -465,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.11,NOT RUN, -466,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.12,NOT RUN, -467,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.13,NOT RUN, -468,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.14,NOT RUN, -469,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.15,NOT RUN, -470,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.16,NOT RUN, -471,dc2-leaf2a,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, -472,dc2-leaf2a,NTP,Synchronised with NTP server,NTP,NOT RUN, -473,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -474,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -475,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -476,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -477,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -478,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -479,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -480,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -481,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -482,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -483,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -484,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -485,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -486,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -487,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -488,dc2-leaf2b,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -489,dc2-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, -490,dc2-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, -491,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.120,NOT RUN, -492,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.116,NOT RUN, -493,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.118,NOT RUN, -494,dc2-leaf2b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -495,dc2-leaf2b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -496,dc2-leaf2b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -497,dc2-leaf2b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -498,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet4,NOT RUN, -499,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet4,NOT RUN, -500,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc2-leaf2a_Ethernet3,NOT RUN, -501,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc2-leaf2a_Ethernet4,NOT RUN, -502,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc2-leaf2-server1_PCI2,NOT RUN, -503,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet6 - P2P_LINK_TO_dc1-leaf2b_Ethernet6,NOT RUN, -504,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC2-LEAF2C_Ethernet2,NOT RUN, -505,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, -506,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, -507,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, -508,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, -509,dc2-leaf2b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc2-leaf2a_Po3,NOT RUN, -510,dc2-leaf2b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1,NOT RUN, -511,dc2-leaf2b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC2-LEAF2C_Po1,NOT RUN, -512,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, -513,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, -514,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, -515,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, -516,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, -517,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, -518,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, -519,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, -520,dc2-leaf2b,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, -521,dc2-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2b_Ethernet1 - Destination: dc2-spine1_Ethernet4,NOT RUN, -522,dc2-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2b_Ethernet2 - Destination: dc2-spine2_Ethernet4,NOT RUN, -523,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet4,NOT RUN, -524,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet4,NOT RUN, -525,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet3,NOT RUN, -526,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2a_Ethernet4,NOT RUN, -527,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf2c_Ethernet2,NOT RUN, -528,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.1,NOT RUN, -529,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.2,NOT RUN, -530,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.3,NOT RUN, -531,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.4,NOT RUN, -532,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.5,NOT RUN, -533,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.11,NOT RUN, -534,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.12,NOT RUN, -535,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.13,NOT RUN, -536,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.14,NOT RUN, -537,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.15,NOT RUN, -538,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.16,NOT RUN, -539,dc2-leaf2b,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, -540,dc2-leaf2b,NTP,Synchronised with NTP server,NTP,NOT RUN, -541,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, -542,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, -543,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, -544,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, -545,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, -546,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, -547,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, -548,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, -549,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, -550,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, -551,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, -552,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, -553,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, -554,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, -555,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, -556,dc2-leaf2c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -557,dc2-leaf2c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -558,dc2-leaf2c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -559,dc2-leaf2c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -560,dc2-leaf2c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - DC2-LEAF2A_Ethernet8,NOT RUN, -561,dc2-leaf2c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - DC2-LEAF2B_Ethernet8,NOT RUN, -562,dc2-leaf2c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc2-leaf2-server1_iLO,NOT RUN, -563,dc2-leaf2c,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel1 - DC2_L3_LEAF2_Po8,NOT RUN, -564,dc2-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf2a_Ethernet8,NOT RUN, -565,dc2-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf2b_Ethernet8,NOT RUN, -566,dc2-leaf2c,NTP,Synchronised with NTP server,NTP,NOT RUN, -567,dc2-spine1,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -568,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.13,NOT RUN, -569,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.14,NOT RUN, -570,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,NOT RUN, -571,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.16,NOT RUN, -572,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.105,NOT RUN, -573,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.109,NOT RUN, -574,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.113,NOT RUN, -575,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.117,NOT RUN, -576,dc2-spine1,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -577,dc2-spine1,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -578,dc2-spine1,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -579,dc2-spine1,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -580,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet1,NOT RUN, -581,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet1,NOT RUN, -582,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet1,NOT RUN, -583,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet1,NOT RUN, -584,dc2-spine1,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, -585,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet1 - Destination: dc2-leaf1a_Ethernet1,NOT RUN, -586,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet2 - Destination: dc2-leaf1b_Ethernet1,NOT RUN, -587,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet3 - Destination: dc2-leaf2a_Ethernet1,NOT RUN, -588,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet4 - Destination: dc2-leaf2b_Ethernet1,NOT RUN, -589,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet1,NOT RUN, -590,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet1,NOT RUN, -591,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet1,NOT RUN, -592,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet1,NOT RUN, -593,dc2-spine1,NTP,Synchronised with NTP server,NTP,NOT RUN, -594,dc2-spine2,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, -595,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.13,NOT RUN, -596,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.14,NOT RUN, -597,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,NOT RUN, -598,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.16,NOT RUN, -599,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.107,NOT RUN, -600,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.111,NOT RUN, -601,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.115,NOT RUN, -602,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.119,NOT RUN, -603,dc2-spine2,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, -604,dc2-spine2,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, -605,dc2-spine2,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, -606,dc2-spine2,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, -607,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet2,NOT RUN, -608,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet2,NOT RUN, -609,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet2,NOT RUN, -610,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet2,NOT RUN, -611,dc2-spine2,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, -612,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet1 - Destination: dc2-leaf1a_Ethernet2,NOT RUN, -613,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet2 - Destination: dc2-leaf1b_Ethernet2,NOT RUN, -614,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet3 - Destination: dc2-leaf2a_Ethernet2,NOT RUN, -615,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet4 - Destination: dc2-leaf2b_Ethernet2,NOT RUN, -616,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet2,NOT RUN, -617,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet2,NOT RUN, -618,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet2,NOT RUN, -619,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet2,NOT RUN, -620,dc2-spine2,NTP,Synchronised with NTP server,NTP,NOT RUN, +test_id,node,test_categories,test_description,test,result,failure_reasons +1,dc1-leaf1a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +2,dc1-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,NOT RUN, +3,dc1-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,NOT RUN, +4,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.97,NOT RUN, +5,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.0,NOT RUN, +6,dc1-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.2,NOT RUN, +7,dc1-leaf1a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +8,dc1-leaf1a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +9,dc1-leaf1a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +10,dc1-leaf1a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +11,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet1,NOT RUN, +12,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet1,NOT RUN, +13,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc1-leaf1b_Ethernet3,NOT RUN, +14,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc1-leaf1b_Ethernet4,NOT RUN, +15,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc1-leaf1-server1_PCI1,NOT RUN, +16,dc1-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC1-LEAF1C_Ethernet1,NOT RUN, +17,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +18,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, +19,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, +20,dc1-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, +21,dc1-leaf1a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc1-leaf1b_Po3,NOT RUN, +22,dc1-leaf1a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1,NOT RUN, +23,dc1-leaf1a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC1-LEAF1C_Po1,NOT RUN, +24,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, +25,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, +26,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, +27,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, +28,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, +29,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, +30,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, +31,dc1-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, +32,dc1-leaf1a,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, +33,dc1-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1a_Ethernet1 - Destination: dc1-spine1_Ethernet1,NOT RUN, +34,dc1-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1a_Ethernet2 - Destination: dc1-spine2_Ethernet1,NOT RUN, +35,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet1,NOT RUN, +36,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet1,NOT RUN, +37,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf1b_Ethernet3,NOT RUN, +38,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf1b_Ethernet4,NOT RUN, +39,dc1-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf1c_Ethernet1,NOT RUN, +40,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.1,NOT RUN, +41,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.2,NOT RUN, +42,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.3,NOT RUN, +43,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.4,NOT RUN, +44,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.0.5,NOT RUN, +45,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.11,NOT RUN, +46,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.12,NOT RUN, +47,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.13,NOT RUN, +48,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.14,NOT RUN, +49,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.15,NOT RUN, +50,dc1-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1a - 10.255.0.3/32 Destination: 10.255.128.16,NOT RUN, +51,dc1-leaf1a,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, +52,dc1-leaf1a,NTP,Synchronised with NTP server,NTP,NOT RUN, +53,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, +54,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, +55,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, +56,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, +57,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, +58,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, +59,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, +60,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, +61,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, +62,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, +63,dc1-leaf1a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, +64,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, +65,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, +66,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, +67,dc1-leaf1a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, +68,dc1-leaf1b,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +69,dc1-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,NOT RUN, +70,dc1-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,NOT RUN, +71,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.1.96,NOT RUN, +72,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.4,NOT RUN, +73,dc1-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.6,NOT RUN, +74,dc1-leaf1b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +75,dc1-leaf1b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +76,dc1-leaf1b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +77,dc1-leaf1b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +78,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet2,NOT RUN, +79,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet2,NOT RUN, +80,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc1-leaf1a_Ethernet3,NOT RUN, +81,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc1-leaf1a_Ethernet4,NOT RUN, +82,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc1-leaf1-server1_PCI2,NOT RUN, +83,dc1-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC1-LEAF1C_Ethernet2,NOT RUN, +84,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +85,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, +86,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, +87,dc1-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, +88,dc1-leaf1b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc1-leaf1a_Po3,NOT RUN, +89,dc1-leaf1b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc1-leaf1-server1_PortChannel dc1-leaf1-server1,NOT RUN, +90,dc1-leaf1b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC1-LEAF1C_Po1,NOT RUN, +91,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, +92,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, +93,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, +94,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, +95,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, +96,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, +97,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, +98,dc1-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, +99,dc1-leaf1b,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, +100,dc1-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1b_Ethernet1 - Destination: dc1-spine1_Ethernet2,NOT RUN, +101,dc1-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc1-leaf1b_Ethernet2 - Destination: dc1-spine2_Ethernet2,NOT RUN, +102,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet2,NOT RUN, +103,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet2,NOT RUN, +104,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf1a_Ethernet3,NOT RUN, +105,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc1-leaf1a_Ethernet4,NOT RUN, +106,dc1-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf1c_Ethernet2,NOT RUN, +107,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.1,NOT RUN, +108,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.2,NOT RUN, +109,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.3,NOT RUN, +110,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.4,NOT RUN, +111,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.0.5,NOT RUN, +112,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.11,NOT RUN, +113,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.12,NOT RUN, +114,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.13,NOT RUN, +115,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.14,NOT RUN, +116,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.15,NOT RUN, +117,dc1-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf1b - 10.255.0.4/32 Destination: 10.255.128.16,NOT RUN, +118,dc1-leaf1b,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, +119,dc1-leaf1b,NTP,Synchronised with NTP server,NTP,NOT RUN, +120,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, +121,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, +122,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, +123,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, +124,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, +125,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, +126,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, +127,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, +128,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, +129,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, +130,dc1-leaf1b,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, +131,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, +132,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, +133,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, +134,dc1-leaf1b,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, +135,dc1-leaf1c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +136,dc1-leaf1c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +137,dc1-leaf1c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +138,dc1-leaf1c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +139,dc1-leaf1c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - DC1-LEAF1A_Ethernet8,NOT RUN, +140,dc1-leaf1c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - DC1-LEAF1B_Ethernet8,NOT RUN, +141,dc1-leaf1c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc1-leaf1-server1_iLO,NOT RUN, +142,dc1-leaf1c,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel1 - DC1_L3_LEAF1_Po8,NOT RUN, +143,dc1-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet8,NOT RUN, +144,dc1-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf1b_Ethernet8,NOT RUN, +145,dc1-leaf1c,NTP,Synchronised with NTP server,NTP,NOT RUN, +146,dc1-leaf2a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +147,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.1,NOT RUN, +148,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.2,NOT RUN, +149,dc1-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,NOT RUN, +150,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.10,NOT RUN, +151,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.8,NOT RUN, +152,dc1-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.1,NOT RUN, +153,dc1-leaf2a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +154,dc1-leaf2a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +155,dc1-leaf2a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +156,dc1-leaf2a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +157,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC1-SPINE1_Ethernet3,NOT RUN, +158,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC1-SPINE2_Ethernet3,NOT RUN, +159,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc1-leaf2b_Ethernet3,NOT RUN, +160,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc1-leaf2b_Ethernet4,NOT RUN, +161,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc1-leaf2-server1_PCI1,NOT RUN, +162,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet6 - P2P_LINK_TO_dc2-leaf2a_Ethernet6,NOT RUN, +163,dc1-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC1-LEAF2C_Ethernet1,NOT RUN, +164,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +165,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, +166,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, +167,dc1-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, +168,dc1-leaf2a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc1-leaf2b_Po3,NOT RUN, +169,dc1-leaf2a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc1-leaf2-server1_PortChannel dc1-leaf2-server1,NOT RUN, +170,dc1-leaf2a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC1-LEAF2C_Po1,NOT RUN, +171,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, +172,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, +173,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, +174,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, +175,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, +176,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, +177,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, +178,dc1-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, +179,dc1-leaf2a,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, +180,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet1 - Destination: dc1-spine1_Ethernet3,NOT RUN, +181,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet2 - Destination: dc1-spine2_Ethernet3,NOT RUN, +182,dc1-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc1-leaf2a_Ethernet6 - Destination: dc2-leaf2a_Ethernet6,NOT RUN, +183,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-spine1_Ethernet3,NOT RUN, +184,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-spine2_Ethernet3,NOT RUN, +185,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc2-leaf2a_Ethernet6,NOT RUN, +186,dc1-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc1-leaf2c_Ethernet1,NOT RUN, +187,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.1,NOT RUN, +188,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.2,NOT RUN, +189,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.3,NOT RUN, +190,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.4,NOT RUN, +191,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.0.5,NOT RUN, +192,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.11,NOT RUN, +193,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.12,NOT RUN, +194,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.13,NOT RUN, +195,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.14,NOT RUN, +196,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.15,NOT RUN, +197,dc1-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc1-leaf2a - 10.255.0.5/32 Destination: 10.255.128.16,NOT RUN, +198,dc1-leaf2a,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, +199,dc1-leaf2a,NTP,Synchronised with NTP server,NTP,NOT RUN, +200,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, +201,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, +202,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, +203,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, +204,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, +205,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, +206,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, +207,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, +208,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, +209,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, +210,dc1-leaf2a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, +211,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, +212,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, +213,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, +214,dc1-leaf2a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, +215,dc1-leaf2c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +216,dc1-leaf2c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +217,dc1-leaf2c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +218,dc1-leaf2c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +219,dc1-leaf2c,Interface State,Ethernet Interface & Line Protocol == 'adminDown',Ethernet2 - DC1-LEAF2B_Ethernet8,NOT RUN, +220,dc1-leaf2c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - DC1-LEAF2A_Ethernet8,NOT RUN, +221,dc1-leaf2c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc1-leaf2-server1_iLO,NOT RUN, +222,dc1-leaf2c,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel1 - DC1_L3_LEAF2_Po8,NOT RUN, +223,dc1-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf2a_Ethernet8,NOT RUN, +224,dc1-leaf2c,NTP,Synchronised with NTP server,NTP,NOT RUN, +225,dc1-spine1,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +226,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.3,NOT RUN, +227,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.4,NOT RUN, +228,dc1-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,NOT RUN, +229,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.1,NOT RUN, +230,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.5,NOT RUN, +231,dc1-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.9,NOT RUN, +232,dc1-spine1,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +233,dc1-spine1,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +234,dc1-spine1,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +235,dc1-spine1,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +236,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == 'adminDown',Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet1,NOT RUN, +237,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet1,NOT RUN, +238,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet1,NOT RUN, +239,dc1-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet1,NOT RUN, +240,dc1-spine1,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +241,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet1 - Destination: dc1-leaf1a_Ethernet1,NOT RUN, +242,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet2 - Destination: dc1-leaf1b_Ethernet1,NOT RUN, +243,dc1-spine1,IP Reachability,ip reachability test p2p links,Source: dc1-spine1_Ethernet3 - Destination: dc1-leaf2a_Ethernet1,NOT RUN, +244,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet1,NOT RUN, +245,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf1b_Ethernet1,NOT RUN, +246,dc1-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2a_Ethernet1,NOT RUN, +247,dc1-spine1,NTP,Synchronised with NTP server,NTP,NOT RUN, +248,dc1-spine2,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +249,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.3,NOT RUN, +250,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.4,NOT RUN, +251,dc1-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,NOT RUN, +252,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.11,NOT RUN, +253,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.3,NOT RUN, +254,dc1-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.7,NOT RUN, +255,dc1-spine2,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +256,dc1-spine2,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +257,dc1-spine2,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +258,dc1-spine2,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +259,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == 'adminDown',Ethernet4 - P2P_LINK_TO_DC1-LEAF2B_Ethernet2,NOT RUN, +260,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC1-LEAF1A_Ethernet2,NOT RUN, +261,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC1-LEAF1B_Ethernet2,NOT RUN, +262,dc1-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - P2P_LINK_TO_DC1-LEAF2A_Ethernet2,NOT RUN, +263,dc1-spine2,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +264,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet1 - Destination: dc1-leaf1a_Ethernet2,NOT RUN, +265,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet2 - Destination: dc1-leaf1b_Ethernet2,NOT RUN, +266,dc1-spine2,IP Reachability,ip reachability test p2p links,Source: dc1-spine2_Ethernet3 - Destination: dc1-leaf2a_Ethernet2,NOT RUN, +267,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc1-leaf1a_Ethernet2,NOT RUN, +268,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc1-leaf1b_Ethernet2,NOT RUN, +269,dc1-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc1-leaf2a_Ethernet2,NOT RUN, +270,dc1-spine2,NTP,Synchronised with NTP server,NTP,NOT RUN, +271,dc2-leaf1a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +272,dc2-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, +273,dc2-leaf1a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, +274,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.117,NOT RUN, +275,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.104,NOT RUN, +276,dc2-leaf1a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.106,NOT RUN, +277,dc2-leaf1a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +278,dc2-leaf1a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +279,dc2-leaf1a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +280,dc2-leaf1a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +281,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet1,NOT RUN, +282,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet1,NOT RUN, +283,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc2-leaf1b_Ethernet3,NOT RUN, +284,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc2-leaf1b_Ethernet4,NOT RUN, +285,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc2-leaf1-server1_PCI1,NOT RUN, +286,dc2-leaf1a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC2-LEAF1C_Ethernet1,NOT RUN, +287,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +288,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, +289,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, +290,dc2-leaf1a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, +291,dc2-leaf1a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc2-leaf1b_Po3,NOT RUN, +292,dc2-leaf1a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1,NOT RUN, +293,dc2-leaf1a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC2-LEAF1C_Po1,NOT RUN, +294,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, +295,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, +296,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, +297,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, +298,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, +299,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, +300,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, +301,dc2-leaf1a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, +302,dc2-leaf1a,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, +303,dc2-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1a_Ethernet1 - Destination: dc2-spine1_Ethernet1,NOT RUN, +304,dc2-leaf1a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1a_Ethernet2 - Destination: dc2-spine2_Ethernet1,NOT RUN, +305,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet1,NOT RUN, +306,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet1,NOT RUN, +307,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf1b_Ethernet3,NOT RUN, +308,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf1b_Ethernet4,NOT RUN, +309,dc2-leaf1a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf1c_Ethernet1,NOT RUN, +310,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.1,NOT RUN, +311,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.2,NOT RUN, +312,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.3,NOT RUN, +313,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.4,NOT RUN, +314,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.0.5,NOT RUN, +315,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.11,NOT RUN, +316,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.12,NOT RUN, +317,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.13,NOT RUN, +318,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.14,NOT RUN, +319,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.15,NOT RUN, +320,dc2-leaf1a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1a - 10.255.128.13/32 Destination: 10.255.128.16,NOT RUN, +321,dc2-leaf1a,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, +322,dc2-leaf1a,NTP,Synchronised with NTP server,NTP,NOT RUN, +323,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, +324,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, +325,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, +326,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, +327,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, +328,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, +329,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, +330,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, +331,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, +332,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, +333,dc2-leaf1a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, +334,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, +335,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, +336,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, +337,dc2-leaf1a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, +338,dc2-leaf1b,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +339,dc2-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, +340,dc2-leaf1b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, +341,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.116,NOT RUN, +342,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.108,NOT RUN, +343,dc2-leaf1b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.110,NOT RUN, +344,dc2-leaf1b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +345,dc2-leaf1b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +346,dc2-leaf1b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +347,dc2-leaf1b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +348,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet2,NOT RUN, +349,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet2,NOT RUN, +350,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc2-leaf1a_Ethernet3,NOT RUN, +351,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc2-leaf1a_Ethernet4,NOT RUN, +352,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc2-leaf1-server1_PCI2,NOT RUN, +353,dc2-leaf1b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC2-LEAF1C_Ethernet2,NOT RUN, +354,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +355,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, +356,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, +357,dc2-leaf1b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, +358,dc2-leaf1b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc2-leaf1a_Po3,NOT RUN, +359,dc2-leaf1b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc2-leaf1-server1_PortChannel dc2-leaf1-server1,NOT RUN, +360,dc2-leaf1b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC2-LEAF1C_Po1,NOT RUN, +361,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, +362,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, +363,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, +364,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, +365,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, +366,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, +367,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, +368,dc2-leaf1b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, +369,dc2-leaf1b,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, +370,dc2-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1b_Ethernet1 - Destination: dc2-spine1_Ethernet2,NOT RUN, +371,dc2-leaf1b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf1b_Ethernet2 - Destination: dc2-spine2_Ethernet2,NOT RUN, +372,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet2,NOT RUN, +373,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet2,NOT RUN, +374,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf1a_Ethernet3,NOT RUN, +375,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf1a_Ethernet4,NOT RUN, +376,dc2-leaf1b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf1c_Ethernet2,NOT RUN, +377,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.1,NOT RUN, +378,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.2,NOT RUN, +379,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.3,NOT RUN, +380,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.4,NOT RUN, +381,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.0.5,NOT RUN, +382,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.11,NOT RUN, +383,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.12,NOT RUN, +384,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.13,NOT RUN, +385,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.14,NOT RUN, +386,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.15,NOT RUN, +387,dc2-leaf1b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf1b - 10.255.128.14/32 Destination: 10.255.128.16,NOT RUN, +388,dc2-leaf1b,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, +389,dc2-leaf1b,NTP,Synchronised with NTP server,NTP,NOT RUN, +390,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, +391,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, +392,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, +393,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, +394,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, +395,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, +396,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, +397,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, +398,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, +399,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, +400,dc2-leaf1b,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, +401,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, +402,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, +403,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, +404,dc2-leaf1b,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, +405,dc2-leaf1c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +406,dc2-leaf1c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +407,dc2-leaf1c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +408,dc2-leaf1c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +409,dc2-leaf1c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - DC2-LEAF1A_Ethernet8,NOT RUN, +410,dc2-leaf1c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - DC2-LEAF1B_Ethernet8,NOT RUN, +411,dc2-leaf1c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc2-leaf1-server1_iLO,NOT RUN, +412,dc2-leaf1c,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel1 - DC2_L3_LEAF1_Po8,NOT RUN, +413,dc2-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet8,NOT RUN, +414,dc2-leaf1c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet8,NOT RUN, +415,dc2-leaf1c,NTP,Synchronised with NTP server,NTP,NOT RUN, +416,dc2-leaf2a,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +417,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.0.5,NOT RUN, +418,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, +419,dc2-leaf2a,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, +420,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.121,NOT RUN, +421,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.112,NOT RUN, +422,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.114,NOT RUN, +423,dc2-leaf2a,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 192.168.100.0,NOT RUN, +424,dc2-leaf2a,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +425,dc2-leaf2a,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +426,dc2-leaf2a,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +427,dc2-leaf2a,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +428,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet3,NOT RUN, +429,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet3,NOT RUN, +430,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc2-leaf2b_Ethernet3,NOT RUN, +431,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc2-leaf2b_Ethernet4,NOT RUN, +432,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc2-leaf2-server1_PCI1,NOT RUN, +433,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet6 - P2P_LINK_TO_dc1-leaf2a_Ethernet6,NOT RUN, +434,dc2-leaf2a,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC2-LEAF2C_Ethernet1,NOT RUN, +435,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +436,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, +437,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, +438,dc2-leaf2a,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, +439,dc2-leaf2a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc2-leaf2b_Po3,NOT RUN, +440,dc2-leaf2a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1,NOT RUN, +441,dc2-leaf2a,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC2-LEAF2C_Po1,NOT RUN, +442,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, +443,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, +444,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, +445,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, +446,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, +447,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, +448,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, +449,dc2-leaf2a,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, +450,dc2-leaf2a,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, +451,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet1 - Destination: dc2-spine1_Ethernet3,NOT RUN, +452,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet2 - Destination: dc2-spine2_Ethernet3,NOT RUN, +453,dc2-leaf2a,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2a_Ethernet6 - Destination: dc1-leaf2a_Ethernet6,NOT RUN, +454,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet3,NOT RUN, +455,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet3,NOT RUN, +456,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2b_Ethernet3,NOT RUN, +457,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet4,NOT RUN, +458,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet6 - remote: dc1-leaf2a_Ethernet6,NOT RUN, +459,dc2-leaf2a,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf2c_Ethernet1,NOT RUN, +460,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.1,NOT RUN, +461,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.2,NOT RUN, +462,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.3,NOT RUN, +463,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.4,NOT RUN, +464,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.0.5,NOT RUN, +465,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.11,NOT RUN, +466,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.12,NOT RUN, +467,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.13,NOT RUN, +468,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.14,NOT RUN, +469,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.15,NOT RUN, +470,dc2-leaf2a,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2a - 10.255.128.15/32 Destination: 10.255.128.16,NOT RUN, +471,dc2-leaf2a,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, +472,dc2-leaf2a,NTP,Synchronised with NTP server,NTP,NOT RUN, +473,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, +474,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, +475,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, +476,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, +477,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, +478,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, +479,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, +480,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, +481,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, +482,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, +483,dc2-leaf2a,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, +484,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, +485,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, +486,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, +487,dc2-leaf2a,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, +488,dc2-leaf2b,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +489,dc2-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.11,NOT RUN, +490,dc2-leaf2b,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.12,NOT RUN, +491,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.129.120,NOT RUN, +492,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.116,NOT RUN, +493,dc2-leaf2b,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.118,NOT RUN, +494,dc2-leaf2b,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +495,dc2-leaf2b,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +496,dc2-leaf2b,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +497,dc2-leaf2b,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +498,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC2-SPINE1_Ethernet4,NOT RUN, +499,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC2-SPINE2_Ethernet4,NOT RUN, +500,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - MLAG_PEER_dc2-leaf2a_Ethernet3,NOT RUN, +501,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - MLAG_PEER_dc2-leaf2a_Ethernet4,NOT RUN, +502,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc2-leaf2-server1_PCI2,NOT RUN, +503,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet6 - P2P_LINK_TO_dc1-leaf2b_Ethernet6,NOT RUN, +504,dc2-leaf2b,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet8 - DC2-LEAF2C_Ethernet2,NOT RUN, +505,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +506,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback1 - VTEP_VXLAN_Tunnel_Source,NOT RUN, +507,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback10 - VRF10_VTEP_DIAGNOSTICS,NOT RUN, +508,dc2-leaf2b,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback11 - VRF11_VTEP_DIAGNOSTICS,NOT RUN, +509,dc2-leaf2b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel3 - MLAG_PEER_dc2-leaf2a_Po3,NOT RUN, +510,dc2-leaf2b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel5 - dc2-leaf2-server1_PortChannel dc2-leaf2-server1,NOT RUN, +511,dc2-leaf2b,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel8 - DC2-LEAF2C_Po1,NOT RUN, +512,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan11 - VRF10_VLAN11,NOT RUN, +513,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan12 - VRF10_VLAN12,NOT RUN, +514,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan21 - VRF11_VLAN21,NOT RUN, +515,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan22 - VRF11_VLAN22,NOT RUN, +516,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3009 - MLAG_PEER_L3_iBGP: vrf VRF10,NOT RUN, +517,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan3010 - MLAG_PEER_L3_iBGP: vrf VRF11,NOT RUN, +518,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4093 - MLAG_PEER_L3_PEERING,NOT RUN, +519,dc2-leaf2b,Interface State,Vlan Interface & Line Protocol == 'up',Vlan4094 - MLAG_PEER,NOT RUN, +520,dc2-leaf2b,Interface State,Vxlan Interface Status & Line Protocol == 'up',Vxlan1,NOT RUN, +521,dc2-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2b_Ethernet1 - Destination: dc2-spine1_Ethernet4,NOT RUN, +522,dc2-leaf2b,IP Reachability,ip reachability test p2p links,Source: dc2-leaf2b_Ethernet2 - Destination: dc2-spine2_Ethernet4,NOT RUN, +523,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-spine1_Ethernet4,NOT RUN, +524,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-spine2_Ethernet4,NOT RUN, +525,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet3,NOT RUN, +526,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2a_Ethernet4,NOT RUN, +527,dc2-leaf2b,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet8 - remote: dc2-leaf2c_Ethernet2,NOT RUN, +528,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.1,NOT RUN, +529,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.2,NOT RUN, +530,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.3,NOT RUN, +531,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.4,NOT RUN, +532,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.0.5,NOT RUN, +533,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.11,NOT RUN, +534,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.12,NOT RUN, +535,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.13,NOT RUN, +536,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.14,NOT RUN, +537,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.15,NOT RUN, +538,dc2-leaf2b,Loopback0 Reachability,Loopback0 Reachability,Source: dc2-leaf2b - 10.255.128.16/32 Destination: 10.255.128.16,NOT RUN, +539,dc2-leaf2b,MLAG,This test verifies the health status of the MLAG configuration.,VerifyMlagStatus,NOT RUN, +540,dc2-leaf2b,NTP,Synchronised with NTP server,NTP,NOT RUN, +541,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.1,NOT RUN, +542,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.2,NOT RUN, +543,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.3,NOT RUN, +544,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.4,NOT RUN, +545,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.0.5,NOT RUN, +546,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.11,NOT RUN, +547,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.12,NOT RUN, +548,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.13,NOT RUN, +549,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.14,NOT RUN, +550,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.15,NOT RUN, +551,dc2-leaf2b,Routing Table,Remote Lo0 address,10.255.128.16,NOT RUN, +552,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.1.3,NOT RUN, +553,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.1.5,NOT RUN, +554,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.129.13,NOT RUN, +555,dc2-leaf2b,Routing Table,Remote VTEP address,10.255.129.15,NOT RUN, +556,dc2-leaf2c,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +557,dc2-leaf2c,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +558,dc2-leaf2c,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +559,dc2-leaf2c,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +560,dc2-leaf2c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - DC2-LEAF2A_Ethernet8,NOT RUN, +561,dc2-leaf2c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - DC2-LEAF2B_Ethernet8,NOT RUN, +562,dc2-leaf2c,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet5 - dc2-leaf2-server1_iLO,NOT RUN, +563,dc2-leaf2c,Interface State,Port-Channel Interface & Line Protocol == 'up',Port-Channel1 - DC2_L3_LEAF2_Po8,NOT RUN, +564,dc2-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf2a_Ethernet8,NOT RUN, +565,dc2-leaf2c,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf2b_Ethernet8,NOT RUN, +566,dc2-leaf2c,NTP,Synchronised with NTP server,NTP,NOT RUN, +567,dc2-spine1,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +568,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.13,NOT RUN, +569,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.14,NOT RUN, +570,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,NOT RUN, +571,dc2-spine1,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.16,NOT RUN, +572,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.105,NOT RUN, +573,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.109,NOT RUN, +574,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.113,NOT RUN, +575,dc2-spine1,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.117,NOT RUN, +576,dc2-spine1,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +577,dc2-spine1,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +578,dc2-spine1,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +579,dc2-spine1,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +580,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet1,NOT RUN, +581,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet1,NOT RUN, +582,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet1,NOT RUN, +583,dc2-spine1,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet1,NOT RUN, +584,dc2-spine1,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +585,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet1 - Destination: dc2-leaf1a_Ethernet1,NOT RUN, +586,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet2 - Destination: dc2-leaf1b_Ethernet1,NOT RUN, +587,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet3 - Destination: dc2-leaf2a_Ethernet1,NOT RUN, +588,dc2-spine1,IP Reachability,ip reachability test p2p links,Source: dc2-spine1_Ethernet4 - Destination: dc2-leaf2b_Ethernet1,NOT RUN, +589,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet1,NOT RUN, +590,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet1,NOT RUN, +591,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet1,NOT RUN, +592,dc2-spine1,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet1,NOT RUN, +593,dc2-spine1,NTP,Synchronised with NTP server,NTP,NOT RUN, +594,dc2-spine2,BGP,ArBGP is configured and operating,ArBGP,NOT RUN, +595,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.13,NOT RUN, +596,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.14,NOT RUN, +597,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.15,NOT RUN, +598,dc2-spine2,BGP,bgp evpn peer state established (evpn),bgp_neighbor: 10.255.128.16,NOT RUN, +599,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.107,NOT RUN, +600,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.111,NOT RUN, +601,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.115,NOT RUN, +602,dc2-spine2,BGP,ip bgp peer state established (ipv4),bgp_neighbor: 10.255.255.119,NOT RUN, +603,dc2-spine2,Hardware,Verifies if the device temperature is within the acceptable range.,VerifyTemperature,NOT RUN, +604,dc2-spine2,Hardware,Verifies if the fans status are within the accepted states list.,VerifyEnvironmentCooling,NOT RUN, +605,dc2-spine2,Hardware,Verifies if the power supplies status are within the accepted states list.,VerifyEnvironmentPower,NOT RUN, +606,dc2-spine2,Hardware,Verifies the transceiver's manufacturer against a list of approved manufacturers.,VerifyTransceiversManufacturers,NOT RUN, +607,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet1 - P2P_LINK_TO_DC2-LEAF1A_Ethernet2,NOT RUN, +608,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet2 - P2P_LINK_TO_DC2-LEAF1B_Ethernet2,NOT RUN, +609,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet3 - P2P_LINK_TO_DC2-LEAF2A_Ethernet2,NOT RUN, +610,dc2-spine2,Interface State,Ethernet Interface & Line Protocol == 'up',Ethernet4 - P2P_LINK_TO_DC2-LEAF2B_Ethernet2,NOT RUN, +611,dc2-spine2,Interface State,Loopback Interface Status & Line Protocol == 'up',Loopback0 - EVPN_Overlay_Peering,NOT RUN, +612,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet1 - Destination: dc2-leaf1a_Ethernet2,NOT RUN, +613,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet2 - Destination: dc2-leaf1b_Ethernet2,NOT RUN, +614,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet3 - Destination: dc2-leaf2a_Ethernet2,NOT RUN, +615,dc2-spine2,IP Reachability,ip reachability test p2p links,Source: dc2-spine2_Ethernet4 - Destination: dc2-leaf2b_Ethernet2,NOT RUN, +616,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet1 - remote: dc2-leaf1a_Ethernet2,NOT RUN, +617,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet2 - remote: dc2-leaf1b_Ethernet2,NOT RUN, +618,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet3 - remote: dc2-leaf2a_Ethernet2,NOT RUN, +619,dc2-spine2,LLDP Topology,LLDP topology - validate peer and interface,local: Ethernet4 - remote: dc2-leaf2b_Ethernet2,NOT RUN, +620,dc2-spine2,NTP,Synchronised with NTP server,NTP,NOT RUN, diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py index 1089b8da996..0bee6c62590 100644 --- a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py @@ -37,19 +37,19 @@ def _test_results_gen(input_path: str) -> Generator[dict, None, None]: class ActionModule(ActionBase): - def _validate_arg_boolean(self, arg_name: str, *, default_value: bool) -> bool: - """Validate if a task argument is a boolean.""" - arg_value = self._task.args.get(arg_name, default_value) - if not isinstance(arg_value, bool): - raise AnsibleActionFail(f"'{arg_name}' must be a boolean, got {arg_value}.") - return arg_value - - def _validate_report_path(self, arg_name: str) -> str: - """Validate if a task path argument is valid and exists.""" - path_value = self._task.args.get(arg_name) - if not isinstance(path_value, str) or not Path(path_value).parent.exists(): - raise AnsibleActionFail(f"'{arg_name}' must be a valid path and its directory must exist.") - return path_value + def _get_and_validate_bool_arg(self, argument: str, *, default_value: bool) -> bool: + """Validate if a task argument is a boolean, returns the value if the validation succeeds.""" + result = self._task.args.get(argument, default_value) + if not isinstance(result, bool): + raise AnsibleActionFail(f"'{argument}' must be a boolean, got {result}.") + return result + + def _get_and_validate_path_arg(self, argument: str) -> str: + """Validate if a task path argument is valid and exists, returns the value if the validation succeeds.""" + result = self._task.args.get(argument) + if not isinstance(result, str) or not Path(result).parent.exists(): + raise AnsibleActionFail(f"'{argument}' must be a valid path and its directory must exist.") + return result def run(self, tmp=None, task_vars=None): if task_vars is None: @@ -65,14 +65,14 @@ def run(self, tmp=None, task_vars=None): profiler.enable() # Get task arguments and validate them - only_failed_tests = self._validate_arg_boolean("only_failed_tests", default_value=False) - validation_report_csv = self._validate_arg_boolean("validation_report_csv", default_value=True) - validation_report_md = self._validate_arg_boolean("validation_report_md", default_value=True) + only_failed_tests = self._get_and_validate_bool_arg(argument="only_failed_tests", default_value=False) + validation_report_csv = self._get_and_validate_bool_arg(argument="validation_report_csv", default_value=True) + validation_report_md = self._get_and_validate_bool_arg(argument="validation_report_md", default_value=True) if validation_report_csv: - csv_report_path = self._validate_report_path("csv_report_path") + csv_report_path = self._get_and_validate_path_arg("csv_report_path") if validation_report_md: - md_report_path = self._validate_report_path("md_report_path") + md_report_path = self._get_and_validate_path_arg("md_report_path") # This is not all the hostvars, but just the Ansible Hostvars Manager object where we can retrieve hostvars for each host on-demand hostvars = task_vars["hostvars"] diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py index 4f9adf2a22c..a7bdb9d1a5e 100644 --- a/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py @@ -8,7 +8,7 @@ import cProfile import logging import pstats -from json import dumps +from json import dump, dumps from pathlib import Path from tempfile import NamedTemporaryFile @@ -20,8 +20,9 @@ from ansible_collections.arista.avd.plugins.plugin_utils.utils import PythonToAnsibleContextFilter, PythonToAnsibleHandler LOGGER = logging.getLogger("ansible_collections.arista.avd") -# ANTA 0.10.0 currently add some RichHandler to the root logger so need to disable propagation +# ANTA currently add some RichHandler to the root logger so need to disable propagation LOGGER.propagate = False +LOGGING_LEVELS = ["DEBUG", "INFO", "ERROR", "WARNING", "CRITICAL"] class AnsibleNoAliasDumper(AnsibleDumper): @@ -30,6 +31,23 @@ def ignore_aliases(self, data): class ActionModule(ActionBase): + def _get_and_validate_arg( + self, argument: str, expected_type: type, default_value: bool | list | str | None = None, allowed_values: list[str] | None = None + ) -> bool | list | str: + """Validate a task argument, returns the value if the validation succeeds.""" + result = self._task.args.get(argument, default_value) + if not isinstance(result, expected_type) or (allowed_values and result not in allowed_values): + allowed = f" in {allowed_values}" if allowed_values else "" + raise AnsibleActionFail(f"'{argument}' must be a {expected_type.__name__}{allowed}, got {result}.") + return result + + def _get_and_validate_dir_arg(self, argument: str) -> str: + """Validate if a task directory argument is valid and exists, returns the value if the validation succeeds.""" + result = self._task.args.get(argument) + if not isinstance(result, str) or not Path(result).exists(): + raise AnsibleActionFail(f"'{argument}' must be a valid directory path and must exist.") + return result + def run(self, tmp=None, task_vars=None): self._supports_check_mode = True @@ -39,56 +57,40 @@ def run(self, tmp=None, task_vars=None): result = super().run(tmp, task_vars) del tmp # tmp no longer has any effect - # Profiling + # Setup profiling cprofile_file = self._task.args.get("cprofile_file") if cprofile_file: profiler = cProfile.Profile() profiler.enable() + # Setup variables hostname = task_vars["inventory_hostname"] ansible_connection = self._connection ansible_check_mode = task_vars.get("ansible_check_mode", False) is_deployed = task_vars.get("is_deployed", True) + ansible_tags = { + "ansible_run_tags": task_vars.get("ansible_run_tags", ()), + "ansible_skip_tags": task_vars.get("ansible_skip_tags", ()), + } + # This is not all the hostvars, but just the Ansible Hostvars Manager object where we can retrieve hostvars for each host on-demand. + hostvars = task_vars["hostvars"] + # Skip all tests if the device is marked as not deployed if not is_deployed: result["skipped"] = True result["msg"] = f"Device {hostname} is marked as not deployed. Skipping all tests." return result - # Handle logging + # Setup module logging setup_module_logging(hostname, result) # Get task arguments and validate them - logging_level = self._task.args.get("logging_level") - VALID_VALUES = ["DEBUG", "INFO", "ERROR", "WARNING", "CRITICAL"] - if logging_level is None or not isinstance(logging_level, str) or logging_level not in VALID_VALUES: - raise AnsibleActionFail(f"'logging_level' must be a string in {VALID_VALUES}, got {logging_level}") - - save_catalog = self._task.args.get("save_catalog") - if not isinstance(save_catalog, bool): - raise AnsibleActionFail(f"'save_catalog' must be a boolean, got {save_catalog}.") - - save_catalog_name = None - if save_catalog: - device_catalog_output_dir = self._task.args.get("device_catalog_output_dir") - if device_catalog_output_dir is not None: - save_catalog_name = f"{device_catalog_output_dir}/{hostname}-catalog.yml" - else: - raise AnsibleActionFail("'device_catalog_output_dir' must be set when 'save_catalog' is True.") - - skipped_tests = self._task.args.get("skipped_tests", []) - # TODO once we have pydantic, check the list elements - if not isinstance(skipped_tests, list): - raise AnsibleActionFail(f"'skipped_tests' must be a list of dictionnaries, got {skipped_tests}.") - - # Fetching ansible tags for backward compatibility - ansible_tags = { - "ansible_run_tags": task_vars.get("ansible_run_tags", ()), - "ansible_skip_tags": task_vars.get("ansible_skip_tags", ()), - } - - # This is not all the hostvars, but just the Ansible Hostvars Manager object where we can retrieve hostvars for each host on-demand. - hostvars = task_vars["hostvars"] + logging_level = self._get_and_validate_arg(argument="logging_level", expected_type=str, default_value="WARNING", allowed_values=LOGGING_LEVELS) + skipped_tests = self._get_and_validate_arg(argument="skipped_tests", expected_type=list, default_value=[]) + save_catalog = self._get_and_validate_arg(argument="save_catalog", expected_type=bool, default_value=False) + save_results = self._get_and_validate_arg(argument="save_results", expected_type=bool, default_value=False) + save_catalog_name = Path(self._get_and_validate_dir_arg(argument="device_catalog_output_dir")) / f"{hostname}-catalog.yml" if save_catalog else None + save_results_name = Path(self._get_and_validate_dir_arg(argument="device_results_output_dir")) / f"{hostname}-results.json" if save_results else None try: anta_device = AnsibleEOSDevice(name=hostname, connection=ansible_connection, check_mode=ansible_check_mode) @@ -104,7 +106,12 @@ def run(self, tmp=None, task_vars=None): yaml_dumper=AnsibleNoAliasDumper, ) # Call the function to handle temp file creation - temp_file_name = create_temp_file(hostname, anta_results) + temp_file_name = _create_temp_file(hostname, anta_results) + + # Save test results + if save_results_name: + with Path(save_results_name).open("w", encoding="UTF-8") as results_file: + dump(anta_results, results_file, indent=2, sort_keys=False) except Exception as error: raise AnsibleActionFail(message=str(error)) from error @@ -120,7 +127,7 @@ def run(self, tmp=None, task_vars=None): return result -def create_temp_file(hostname: str, anta_results: list[dict]) -> str: +def _create_temp_file(hostname: str, anta_results: list[dict]) -> str: """Create a temporary JSON file to save all test results from ANTA. The function will also search for leftover temp files in the `/tmp` folder and delete them. diff --git a/ansible_collections/arista/avd/plugins/modules/eos_validate_state_reports.py b/ansible_collections/arista/avd/plugins/modules/eos_validate_state_reports.py new file mode 100644 index 00000000000..b346a8ad312 --- /dev/null +++ b/ansible_collections/arista/avd/plugins/modules/eos_validate_state_reports.py @@ -0,0 +1,73 @@ +# Copyright (c) 2023 Arista Networks, Inc. +# Use of this source code is governed by the Apache License 2.0 +# that can be found in the LICENSE file. + +# NOTE that this is supposed to be deprecated as per +# https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_documenting.html#ansible-metadata-block +# But our doc Jinja2 template renders it as preview which is what we want +ANSIBLE_METADATA = {"metadata_version": "1.0", "status": ["preview"]} + +DOCUMENTATION = r""" +--- +module: eos_validate_state_reports +version_added: "4.5.0" +author: Arista Ansible Team (@aristanetworks) +short_description: Generates validation reports for the eos_validate_state role +description: + - The C(arista.avd.eos_validate_state_reports) module, an Ansible Action Plugin, is designed to generate + validation reports from the test results produced by the ANTA test framework. + - This plugin requires a temporary JSON file for each host in the Ansible play, which contains all test results. + The path to this temporary JSON file, used by the plugin, is supplied in the hostvars by the `eos_validate_state_runner` plugin. + - |- + The plugin offers the following functionalities: + - It aggregates all test results from every host in the Ansible play and generates a CSV report. + - It produces a detailed Markdown report with various sections presenting key statistics derived from the results. + - The design allows for easy extension to support additional report formats in the future. +options: + validation_report_csv: + description: Indicates whether a CSV report should be generated. + type: bool + default: true + validation_report_md: + description: Indicates whether a Markdown report should be generated. + type: bool + default: true + only_failed_tests: + description: Determines if the generated reports should include only the failed tests. + type: bool + default: false + csv_report_path: + description: + - Specifies the absolute path where the CSV report will be saved. + - Required if C(validation_report_csv) is set to C(True). + type: str + md_report_path: + description: + - Specifies the absolute path where the Markdown report will be saved. + - Required if C(validation_report_md) is set to C(True). + type: str + cprofile_file: + description: + - Specifies the filename for storing cProfile data, which aids in debugging performance issues. + - Note that enabling cProfile can itself impact performance, so it should only be used for troubleshooting. +seealso: + - name: ANTA website + description: Documentation for the ANTA test framework + link: https://anta.ninja +notes: + - Enabling the cProfile feature for performance profiling may impact the plugin's performance, especially in production environments. + - The plugin manages temporary files created for processing test results, ensuring clean-up post-execution. + - Hosts marked as not deployed are automatically skipped, and no test results are processed for these hosts. +""" + +EXAMPLES = r""" +- name: Generate validation reports from ANTA test results + arista.avd.eos_validate_state_reports: + csv_report_path: "/git_projects/my_avd_project/reports/my-fabric-state.csv" + md_report_path: "/git_projects/my_avd_project/reports/my-fabric-state.md" + validation_report_csv: true + validation_report_md: true + only_failed_tests: false + delegate_to: localhost + run_once: true +""" diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/defaults/main.yml b/ansible_collections/arista/avd/roles/eos_validate_state/defaults/main.yml index 6158102cbbf..3e9e4c46ea6 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/defaults/main.yml +++ b/ansible_collections/arista/avd/roles/eos_validate_state/defaults/main.yml @@ -20,6 +20,10 @@ test_catalogs_dir: '{{ output_dir }}/{{ test_catalogs_dir_name }}' eos_validate_state_name: 'reports' eos_validate_state_dir: '{{ root_dir }}/{{ eos_validate_state_name }}' +# Output for test results JSON files: +test_results_dir_name: 'test_results' +test_results_dir: '{{ eos_validate_state_dir }}/{{ test_results_dir_name }}' + # Reports name eos_validate_state_md_report_path: '{{ eos_validate_state_dir }}/{{ fabric_name }}-state.md' eos_validate_state_csv_report_path: '{{ eos_validate_state_dir }}/{{ fabric_name }}-state.csv' diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml index 0f6ab550e4a..9f455daa4a2 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml +++ b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml @@ -11,7 +11,9 @@ logging_level: "{{ logging_level | arista.avd.default('WARNING') }}" skipped_tests: "{{ skipped_tests | arista.avd.default([]) }}" save_catalog: "{{ save_catalog | arista.avd.default(false) }}" + save_results: "{{ save_results | arista.avd.default(false) }}" device_catalog_output_dir: "{{ test_catalogs_dir }}" + device_results_output_dir: "{{ test_results_dir }}" # cprofile_file: "eos_validate_state_runner.prof" register: anta_results check_mode: false diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml index 89be4c3b664..afa0513b0c4 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml +++ b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml @@ -23,6 +23,7 @@ - "{{ eos_validate_state_dir }}" - "{{ output_dir }}" - "{{ test_catalogs_dir }}" + - "{{ test_results_dir }}" delegate_to: localhost run_once: true check_mode: false From 002eb585ac48c9bc8696edea9b3d6677def103cb Mon Sep 17 00:00:00 2001 From: Carl Baillargeon Date: Tue, 28 Nov 2023 18:26:33 -0500 Subject: [PATCH 12/26] Update anta runner plugin doc --- .../eos_validate_state_reports.md | 6 +- .../eos_validate_state_runner.md | 46 +++++++------ .../modules/eos_validate_state_reports.py | 10 +-- .../modules/eos_validate_state_runner.py | 64 ++++++++++++------- 4 files changed, 75 insertions(+), 51 deletions(-) diff --git a/ansible_collections/arista/avd/docs/plugins/Modules and action plugins/eos_validate_state_reports.md b/ansible_collections/arista/avd/docs/plugins/Modules and action plugins/eos_validate_state_reports.md index 305b22dc748..ab0ce78d038 100644 --- a/ansible_collections/arista/avd/docs/plugins/Modules and action plugins/eos_validate_state_reports.md +++ b/ansible_collections/arista/avd/docs/plugins/Modules and action plugins/eos_validate_state_reports.md @@ -32,9 +32,9 @@ The plugin offers the following functionalities\: | validation_report_csv | bool | optional | True | | Indicates whether a CSV report should be generated. | | validation_report_md | bool | optional | True | | Indicates whether a Markdown report should be generated. | | only_failed_tests | bool | optional | False | | Determines if the generated reports should include only the failed tests. | -| csv_report_path | str | optional | None | | Specifies the absolute path where the CSV report will be saved.
Required if validation\_report\_csv is set to True. | -| md_report_path | str | optional | None | | Specifies the absolute path where the Markdown report will be saved.
Required if validation\_report\_md is set to True. | -| cprofile_file | any | optional | None | | Specifies the filename for storing cProfile data, which aids in debugging performance issues.
Note that enabling cProfile can itself impact performance, so it should only be used for troubleshooting. | +| csv_report_path | str | optional | None | | The absolute path where the CSV report will be saved.
Required if validation\_report\_csv is set to True. | +| md_report_path | str | optional | None | | The absolute path where the Markdown report will be saved.
Required if validation\_report\_md is set to True. | +| cprofile_file | any | optional | None | | The filename for storing cProfile data, useful for debugging performance issues.
Be aware that enabling cProfile can affect performance, so use it only for troubleshooting. | ## Notes diff --git a/ansible_collections/arista/avd/docs/plugins/Modules and action plugins/eos_validate_state_runner.md b/ansible_collections/arista/avd/docs/plugins/Modules and action plugins/eos_validate_state_runner.md index 8ce94731d91..9e68f575a36 100644 --- a/ansible_collections/arista/avd/docs/plugins/Modules and action plugins/eos_validate_state_runner.md +++ b/ansible_collections/arista/avd/docs/plugins/Modules and action plugins/eos_validate_state_runner.md @@ -12,48 +12,56 @@ !!! warning "This module is in **preview** mode" This module is not guaranteed to have a backwards compatible interface. -Leverage ANTA for eos\_validate\_state role +Utilizes ANTA for eos\_validate\_state role validation ## Synopsis The arista.avd.eos\_validate\_state\_runner module is an Ansible Action Plugin leveraging the ANTA test framework to validate that the generated structured configurations by AVD are applied to the devices and that the deployed network is working correctly. -This plugin expects that the structued\_configs of each device is present in hostvars, otherwise no test will be generated. +This plugin requires that structured\_configs for each device be present in hostvars\; otherwise, no tests will be executed. -The plugin provides the following capabilities\: - \- Generate a per\-device test catalog based on the structured\_configs - \- Run the generated tests against each device and generate a report in Markdown and CSV format. - \- When using check\_mode, only generate the test catalog and generate a report to preview what would tests be run against each device - \- Dumping the per\-device catalog to a file. - \- Backward compatibility with existing ansible tags behavior for eos\_validate\_state to filter categories of tests. +The plugin offers the following capabilities\: + \- Generating a per\-device test catalog based on the AVD structured\_config. + \- Running generated tests against each device, saving the results in a temporary JSON file, + and recording the file path in hostvars for use by the report plugin. + \- In check\_mode, only the test catalog is generated, and a report is created to preview the tests that would be run against each device. + \- Saving per\-device test catalogs and results to specified directories. + \- Maintaining backward compatibility with existing ansible tags for eos\_validate\_state to filter test categories. ## Parameters | Argument | Type | Required | Default | Value Restrictions | Description | | -------- | ---- | -------- | ------- | ------------------ | ----------- | -| logging_level | str | False | WARNING | Valid values:
- CRITICAL
- ERROR
- WARNING
- INFO
- DEBUG | Controls the log level for the ANTA library. If unset, the Action plugin will set it to \"WARNING\" | -| save_catalog | bool | optional | False | | A boolean to indicate whether or not the catalog should be saved for each device. | -| device_catalog_output_dir | str | optional | None | | When save\_catalog is True, this is the directory where the device catalogs will be saved.
Required if save\_catalog\=True | -| skipped_tests | list | optional | None | | A list of dictionaries containing the categories and tests to skip
The keys for the dictionnary are categories and tests. | -| category | str | True | None | | The name of one of the AvdTest categories. e.g., AvdTestHardware | -| tests | list | optional | None | | A list of tests in the category. e.g, VerifyRoutingProtocolModel for AvdTestBGP | +| logging_level | str | optional | WARNING | Valid values:
- CRITICAL
- ERROR
- WARNING
- INFO
- DEBUG | Sets the log level for the ANTA library. Defaults to \"WARNING\" if not specified. | +| save_catalog | bool | optional | False | | Indicates whether to save the test catalog for each device. | +| save_results | bool | optional | False | | Indicates whether to save test results in a JSON file for each device. | +| device_catalog_output_dir | str | optional | None | | The directory where device test catalogs will be saved.
Required if save\_catalog is set to True. | +| device_results_output_dir | str | optional | None | | The directory where device test results will be saved.
Required if save\_results is set to True. | +| skipped_tests | list | optional | None | | A list of dictionaries specifying categories and tests to skip.
Each dictionary should have keys category and tests. | +| category | str | optional | None | | The name of an AvdTest category \(e.g., AvdTestHardware\). | +| tests | list | optional | None | | A list of specific tests in the category \(e.g., VerifyRoutingProtocolModel in AvdTestBGP\). | +| cprofile_file | any | optional | None | | The filename for storing cProfile data, useful for debugging performance issues.
Be aware that enabling cProfile can affect performance, so use it only for troubleshooting. | ## Notes -- check\_mode is supported for this module and allows to generate a Test Report without running the tests. +- Enabling the cProfile feature for performance profiling may impact the plugin\'s performance, especially in production environments. +- The plugin manages the creation and cleanup of temporary JSON files used for storing test results. +- This module supports check\_mode, allowing the generation of test reports without executing the tests. ## See Also -- ANTA website: [https://anta.ninja](https://anta.ninja)
ANTA documentation +- ANTA website: [https://anta.ninja](https://anta.ninja)
Documentation for the ANTA test framework ## Examples ```yaml -- name: Run eos_validate_state_runner leveraging ANTA +- name: Execute eos_validate_state_runner leveraging ANTA arista.avd.eos_validate_state_runner: logging_level: ERROR - save_catalog: True - eos_validate_state_dir: "/tmp" + save_catalog: true + save_results: false + device_catalog_output_dir: "/git_projects/my_avd_project/intended/test_catalogs" + device_results_output_dir: "/git_projects/my_avd_project/reports/test_results" skipped_tests: - category: AvdTestHardware - category: AvdTestBGP diff --git a/ansible_collections/arista/avd/plugins/modules/eos_validate_state_reports.py b/ansible_collections/arista/avd/plugins/modules/eos_validate_state_reports.py index b346a8ad312..3046ec5f559 100644 --- a/ansible_collections/arista/avd/plugins/modules/eos_validate_state_reports.py +++ b/ansible_collections/arista/avd/plugins/modules/eos_validate_state_reports.py @@ -2,7 +2,7 @@ # Use of this source code is governed by the Apache License 2.0 # that can be found in the LICENSE file. -# NOTE that this is supposed to be deprecated as per +# NOTE: This is supposed to be deprecated as per # https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_documenting.html#ansible-metadata-block # But our doc Jinja2 template renders it as preview which is what we want ANSIBLE_METADATA = {"metadata_version": "1.0", "status": ["preview"]} @@ -38,18 +38,18 @@ default: false csv_report_path: description: - - Specifies the absolute path where the CSV report will be saved. + - The absolute path where the CSV report will be saved. - Required if C(validation_report_csv) is set to C(True). type: str md_report_path: description: - - Specifies the absolute path where the Markdown report will be saved. + - The absolute path where the Markdown report will be saved. - Required if C(validation_report_md) is set to C(True). type: str cprofile_file: description: - - Specifies the filename for storing cProfile data, which aids in debugging performance issues. - - Note that enabling cProfile can itself impact performance, so it should only be used for troubleshooting. + - The filename for storing cProfile data, useful for debugging performance issues. + - Be aware that enabling cProfile can affect performance, so use it only for troubleshooting. seealso: - name: ANTA website description: Documentation for the ANTA test framework diff --git a/ansible_collections/arista/avd/plugins/modules/eos_validate_state_runner.py b/ansible_collections/arista/avd/plugins/modules/eos_validate_state_runner.py index 66a61782ccb..9fe0b05d152 100644 --- a/ansible_collections/arista/avd/plugins/modules/eos_validate_state_runner.py +++ b/ansible_collections/arista/avd/plugins/modules/eos_validate_state_runner.py @@ -2,7 +2,7 @@ # Use of this source code is governed by the Apache License 2.0 # that can be found in the LICENSE file. -# NOTE that this is supposed to be deprecated as per +# NOTE: This is supposed to be deprecated as per # https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_documenting.html#ansible-metadata-block # But our doc Jinja2 template renders it as preview which is what we want ANSIBLE_METADATA = {"metadata_version": "1.0", "status": ["preview"]} @@ -12,64 +12,80 @@ module: eos_validate_state_runner version_added: "4.4.0" author: Arista Ansible Team (@aristanetworks) -short_description: Leverage ANTA for eos_validate_state role +short_description: Utilizes ANTA for eos_validate_state role validation description: - The C(arista.avd.eos_validate_state_runner) module is an Ansible Action Plugin leveraging the ANTA test framework to validate that the generated structured configurations by AVD are applied to the devices and that the deployed network is working correctly. - - This plugin expects that the structued_configs of each device is present in hostvars, otherwise no test will be generated. + - This plugin requires that structured_configs for each device be present in hostvars; otherwise, no tests will be executed. - |- - The plugin provides the following capabilities: - - Generate a per-device test catalog based on the structured_configs - - Run the generated tests against each device and generate a report in Markdown and CSV format. - - When using check_mode, only generate the test catalog and generate a report to preview what would tests be run against each device - - Dumping the per-device catalog to a file. - - Backward compatibility with existing ansible tags behavior for eos_validate_state to filter categories of tests. + The plugin offers the following capabilities: + - Generating a per-device test catalog based on the AVD structured_config. + - Running generated tests against each device, saving the results in a temporary JSON file, + and recording the file path in hostvars for use by the report plugin. + - In check_mode, only the test catalog is generated, and a report is created to preview the tests that would be run against each device. + - Saving per-device test catalogs and results to specified directories. + - Maintaining backward compatibility with existing ansible tags for eos_validate_state to filter test categories. options: logging_level: - description: Controls the log level for the ANTA library. If unset, the Action plugin will set it to "WARNING" - required: false + description: Sets the log level for the ANTA library. Defaults to "WARNING" if not specified. type: str choices: ["CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG"] default: "WARNING" save_catalog: - description: A boolean to indicate whether or not the catalog should be saved for each device. + description: Indicates whether to save the test catalog for each device. + type: bool + default: false + save_results: + description: Indicates whether to save test results in a JSON file for each device. type: bool default: false device_catalog_output_dir: description: - - When C(save_catalog) is True, this is the directory where the device catalogs will be saved. - - Required if I(save_catalog=True) + - The directory where device test catalogs will be saved. + - Required if C(save_catalog) is set to C(True). + type: str + device_results_output_dir: + description: + - The directory where device test results will be saved. + - Required if C(save_results) is set to C(True). type: str skipped_tests: description: - - A list of dictionaries containing the categories and tests to skip - - The keys for the dictionnary are C(categories) and C(tests). + - A list of dictionaries specifying categories and tests to skip. + - Each dictionary should have keys C(category) and C(tests). type: list elements: dict suboptions: category: type: str - description: The name of one of the AvdTest categories. e.g., C(AvdTestHardware) - required: true + description: The name of an AvdTest category (e.g., C(AvdTestHardware)). tests: type: list elements: str - description: A list of tests in the category. e.g, C(VerifyRoutingProtocolModel) for C(AvdTestBGP) + description: A list of specific tests in the category (e.g., C(VerifyRoutingProtocolModel) in C(AvdTestBGP)). + cprofile_file: + description: + - The filename for storing cProfile data, useful for debugging performance issues. + - Be aware that enabling cProfile can affect performance, so use it only for troubleshooting. seealso: - name: ANTA website - description: ANTA documentation + description: Documentation for the ANTA test framework link: https://anta.ninja notes: - - C(check_mode) is supported for this module and allows to generate a Test Report without running the tests. + - Enabling the cProfile feature for performance profiling may impact the plugin's performance, especially in production environments. + - The plugin manages the creation and cleanup of temporary JSON files used for storing test results. + - This module supports C(check_mode), allowing the generation of test reports without executing the tests. """ EXAMPLES = r""" -- name: Run eos_validate_state_runner leveraging ANTA +- name: Execute eos_validate_state_runner leveraging ANTA arista.avd.eos_validate_state_runner: logging_level: ERROR - save_catalog: True - eos_validate_state_dir: "/tmp" + save_catalog: true + save_results: false + device_catalog_output_dir: "/git_projects/my_avd_project/intended/test_catalogs" + device_results_output_dir: "/git_projects/my_avd_project/reports/test_results" skipped_tests: - category: AvdTestHardware - category: AvdTestBGP From 65fccd3e74f5bf9da75aa44c7b640d37fbc338a4 Mon Sep 17 00:00:00 2001 From: Carl Baillargeon Date: Tue, 28 Nov 2023 19:34:51 -0500 Subject: [PATCH 13/26] Update ANTA Preview doc --- .../roles/eos_validate_state/ANTA-Preview.md | 88 ++++++++++++------- 1 file changed, 56 insertions(+), 32 deletions(-) diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/ANTA-Preview.md b/ansible_collections/arista/avd/roles/eos_validate_state/ANTA-Preview.md index 04cf9fb870e..943cdb47c83 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/ANTA-Preview.md +++ b/ansible_collections/arista/avd/roles/eos_validate_state/ANTA-Preview.md @@ -26,13 +26,27 @@ - Loose mode to ignore playbook errors is no longer supported in ANTA mode. - ANTA mode exclusively supports the newer "list-of-dicts" data models in the structured configuration file input. For further details, consult the AVD 4.x.x [porting guides](https://avd.sh/en/stable/docs/porting-guides/4.x.x.html#data-model-changes-from-dict-of-dicts-to-list-of-dicts). +## Roadmap + +!!! note + Subject to change. No commitments implied. + +- Provide a custom ANTA test catalog as a YAML file or by input variables. +- Ability to exclude some interfaces from the report. +- More tests! + ## Expected changes - You should expect faster execution, and if not please report on the GitHub [discussions board](https://github.com/aristanetworks/ansible-avd/discussions) - Hardware tests are now collapsed. - Some description of tests have been updated to be more precise. - Sorting of the test results is now done per device as opposed to per category. -- All tests will be skipped for a device flagged as undeployed using the host level variable [`is_deployed: false`](https://avd.sh/en/stable/roles/eos_designs/docs/input-variables.html#flagging-a-device-as-not-deployed). Additionally, all tests take into account the `is_deployed` variable value and skip tests accordingly. +- Tests skipped by ANTA will be marked as `SKIPPED` in the final reports. +- All tests will be removed from the catalog for a device flagged as undeployed using the host level variable [`is_deployed: false`](https://avd.sh/en/stable/roles/eos_designs/docs/input-variables.html#flagging-a-device-as-not-deployed). Additionally, all tests take into account the `is_deployed` variable value and remove tests accordingly. + +!!! warning + Tests can also be automatically removed from the catalogs depending on the structured configuration of the devices. ANTA is therefore not aware of these tests and they will not appear in the final report. For example, the `AvdTestMLAG` tests will not be present in a test catalog of a device that do not have an MLAG configuration in his structured configuration. + - BGP tests will only run if `service_routing_protocols_model` is set to `multi-agent` in the structured configuration file. !!! note @@ -61,13 +75,20 @@ ansible-playbook playbooks/fabric-validate.yaml --tags routing_table ``` -- You can now run the eos_validate_state role in check_mode. This will produce a report of tests that will be performed without running the tests on your network. +- You can now run the eos_validate_state role in check_mode. This will produce a report of tests that will be performed without running the tests on your network. Tests will be marked as `NOT RUN` in the final reports. ```shell ansible-playbook playbooks/fabric-validate.yaml --check ``` -- You have the option to save the test catalog generate by the role for each device in the `intended/test_catalogs` folder by setting the variable `save_catalog` to `true`. +- You can increase the Ansible verbosity by adding multiple `-v` when running the playbook. This will give you visibility on which [test categories](#test-categories) are being removed from the catalogs by AVD according to the structured configurations. + + ```shell + ansible-playbook playbooks/fabric-validate.yaml -v + ``` + +!!! info + ANTA mode also supports other functionnalities. For more details, please refer to the [input variables](#input-variables) below. ## Test Categories @@ -116,7 +137,7 @@ ## Input variables ```yaml -# Format for path to r/w reports. Sync with default values configured in arista.avd.build_output_folders +# Root directory root_dir: '{{ inventory_dir }}' # AVD configurations output @@ -132,30 +153,17 @@ test_catalogs_dir: '{{ output_dir }}/{{ test_catalogs_dir_name }}' eos_validate_state_name: 'reports' eos_validate_state_dir: '{{ root_dir }}/{{ eos_validate_state_name }}' +# Output for test results JSON files if save_results is set to true +test_results_dir_name: 'test_results' +test_results_dir: '{{ eos_validate_state_dir }}/{{ test_results_dir_name }}' + +# Fabric name used in the reports name +fabric_name: "all" + # Reports name eos_validate_state_md_report_path: '{{ eos_validate_state_dir }}/{{ fabric_name }}-state.md' eos_validate_state_csv_report_path: '{{ eos_validate_state_dir }}/{{ fabric_name }}-state.csv' -# Markdown flavor to support non-text rendering -# Only support default and github -validate_state_markdown_flavor: "default" - -# The variable `skipped_tests` can be used for running/skipping tests categories -skipped_tests: - - category: AvdTestHardware - -# You can also decide to skip specific subtests (ANTA test name) for more granularity -skipped_tests: - - category: AvdTestBGP - tests: - - VerifyRoutingProtocolModel - - category: AvdTestHardware - tests: - - VerifyEnvironmentCooling - -# Fabric Name, required to match Ansible Group name covering all devices in the Fabric | Required and **must** be an inventory group name. -fabric_name: "all" - # Allow different manufacturers accepted_xcvr_manufacturers: "{{ validation_role.xcvr_own_manufacturers | arista.avd.default(['Arastra, Inc.', 'Arista Networks']) }}" @@ -174,18 +182,32 @@ validation_report_md: "{{ validation_role.validation_report_md | arista.avd.defa # Print only FAILED tests only_failed_tests: "{{ validation_role.only_failed_tests | arista.avd.default(false) }}" + # Variable to enable ANTA eos_validate_state -# Defaults to false as ANTA is currently preview +# Defaults to false as ANTA is currently in preview use_anta: false -# Whether or not to save each device test catalog to 'test_catalogs_dir' -# Used only when 'use_anta' is set to true + +# Save each device test catalog to 'test_catalogs_dir'. Defaults to false. save_catalog: false -# Which tests to skip when using ANTA. -# If set, Ansible tags are ignored -skipped_tests: [] -# Logging level for the ANTA libraries -# Default is warning + +# Save each device test results to 'test_results_dir'. Defaults to false. +save_results: false + +# Logging level for the ANTA libraries. Defaults to "WARNING". logging_level: "WARNING" + +# The variable `skipped_tests` can be used for running/skipping test categories +skipped_tests: + - category: AvdTestHardware + +# You can also decide to skip specific subtests (ANTA test name) for more granularity +skipped_tests: + - category: AvdTestBGP + tests: + - VerifyRoutingProtocolModel + - category: AvdTestHardware + tests: + - VerifyEnvironmentCooling ``` ## Example Playbook @@ -204,4 +226,6 @@ logging_level: "WARNING" use_anta: true # To save catalogs save_catalog: true + # To save results + save_results: true ``` From a16f4494919e644723a5611a1c8d81e1d5483048 Mon Sep 17 00:00:00 2001 From: Carl Baillargeon Date: Thu, 30 Nov 2023 12:30:28 -0500 Subject: [PATCH 14/26] First round of fixing review comments --- .../action/eos_validate_state_reports.py | 23 +++++++++++-------- .../results_manager.py | 5 ++++ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py index 0bee6c62590..357507b6178 100644 --- a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py @@ -7,7 +7,7 @@ import cProfile import pstats -from json import load +from json import JSONDecodeError, load from pathlib import Path from typing import Generator @@ -15,6 +15,7 @@ from ansible.plugins.action import ActionBase, display from ansible_collections.arista.avd.plugins.plugin_utils.eos_validate_state_utils import CSVReport, ResultsManager, ValidateStateReport +from ansible_collections.arista.avd.plugins.plugin_utils.errors import AristaAvdError from ansible_collections.arista.avd.plugins.plugin_utils.utils import get @@ -32,8 +33,12 @@ def _test_results_gen(input_path: str) -> Generator[dict, None, None]: ------ Generator[dict, None, None]: Test result as a dictionary. """ - with Path(input_path).open(encoding="UTF-8") as file: - yield from load(file) + try: + with Path(input_path).open(encoding="UTF-8") as file: + yield from load(file) + except (JSONDecodeError, UnicodeDecodeError, OSError) as error: + error_message = f"{error.__class__.__name__}: {error}" + raise AristaAvdError(error_message) from error class ActionModule(ActionBase): @@ -78,7 +83,7 @@ def run(self, tmp=None, task_vars=None): hostvars = task_vars["hostvars"] # For now we support the existing behavior of eos_validate_state, all hosts from the play ansible_play_hosts_all = task_vars.get("ansible_play_hosts_all", []) - # List to track all results temp files for each host + # List to track each host results temporary file temp_files = [] try: @@ -88,12 +93,12 @@ def run(self, tmp=None, task_vars=None): host_hostvars = hostvars[host] # Hosts marked as not deployed do not have any results if not get(host_hostvars, "is_deployed", default=True): - display.warning(f"No test results for host {host} since it's marked as not deployed.") + display.warning(f"No test results for host {host} since 'is_deployed' is False.") continue # Getting the host results temp file saved by eos_validate_state_runner action plugin temp_file = get(host_hostvars, "anta_results.results_temp_file") if not isinstance(temp_file, str) or not Path(temp_file).exists(): - display.warning(f"Results temporary file path is invalid or does not exist for host {host}.") + display.warning(f"Results temporary file path {temp_file} is invalid or does not exist for host {host}.") continue # Track the temp file temp_files.append(temp_file) @@ -102,8 +107,8 @@ def run(self, tmp=None, task_vars=None): # Process the host test results for test_result in _test_results_gen(temp_file): test_results.update_results(test_result) - except Exception as error: - display.warning(f"Error while processing the test results of host {host}: {error}.") + except AristaAvdError as error: + display.warning(f"Exception raised while processing the test results of host {host}: {error}.") # Generate the reports if validation_report_csv: @@ -118,7 +123,7 @@ def run(self, tmp=None, task_vars=None): except Exception as error: raise AnsibleActionFail(f"Error during plugin execution: {error}") from error finally: - # Cleanup for each host's temporary file + # Cleanup temporary files for file_path in temp_files: Path(file_path).unlink(missing_ok=True) diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py index 93295edc731..2937fe3c5ca 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py @@ -5,6 +5,7 @@ from collections import defaultdict +from ansible_collections.arista.avd.plugins.plugin_utils.errors import AristaAvdError from ansible_collections.arista.avd.roles.eos_validate_state.python_modules.constants import ACRONYM_CATEGORIES @@ -121,6 +122,10 @@ def update_results(self, result: dict) -> None: result (dict): The test result data to be added and processed. """ self.test_id += 1 + + if not isinstance(result, dict): + raise AristaAvdError(message=f"Each test result must be a dictionary, got {result}") + parsed_result = self._parse_result(result) test_result = parsed_result["result"] categories = parsed_result["test_categories"] From 9c7e51a36122485c6adfee7bc62bf5871405117c Mon Sep 17 00:00:00 2001 From: Carl Baillargeon Date: Sat, 9 Dec 2023 11:11:03 -0500 Subject: [PATCH 15/26] Refactor md_report.py --- .../action/eos_validate_state_reports.py | 44 +-- .../action/eos_validate_state_runner.py | 65 ++--- .../eos_validate_state_utils/__init__.py | 4 +- .../get_anta_results.py | 2 +- .../eos_validate_state_utils/md_report.py | 262 ++++++++---------- .../plugins/plugin_utils/utils/__init__.py | 4 + .../plugin_utils/utils/get_and_validate.py | 39 +++ .../utils/verify_and_return_path.py | 32 +++ .../eos_validate_state/tasks/anta_tests.yml | 6 +- 9 files changed, 230 insertions(+), 228 deletions(-) create mode 100644 ansible_collections/arista/avd/plugins/plugin_utils/utils/get_and_validate.py create mode 100644 ansible_collections/arista/avd/plugins/plugin_utils/utils/verify_and_return_path.py diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py index 357507b6178..bcb8b5c9be6 100644 --- a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py @@ -14,9 +14,9 @@ from ansible.errors import AnsibleActionFail from ansible.plugins.action import ActionBase, display -from ansible_collections.arista.avd.plugins.plugin_utils.eos_validate_state_utils import CSVReport, ResultsManager, ValidateStateReport +from ansible_collections.arista.avd.plugins.plugin_utils.eos_validate_state_utils import CSVReport, MDReport, ResultsManager from ansible_collections.arista.avd.plugins.plugin_utils.errors import AristaAvdError -from ansible_collections.arista.avd.plugins.plugin_utils.utils import get +from ansible_collections.arista.avd.plugins.plugin_utils.utils import get, get_and_validate, verify_and_return_path def _test_results_gen(input_path: str) -> Generator[dict, None, None]: @@ -42,20 +42,6 @@ def _test_results_gen(input_path: str) -> Generator[dict, None, None]: class ActionModule(ActionBase): - def _get_and_validate_bool_arg(self, argument: str, *, default_value: bool) -> bool: - """Validate if a task argument is a boolean, returns the value if the validation succeeds.""" - result = self._task.args.get(argument, default_value) - if not isinstance(result, bool): - raise AnsibleActionFail(f"'{argument}' must be a boolean, got {result}.") - return result - - def _get_and_validate_path_arg(self, argument: str) -> str: - """Validate if a task path argument is valid and exists, returns the value if the validation succeeds.""" - result = self._task.args.get(argument) - if not isinstance(result, str) or not Path(result).parent.exists(): - raise AnsibleActionFail(f"'{argument}' must be a valid path and its directory must exist.") - return result - def run(self, tmp=None, task_vars=None): if task_vars is None: task_vars = {} @@ -70,14 +56,11 @@ def run(self, tmp=None, task_vars=None): profiler.enable() # Get task arguments and validate them - only_failed_tests = self._get_and_validate_bool_arg(argument="only_failed_tests", default_value=False) - validation_report_csv = self._get_and_validate_bool_arg(argument="validation_report_csv", default_value=True) - validation_report_md = self._get_and_validate_bool_arg(argument="validation_report_md", default_value=True) - - if validation_report_csv: - csv_report_path = self._get_and_validate_path_arg("csv_report_path") - if validation_report_md: - md_report_path = self._get_and_validate_path_arg("md_report_path") + only_failed_tests = get_and_validate(data=self._task.args, key="only_failed_tests", expected_type=bool, default_value=False) + validation_report_csv = get_and_validate(data=self._task.args, key="validation_report_csv", expected_type=bool, default_value=True) + validation_report_md = get_and_validate(data=self._task.args, key="validation_report_md", expected_type=bool, default_value=True) + csv_report_path = verify_and_return_path(path_input=self._task.args.get("csv_report_path")) if validation_report_csv else None + md_report_path = verify_and_return_path(path_input=self._task.args.get("md_report_path")) if validation_report_md else None # This is not all the hostvars, but just the Ansible Hostvars Manager object where we can retrieve hostvars for each host on-demand hostvars = task_vars["hostvars"] @@ -95,11 +78,14 @@ def run(self, tmp=None, task_vars=None): if not get(host_hostvars, "is_deployed", default=True): display.warning(f"No test results for host {host} since 'is_deployed' is False.") continue - # Getting the host results temp file saved by eos_validate_state_runner action plugin - temp_file = get(host_hostvars, "anta_results.results_temp_file") - if not isinstance(temp_file, str) or not Path(temp_file).exists(): - display.warning(f"Results temporary file path {temp_file} is invalid or does not exist for host {host}.") + try: + # Getting the host results temp file saved by eos_validate_state_runner action plugin + temp_file = get(host_hostvars, "anta_results.results_temp_file") + verify_and_return_path(path_input=temp_file) + except (TypeError, FileNotFoundError) as error: + display.warning(str(error)) continue + # Track the temp file temp_files.append(temp_file) @@ -117,7 +103,7 @@ def run(self, tmp=None, task_vars=None): csv_report.generate_report() if validation_report_md: with Path(md_report_path).open("w", encoding="UTF-8") as report_file: - md_report = ValidateStateReport(report_file, test_results) + md_report = MDReport(report_file, test_results) md_report.generate_report() except Exception as error: diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py index a7bdb9d1a5e..0e21510d585 100644 --- a/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py @@ -8,8 +8,8 @@ import cProfile import logging import pstats -from json import dump, dumps -from pathlib import Path +from json import dumps +from shutil import copy2 from tempfile import NamedTemporaryFile from ansible.errors import AnsibleActionFail @@ -17,7 +17,12 @@ from ansible.plugins.action import ActionBase, display from ansible_collections.arista.avd.plugins.plugin_utils.eos_validate_state_utils import AnsibleEOSDevice, get_anta_results -from ansible_collections.arista.avd.plugins.plugin_utils.utils import PythonToAnsibleContextFilter, PythonToAnsibleHandler +from ansible_collections.arista.avd.plugins.plugin_utils.utils import ( + PythonToAnsibleContextFilter, + PythonToAnsibleHandler, + get_and_validate, + verify_and_return_path, +) LOGGER = logging.getLogger("ansible_collections.arista.avd") # ANTA currently add some RichHandler to the root logger so need to disable propagation @@ -31,23 +36,6 @@ def ignore_aliases(self, data): class ActionModule(ActionBase): - def _get_and_validate_arg( - self, argument: str, expected_type: type, default_value: bool | list | str | None = None, allowed_values: list[str] | None = None - ) -> bool | list | str: - """Validate a task argument, returns the value if the validation succeeds.""" - result = self._task.args.get(argument, default_value) - if not isinstance(result, expected_type) or (allowed_values and result not in allowed_values): - allowed = f" in {allowed_values}" if allowed_values else "" - raise AnsibleActionFail(f"'{argument}' must be a {expected_type.__name__}{allowed}, got {result}.") - return result - - def _get_and_validate_dir_arg(self, argument: str) -> str: - """Validate if a task directory argument is valid and exists, returns the value if the validation succeeds.""" - result = self._task.args.get(argument) - if not isinstance(result, str) or not Path(result).exists(): - raise AnsibleActionFail(f"'{argument}' must be a valid directory path and must exist.") - return result - def run(self, tmp=None, task_vars=None): self._supports_check_mode = True @@ -85,12 +73,13 @@ def run(self, tmp=None, task_vars=None): setup_module_logging(hostname, result) # Get task arguments and validate them - logging_level = self._get_and_validate_arg(argument="logging_level", expected_type=str, default_value="WARNING", allowed_values=LOGGING_LEVELS) - skipped_tests = self._get_and_validate_arg(argument="skipped_tests", expected_type=list, default_value=[]) - save_catalog = self._get_and_validate_arg(argument="save_catalog", expected_type=bool, default_value=False) - save_results = self._get_and_validate_arg(argument="save_results", expected_type=bool, default_value=False) - save_catalog_name = Path(self._get_and_validate_dir_arg(argument="device_catalog_output_dir")) / f"{hostname}-catalog.yml" if save_catalog else None - save_results_name = Path(self._get_and_validate_dir_arg(argument="device_results_output_dir")) / f"{hostname}-results.json" if save_results else None + # TODO: Try Except + logging_level = get_and_validate(data=self._task.args, key="logging_level", expected_type=str, default_value="WARNING", allowed_values=LOGGING_LEVELS) + skipped_tests = get_and_validate(data=self._task.args, key="skipped_tests", expected_type=list, default_value=[]) + save_catalog = get_and_validate(data=self._task.args, key="save_catalog", expected_type=bool, default_value=False) + save_results = get_and_validate(data=self._task.args, key="save_results", expected_type=bool, default_value=False) + catalog_path = verify_and_return_path(path_input=self._task.args.get("device_catalog_path")) if save_catalog else None + result_path = verify_and_return_path(path_input=self._task.args.get("device_result_path")) if save_results else None try: anta_device = AnsibleEOSDevice(name=hostname, connection=ansible_connection, check_mode=ansible_check_mode) @@ -100,24 +89,23 @@ def run(self, tmp=None, task_vars=None): logging_level=logging_level, skipped_tests=skipped_tests, ansible_tags=ansible_tags, - save_catalog_name=save_catalog_name, + save_catalog_name=catalog_path, # This convert Ansible Check Mode to dry_run dry_run=ansible_check_mode, yaml_dumper=AnsibleNoAliasDumper, ) # Call the function to handle temp file creation - temp_file_name = _create_temp_file(hostname, anta_results) + temp_file_path = _create_temp_file(hostname, anta_results) - # Save test results - if save_results_name: - with Path(save_results_name).open("w", encoding="UTF-8") as results_file: - dump(anta_results, results_file, indent=2, sort_keys=False) + # Copy the temp file to the result_path if provided + if result_path: + copy2(temp_file_path, result_path) except Exception as error: raise AnsibleActionFail(message=str(error)) from error # Add the temp file path to the Ansible result - result["results_temp_file"] = temp_file_name + result["results_temp_file"] = temp_file_path if cprofile_file: profiler.disable() @@ -130,8 +118,6 @@ def run(self, tmp=None, task_vars=None): def _create_temp_file(hostname: str, anta_results: list[dict]) -> str: """Create a temporary JSON file to save all test results from ANTA. - The function will also search for leftover temp files in the `/tmp` folder and delete them. - The temp file is saved in `/tmp` with a prefix of `_` and `.json` extension. Args: @@ -143,15 +129,8 @@ def _create_temp_file(hostname: str, anta_results: list[dict]) -> str: ------- str: The absolute path of the temp file. """ - temp_file_prefix = f"{hostname}_" - temp_file_directory = Path("/tmp") - - # Search for leftover temp files with the hostname prefix and delete them. - for file in temp_file_directory.glob(f"{temp_file_prefix}*"): - file.unlink(missing_ok=True) - # Create the temp JSON file to save the ANTA results - with NamedTemporaryFile(mode="w", encoding="UTF-8", suffix=".json", prefix=f"{hostname}_", dir=str(temp_file_directory), delete=False) as temp_file: + with NamedTemporaryFile(mode="w", encoding="UTF-8", suffix=".json", prefix=f"{hostname}_", delete=False) as temp_file: # Serialize to JSON and write to the temp file temp_file.write(dumps(anta_results, indent=2, sort_keys=False)) return temp_file.name diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/__init__.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/__init__.py index e0919b9ddea..ab384910c73 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/__init__.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/__init__.py @@ -5,7 +5,7 @@ from .avdtestbase import AvdTestBase from .csv_report import CSVReport from .get_anta_results import get_anta_results -from .md_report import ValidateStateReport +from .md_report import MDReport from .results_manager import ResultsManager -__all__ = ["AnsibleEOSDevice", "get_anta_results", "AvdTestBase", "ValidateStateReport", "CSVReport", "ResultsManager"] +__all__ = ["AnsibleEOSDevice", "get_anta_results", "AvdTestBase", "MDReport", "CSVReport", "ResultsManager"] diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/get_anta_results.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/get_anta_results.py index a516f388d10..ee776575763 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/get_anta_results.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/get_anta_results.py @@ -82,7 +82,7 @@ def get_anta_results( skipped_tests (list[dict]): A list of dictionary ansible_tags (dict): An optional dictionary containing the tags to maintain legacy filtering behavior for `eos_validate_state`. This is ignored is `skipped_tests` is set. - save_catalog_name (bool): When set, the generated catalog is saved to a file using this name. + save_catalog_name (str): When set, the generated catalog is saved to a file using this name. dry_run (boolean): if True, no test is actually run, useful in conjunction with save_catalog_name. yaml_dumper (Dumper): Dumper to use to dump Anta Catalog, default is NoAliasDumper to avoid anchors. diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py index d3ed924a71d..a65e67f2e44 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py @@ -3,9 +3,9 @@ # that can be found in the LICENSE file. from __future__ import annotations +import inspect import re -from abc import ABC, abstractmethod -from typing import TYPE_CHECKING, Callable, ClassVar, Generator +from typing import TYPE_CHECKING, Callable, Generator if TYPE_CHECKING: from io import TextIOWrapper @@ -13,56 +13,43 @@ from .results_manager import ResultsManager -class MDReportBase(ABC): - """Base class for generating the validation markdown report based on test results managed by ResultsManager.""" +class MDReportUtils: + """Provide utility methods for generating and formatting sections of a Markdown report.""" - def __init__(self, mdfile: TextIOWrapper, results: ResultsManager) -> None: - """Initialize the MDReportBase with an open markdown file object to write to and a ResultsManager instance. + @staticmethod + def generate_heading_name(function_name: str) -> str: + """Generate a formatted heading name based on a given function name. + + The function removes the '_generate_' prefix if it exists, replaces underscores with spaces and convert to title case. Args: ---- - mdfile (TextIOWrapper): An open file object to write the markdown data into. - results (ResultsManager): The ResultsManager instance containing all test results. - """ - self.mdfile = mdfile - self.results = results - - @abstractmethod - def generate_section(self) -> None: - """Abstract method to generate a specific section of the markdown report. - - Must be implemented by subclasses. - """ - - def generate_header_name(self) -> str: - """Generate a formatted header name based on the class name. + function_name (str): The function name to be formatted. Returns: ------- - str: Formatted header name. - - Example: - ------- - `ValidateStateReport` will become Validate State Report. + str: The formatted heading name. """ - class_name = self.__class__.__name__ - return re.sub(r"(? None: - """Generate a table with a header and multiple rows. + def write_table(self, table_heading: list[str], rows_generator: Callable[[], Generator[str, None, None]]) -> None: + """Write a markdown table with a table heading and multiple rows to the markdown file. Args: ---- - table_header (list[str]): The table header. - row_generator (Callable): The rows generator function. + table_heading (list[str]): List of strings to join for the table heading. + rows_generator (Callable): The rows generator function. """ - self.write_table_header(table_header) - for row in row_generator(): + self.mdfile.write("\n".join(table_heading) + "\n") + for row in rows_generator(self): self.mdfile.write(row) self.mdfile.write("\n") - def write_header(self, heading_level: int) -> None: - """Write a markdown header to the markdown file. + def write_heading(self, heading_level: int) -> None: + """Write a markdown heading to the markdown file. + + The heading name used is the caller function name. Args: ---- @@ -74,48 +61,43 @@ def write_header(self, heading_level: int) -> None: """ # Ensure the heading level is within the valid range of 1 to 6 heading_level = max(1, min(heading_level, 6)) - header_name = self.generate_header_name() - heading = "#" * heading_level + " " + header_name + heading_name = self.generate_heading_name(inspect.stack()[1].function) + heading = "#" * heading_level + " " + heading_name self.mdfile.write(f"{heading}\n\n") - def write_table_header(self, headers: list[str]) -> None: - """Write a table header to the markdown file. - Args: - ---- - headers (list[str]): List of header strings for the table. - """ - self.mdfile.write("\n".join(headers) + "\n") +class MDReport(MDReportUtils): + """Generate and write the validation markdown report based on test results managed by ResultsManager. + The class uses the `generate_report` method as the main method to call the private methods, + each representing a section of the report, to generate and write the final report. + """ -class ValidateStateReport(MDReportBase): - """Generate the `# Validate State Report` section of the markdown report.""" - - def generate_report(self, cls: type | None = None, *, is_root: bool = True) -> None: - """Recursively generates report sections for each inner classes. + def __init__(self, mdfile: TextIOWrapper, results: ResultsManager) -> None: + """Initialize the MDReport with an open markdown file object to write to and a ResultsManager instance. Args: ---- - cls: Internal use for recursive calls. - is_root (bool): Flag indicating if this is the root call. + mdfile (TextIOWrapper): An open file object to write the markdown data into. + results (ResultsManager): The ResultsManager instance containing all test results. """ - # Determine the class to process; default to the current class on the first call. - if cls is None: - cls = self.__class__ + self.mdfile = mdfile + self.results = results - if is_root: - self.generate_section() + def generate_report(self) -> None: + """Generate and write the various sections of the markdown report. - # Iterate through inner classes and generate their respective sections - for element in cls.__dict__.values(): - if isinstance(element, type) and issubclass(element, MDReportBase): - inner_cls_instance = element(self.mdfile, self.results) - inner_cls_instance.generate_section() - self.generate_report(cls=element, is_root=False) + The order in which the private methods are called represents the order of the sections in the final report. + """ + self._generate_validate_state_report() + self._generate_test_results_summary() + self._generate_failed_test_results_summary() + if not self.results.only_failed_tests: + self._generate_all_test_results() - def generate_section(self) -> None: + def _generate_validate_state_report(self) -> None: """Generate the `# Validate State Report` section of the markdown report.""" - self.write_header(heading_level=1) + self.write_heading(heading_level=1) self.mdfile.write( """**Table of Contents:** @@ -127,86 +109,75 @@ def generate_section(self) -> None: """, ) - class TestResultsSummary(MDReportBase): + def _generate_test_results_summary(self) -> None: """Generate the `## Test Results Summary` section of the markdown report.""" + self.write_heading(heading_level=2) + self._generate_summary_totals() + self._generate_summary_totals_devices_under_tests() + self._generate_summary_totals_per_category() + + def _generate_summary_totals(self) -> None: + """Generate the `### Summary Totals` section of the markdown report.""" + table_heading = [ + "| Total Tests | Total Tests Passed | Total Tests Failed | Total Tests Skipped |", + "| ----------- | ------------------ | ------------------ | ------------------- |", + ] - def generate_section(self) -> None: - """Generate the `## Test Results Summary` section of the markdown report.""" - self.write_header(heading_level=2) + def generate_rows(self: MDReport) -> Generator[str, None, None]: + """Generate the rows of the summary totals table.""" + yield ( + f"| {self.results.total_tests} | {self.results.total_tests_passed} | {self.results.total_tests_failed} | {self.results.total_tests_skipped} |\n" + ) - class SummaryTotals(MDReportBase): - """Generate the `### Summary Totals` section of the markdown report.""" + self.write_heading(heading_level=3) + self.write_table(table_heading=table_heading, rows_generator=generate_rows) - TABLE_HEADER: ClassVar[list[str]] = [ - "| Total Tests | Total Tests Passed | Total Tests Failed | Total Tests Skipped |", - "| ----------- | ------------------ | ------------------ | ------------------- |", - ] + def _generate_summary_totals_devices_under_tests(self) -> None: + """Generate the `### Summary Totals Devices Under Tests` section of the markdown report.""" + table_heading = [ + "| DUT | Total Tests | Tests Passed | Tests Failed | Tests Skipped | Categories Failed | Categories Skipped |", + "| --- | ----------- | ------------ | ------------ | ------------- | ----------------- | ------------------ |", + ] - def generate_rows(self) -> Generator[str, None, None]: - """Generate the rows of the results table.""" + def generate_rows(self: MDReport) -> Generator[str, None, None]: + """Generate the rows of the summary totals dut table.""" + for dut, stat in self.results.dut_stats.items(): + total_tests = stat["tests_passed"] + stat["tests_failed"] + stat["tests_skipped"] + stat["tests_not_run"] + categories_failed = ", ".join(sorted(stat["categories_failed"])) + categories_skipped = ", ".join(sorted(stat["categories_skipped"])) yield ( - f"| {self.results.total_tests} | {self.results.total_tests_passed} | {self.results.total_tests_failed} |" - f" {self.results.total_tests_skipped} |\n" + f"| {dut} | {total_tests} | {stat['tests_passed']} | {stat['tests_failed']} | {stat['tests_skipped']} | {categories_failed or '-'} |" + f" {categories_skipped or '-'} |\n" ) - def generate_section(self) -> None: - """Generate the `### Summary Totals` section of the markdown report.""" - self.write_header(heading_level=3) - self.generate_table(table_header=self.TABLE_HEADER, row_generator=self.generate_rows) - - class SummaryTotalsDevicesUnderTests(MDReportBase): - """Generate the `### Summary Totals Devices Under Tests` section of the markdown report.""" - - TABLE_HEADER: ClassVar[list[str]] = [ - "| DUT | Total Tests | Tests Passed | Tests Failed | Tests Skipped | Categories Failed | Categories Skipped |", - "| --- | ----------- | ------------ | ------------ | ------------- | ----------------- | ------------------ |", - ] - - def generate_rows(self) -> Generator[str, None, None]: - """Generate the rows of the results table.""" - for dut, stat in self.results.dut_stats.items(): - total_tests = stat["tests_passed"] + stat["tests_failed"] + stat["tests_skipped"] + stat["tests_not_run"] - categories_failed = ", ".join(sorted(stat["categories_failed"])) - categories_skipped = ", ".join(sorted(stat["categories_skipped"])) - yield ( - f"| {dut} | {total_tests} | {stat['tests_passed']} | {stat['tests_failed']} | {stat['tests_skipped']} | {categories_failed or '-'} |" - f" {categories_skipped or '-'} |\n" - ) - - def generate_section(self) -> None: - """Generate the `### Summary Totals Devices Under Tests` section of the markdown report.""" - self.write_header(heading_level=3) - self.generate_table(table_header=self.TABLE_HEADER, row_generator=self.generate_rows) - - class SummaryTotalsPerCategory(MDReportBase): - """Generate the `### Summary Totals Per Category` section of the markdown report.""" - - TABLE_HEADER: ClassVar[list[str]] = [ - "| Test Category | Total Tests | Tests Passed | Tests Failed | Tests Skipped |", - "| ------------- | ----------- | ------------ | ------------ | ------------- |", - ] - - def generate_rows(self) -> Generator[str, None, None]: - """Generate the rows of the results table.""" - for category, stat in self.results.category_stats.items(): - total_tests = stat["tests_passed"] + stat["tests_failed"] + stat["tests_skipped"] + stat["tests_not_run"] - yield f"| {category} | {total_tests} | {stat['tests_passed']} | {stat['tests_failed']} | {stat['tests_skipped']} |\n" - - def generate_section(self) -> None: - """Generate the `### Summary Totals Per Category` section of the markdown report.""" - self.write_header(heading_level=3) - self.generate_table(table_header=self.TABLE_HEADER, row_generator=self.generate_rows) - - class FailedTestResultsSummary(MDReportBase): - """Generate the `## Failed Test Results Summary` section of the markdown report.""" + self.write_heading(heading_level=3) + self.write_table(table_heading=table_heading, rows_generator=generate_rows) + + def _generate_summary_totals_per_category(self) -> None: + """Generate the `### Summary Totals Per Category` section of the markdown report.""" + table_heading = [ + "| Test Category | Total Tests | Tests Passed | Tests Failed | Tests Skipped |", + "| ------------- | ----------- | ------------ | ------------ | ------------- |", + ] + + def generate_rows(self: MDReport) -> Generator[str, None, None]: + """Generate the rows of the summary totals per category table.""" + for category, stat in self.results.category_stats.items(): + total_tests = stat["tests_passed"] + stat["tests_failed"] + stat["tests_skipped"] + stat["tests_not_run"] + yield f"| {category} | {total_tests} | {stat['tests_passed']} | {stat['tests_failed']} | {stat['tests_skipped']} |\n" - TABLE_HEADER: ClassVar[list[str]] = [ + self.write_heading(heading_level=3) + self.write_table(table_heading=table_heading, rows_generator=generate_rows) + + def _generate_failed_test_results_summary(self) -> None: + """Generate the `## Failed Test Results Summary` section of the markdown report.""" + table_heading = [ "| Test ID | Node | Test Categories | Test Description | Test | Test Result | Failure Reasons |", "| ------- | ---- | --------------- | ---------------- | ---- | ----------- | --------------- |", ] - def generate_rows(self) -> Generator[str, None, None]: - """Generate the rows of the results table.""" + def generate_rows(self: MDReport) -> Generator[str, None, None]: + """Generate the rows of the failed test results table.""" for result in self.results.failed_tests: failure_reasons = ", ".join(result["failure_reasons"]) categories = ", ".join(result["test_categories"]) @@ -215,24 +186,21 @@ def generate_rows(self) -> Generator[str, None, None]: f" {result['test'] or '-'} | {result['result'] or '-'} | {failure_reasons or '-'} |\n" ) - def generate_section(self) -> None: - """Generate the `## Failed Test Results Summary` section of the markdown report.""" - self.write_header(heading_level=2) - self.generate_table(table_header=self.TABLE_HEADER, row_generator=self.generate_rows) + self.write_heading(heading_level=2) + self.write_table(table_heading=table_heading, rows_generator=generate_rows) - class AllTestResults(MDReportBase): - """Generates the `## All Test Results` section of the markdown report. + def _generate_all_test_results(self) -> None: + """Generate the `## All Test Results` section of the markdown report. This section is generated only if the report includes all results. """ - - TABLE_HEADER: ClassVar[list[str]] = [ + table_heading = [ "| Test ID | Node | Test Categories | Test Description | Test | Test Result | Failure Reasons |", "| ------- | ---- | --------------- | ---------------- | ---- | ----------- | --------------- |", ] - def generate_rows(self) -> Generator[str, None, None]: - """Generate the rows of the results table.""" + def generate_rows(self: MDReport) -> Generator[str, None, None]: + """Generate the rows of the all test results table.""" for result in self.results.all_tests: failure_reasons = ", ".join(result["failure_reasons"]) categories = ", ".join(result["test_categories"]) @@ -241,11 +209,5 @@ def generate_rows(self) -> Generator[str, None, None]: f" {result['test'] or '-'} | {result['result'] or '-'} | {failure_reasons or '-'} |\n" ) - def generate_section(self) -> None: - """Generate the `## All Test Results` section of the markdown report. - - This section is generated only if the report includes all results. - """ - if not self.results.only_failed_tests: - self.write_header(heading_level=2) - self.generate_table(table_header=self.TABLE_HEADER, row_generator=self.generate_rows) + self.write_heading(heading_level=2) + self.write_table(table_heading=table_heading, rows_generator=generate_rows) diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/utils/__init__.py b/ansible_collections/arista/avd/plugins/plugin_utils/utils/__init__.py index d209f687ce5..1431285b470 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/utils/__init__.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/utils/__init__.py @@ -7,6 +7,7 @@ from .default import default from .get import get from .get_all import get_all +from .get_and_validate import get_and_validate from .get_ip_from_pool import get_ip_from_pool from .get_item import get_item from .get_templar import get_templar @@ -17,6 +18,7 @@ from .template import template from .template_var import template_var from .unique import unique +from .verify_and_return_path import verify_and_return_path from .yaml_dumper import NoAliasDumper __all__ = [ @@ -38,4 +40,6 @@ "PythonToAnsibleContextFilter", "PythonToAnsibleHandler", "NoAliasDumper", + "get_and_validate", + "verify_and_return_path", ] diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/utils/get_and_validate.py b/ansible_collections/arista/avd/plugins/plugin_utils/utils/get_and_validate.py new file mode 100644 index 00000000000..47c1f239cf5 --- /dev/null +++ b/ansible_collections/arista/avd/plugins/plugin_utils/utils/get_and_validate.py @@ -0,0 +1,39 @@ +# Copyright (c) 2023 Arista Networks, Inc. +# Use of this source code is governed by the Apache License 2.0 +# that can be found in the LICENSE file. +from __future__ import annotations + +from typing import Any + + +def get_and_validate(data: dict, key: str, expected_type: type, default_value: Any = None, allowed_values: list[str] | None = None) -> Any: + """Retrieve and validate a value from a given dictionary based on its type and, optionally, a list of allowed values. + + Args: + ---- + data (dict): Dictionary to retrieve the value from. + key (str): Key corresponding to the value. + expected_type (type): Expected type of the value. + default_value (Any, optional): Default value if key is not found. Defaults to None. + allowed_values (list[str] | None, optional): List of permissible values for the key. Defaults to None. + + Returns: + ------- + Any: The validated value. + + Raises: + ------ + TypeError: If value type is not 'expected_type'. + ValueError: If value is not in 'allowed_values'. + """ + value = data.get(key, default_value) + + if not isinstance(value, expected_type): + msg = f"'{key}' value must be a {expected_type.__name__}, got {type(value).__name__}." + raise TypeError(msg) + + if allowed_values is not None and value not in allowed_values: + msg = f"'{key}' value must be in {allowed_values}, got {value}." + raise ValueError(msg) + + return value diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/utils/verify_and_return_path.py b/ansible_collections/arista/avd/plugins/plugin_utils/utils/verify_and_return_path.py new file mode 100644 index 00000000000..731653ff24f --- /dev/null +++ b/ansible_collections/arista/avd/plugins/plugin_utils/utils/verify_and_return_path.py @@ -0,0 +1,32 @@ +# Copyright (c) 2023 Arista Networks, Inc. +# Use of this source code is governed by the Apache License 2.0 +# that can be found in the LICENSE file. +from __future__ import annotations + +from pathlib import Path + + +def verify_and_return_path(path_input: str | Path) -> Path: + """Verify if the given path exists in the file system and returns the Path object. + + Args: + ---- + path_input (str or Path): A string or Path object representing a file system path. + + Returns: + ------- + Path: The verified file system path as a Path object. + + Raises: + ------ + TypeError: If the input is not a string or Path object. + FileNotFoundError: If the path does not exist. + """ + if not isinstance(path_input, (str, Path)): + msg = f"Input path {path_input} must be a string or a Path object." + raise TypeError(msg) + path = Path(path_input) + if path.exists(): + return path + msg = f"The path {path} does not exist" + raise FileNotFoundError(msg) diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml index 9f455daa4a2..301934ec12f 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml +++ b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml @@ -11,9 +11,9 @@ logging_level: "{{ logging_level | arista.avd.default('WARNING') }}" skipped_tests: "{{ skipped_tests | arista.avd.default([]) }}" save_catalog: "{{ save_catalog | arista.avd.default(false) }}" - save_results: "{{ save_results | arista.avd.default(false) }}" - device_catalog_output_dir: "{{ test_catalogs_dir }}" - device_results_output_dir: "{{ test_results_dir }}" + save_result: "{{ save_result | arista.avd.default(false) }}" + device_catalog_path: "{{ test_catalogs_dir }}/{{ inventory_hostname }}-catalog.yml" + device_result_path: "{{ test_results_dir }}/{{ inventory_hostname }}-result.json" # cprofile_file: "eos_validate_state_runner.prof" register: anta_results check_mode: false From bf7c986b86cd2d13214eb63fca8e1fac1d0757dc Mon Sep 17 00:00:00 2001 From: Carl Baillargeon Date: Sat, 9 Dec 2023 21:41:50 -0500 Subject: [PATCH 16/26] Refactor md_report.py again --- .../eos_validate_state_utils/md_report.py | 305 +++++++++++------- 1 file changed, 182 insertions(+), 123 deletions(-) diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py index a65e67f2e44..b1473122432 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py @@ -3,9 +3,9 @@ # that can be found in the LICENSE file. from __future__ import annotations -import inspect import re -from typing import TYPE_CHECKING, Callable, Generator +from abc import ABC, abstractmethod +from typing import TYPE_CHECKING, ClassVar, Generator if TYPE_CHECKING: from io import TextIOWrapper @@ -13,43 +13,105 @@ from .results_manager import ResultsManager -class MDReportUtils: - """Provide utility methods for generating and formatting sections of a Markdown report.""" +class MDReport: + """Main class responsible for generating various sections of a markdown report based on test results. - @staticmethod - def generate_heading_name(function_name: str) -> str: - """Generate a formatted heading name based on a given function name. + It aggregates different report sections, each represented by a subclass of `MDReportBase`, + and sequentially generates their content into a markdown file. - The function removes the '_generate_' prefix if it exists, replaces underscores with spaces and convert to title case. + The `generate_report` method will loop over all the section subclasses and call their `generate_section` method. + The final report will be generated in the same order as the `self.sections` list attribute. + """ + + def __init__(self, mdfile: TextIOWrapper, results: ResultsManager) -> None: + """Initialize the MDReport with an open markdown file object to write to and a ResultsManager instance. Args: ---- - function_name (str): The function name to be formatted. + mdfile (TextIOWrapper): An open file object to write the markdown data into. + results (ResultsManager): The ResultsManager instance containing all test results. + """ + self.sections: list[MDReportBase] = [ + ValidateStateReport(mdfile, results), + TestResultsSummary(mdfile, results), + SummaryTotals(mdfile, results), + SummaryTotalsDevicesUnderTests(mdfile, results), + SummaryTotalsPerCategory(mdfile, results), + FailedTestResultsSummary(mdfile, results), + AllTestResults(mdfile, results), + ] + + def generate_report(self) -> None: + """Generate and write the various sections of the markdown report.""" + for section in self.sections: + section.generate_section() + + +class MDReportBase(ABC): + """Base class for all sections subclasses. + + Every subclasses must implement the `generate_section` method that uses the `ResultsManager` object + to generate and write content to the provided markdown file. + """ + + def __init__(self, mdfile: TextIOWrapper, results: ResultsManager) -> None: + """Initialize the MDReportBase with an open markdown file object to write to and a ResultsManager instance. + + Args: + ---- + mdfile (TextIOWrapper): An open file object to write the markdown data into. + results (ResultsManager): The ResultsManager instance containing all test results. + """ + self.mdfile = mdfile + self.results = results + + @abstractmethod + def generate_section(self) -> None: + """Abstract method to generate a specific section of the markdown report. + + Must be implemented by subclasses. + """ + msg = "Must be implemented by subclasses" + raise NotImplementedError(msg) + + def generate_rows(self) -> Generator[str, None, None]: + """Generate the rows of a markdown table for a specific report section. + + Subclasses can implement this method to generate the content of the table rows. + """ + msg = "Subclasses should implement this method" + raise NotImplementedError(msg) + + def generate_heading_name(self) -> str: + """Generate a formatted heading name based on the class name. Returns: ------- - str: The formatted heading name. + str: Formatted header name. + + Example: + ------- + `ValidateStateReport` will become Validate State Report. """ - readable_name = re.sub(r"^_generate_", "", function_name) - return readable_name.replace("_", " ").title() + class_name = self.__class__.__name__ + return re.sub(r"(? None: + def write_table(self, table_heading: list[str]) -> None: """Write a markdown table with a table heading and multiple rows to the markdown file. Args: ---- table_heading (list[str]): List of strings to join for the table heading. - rows_generator (Callable): The rows generator function. """ self.mdfile.write("\n".join(table_heading) + "\n") - for row in rows_generator(self): + for row in self.generate_rows(): self.mdfile.write(row) self.mdfile.write("\n") def write_heading(self, heading_level: int) -> None: """Write a markdown heading to the markdown file. - The heading name used is the caller function name. + The heading name used is the class name. Args: ---- @@ -61,41 +123,15 @@ def write_heading(self, heading_level: int) -> None: """ # Ensure the heading level is within the valid range of 1 to 6 heading_level = max(1, min(heading_level, 6)) - heading_name = self.generate_heading_name(inspect.stack()[1].function) + heading_name = self.generate_heading_name() heading = "#" * heading_level + " " + heading_name self.mdfile.write(f"{heading}\n\n") -class MDReport(MDReportUtils): - """Generate and write the validation markdown report based on test results managed by ResultsManager. +class ValidateStateReport(MDReportBase): + """Generate the `# Validate State Report` section of the markdown report.""" - The class uses the `generate_report` method as the main method to call the private methods, - each representing a section of the report, to generate and write the final report. - """ - - def __init__(self, mdfile: TextIOWrapper, results: ResultsManager) -> None: - """Initialize the MDReport with an open markdown file object to write to and a ResultsManager instance. - - Args: - ---- - mdfile (TextIOWrapper): An open file object to write the markdown data into. - results (ResultsManager): The ResultsManager instance containing all test results. - """ - self.mdfile = mdfile - self.results = results - - def generate_report(self) -> None: - """Generate and write the various sections of the markdown report. - - The order in which the private methods are called represents the order of the sections in the final report. - """ - self._generate_validate_state_report() - self._generate_test_results_summary() - self._generate_failed_test_results_summary() - if not self.results.only_failed_tests: - self._generate_all_test_results() - - def _generate_validate_state_report(self) -> None: + def generate_section(self) -> None: """Generate the `# Validate State Report` section of the markdown report.""" self.write_heading(heading_level=1) self.mdfile.write( @@ -109,105 +145,128 @@ def _generate_validate_state_report(self) -> None: """, ) - def _generate_test_results_summary(self) -> None: + +class TestResultsSummary(MDReportBase): + """Generate the `## Test Results Summary` section of the markdown report.""" + + def generate_section(self) -> None: """Generate the `## Test Results Summary` section of the markdown report.""" self.write_heading(heading_level=2) - self._generate_summary_totals() - self._generate_summary_totals_devices_under_tests() - self._generate_summary_totals_per_category() - def _generate_summary_totals(self) -> None: + +class SummaryTotals(MDReportBase): + """Generate the `### Summary Totals` section of the markdown report.""" + + TABLE_HEADING: ClassVar[list[str]] = [ + "| Total Tests | Total Tests Passed | Total Tests Failed | Total Tests Skipped |", + "| ----------- | ------------------ | ------------------ | ------------------- |", + ] + + def generate_rows(self) -> Generator[str, None, None]: + """Generate the rows of the summary totals table.""" + yield (f"| {self.results.total_tests} | {self.results.total_tests_passed} | {self.results.total_tests_failed} | {self.results.total_tests_skipped} |\n") + + def generate_section(self) -> None: """Generate the `### Summary Totals` section of the markdown report.""" - table_heading = [ - "| Total Tests | Total Tests Passed | Total Tests Failed | Total Tests Skipped |", - "| ----------- | ------------------ | ------------------ | ------------------- |", - ] + self.write_heading(heading_level=3) + self.write_table(table_heading=self.TABLE_HEADING) + + +class SummaryTotalsDevicesUnderTests(MDReportBase): + """Generate the `### Summary Totals Devices Under Tests` section of the markdown report.""" - def generate_rows(self: MDReport) -> Generator[str, None, None]: - """Generate the rows of the summary totals table.""" + TABLE_HEADING: ClassVar[list[str]] = [ + "| DUT | Total Tests | Tests Passed | Tests Failed | Tests Skipped | Categories Failed | Categories Skipped |", + "| --- | ----------- | ------------ | ------------ | ------------- | ----------------- | ------------------ |", + ] + + def generate_rows(self) -> Generator[str, None, None]: + """Generate the rows of the summary totals dut table.""" + for dut, stat in self.results.dut_stats.items(): + total_tests = stat["tests_passed"] + stat["tests_failed"] + stat["tests_skipped"] + stat["tests_not_run"] + categories_failed = ", ".join(sorted(stat["categories_failed"])) + categories_skipped = ", ".join(sorted(stat["categories_skipped"])) yield ( - f"| {self.results.total_tests} | {self.results.total_tests_passed} | {self.results.total_tests_failed} | {self.results.total_tests_skipped} |\n" + f"| {dut} | {total_tests} | {stat['tests_passed']} | {stat['tests_failed']} | {stat['tests_skipped']} | {categories_failed or '-'} |" + f" {categories_skipped or '-'} |\n" ) + def generate_section(self) -> None: + """Generate the `### Summary Totals Devices Under Tests` section of the markdown report.""" self.write_heading(heading_level=3) - self.write_table(table_heading=table_heading, rows_generator=generate_rows) + self.write_table(table_heading=self.TABLE_HEADING) - def _generate_summary_totals_devices_under_tests(self) -> None: - """Generate the `### Summary Totals Devices Under Tests` section of the markdown report.""" - table_heading = [ - "| DUT | Total Tests | Tests Passed | Tests Failed | Tests Skipped | Categories Failed | Categories Skipped |", - "| --- | ----------- | ------------ | ------------ | ------------- | ----------------- | ------------------ |", - ] - def generate_rows(self: MDReport) -> Generator[str, None, None]: - """Generate the rows of the summary totals dut table.""" - for dut, stat in self.results.dut_stats.items(): - total_tests = stat["tests_passed"] + stat["tests_failed"] + stat["tests_skipped"] + stat["tests_not_run"] - categories_failed = ", ".join(sorted(stat["categories_failed"])) - categories_skipped = ", ".join(sorted(stat["categories_skipped"])) - yield ( - f"| {dut} | {total_tests} | {stat['tests_passed']} | {stat['tests_failed']} | {stat['tests_skipped']} | {categories_failed or '-'} |" - f" {categories_skipped or '-'} |\n" - ) +class SummaryTotalsPerCategory(MDReportBase): + """Generate the `### Summary Totals Per Category` section of the markdown report.""" - self.write_heading(heading_level=3) - self.write_table(table_heading=table_heading, rows_generator=generate_rows) + TABLE_HEADING: ClassVar[list[str]] = [ + "| Test Category | Total Tests | Tests Passed | Tests Failed | Tests Skipped |", + "| ------------- | ----------- | ------------ | ------------ | ------------- |", + ] - def _generate_summary_totals_per_category(self) -> None: + def generate_rows(self) -> Generator[str, None, None]: + """Generate the rows of the summary totals per category table.""" + for category, stat in self.results.category_stats.items(): + total_tests = stat["tests_passed"] + stat["tests_failed"] + stat["tests_skipped"] + stat["tests_not_run"] + yield f"| {category} | {total_tests} | {stat['tests_passed']} | {stat['tests_failed']} | {stat['tests_skipped']} |\n" + + def generate_section(self) -> None: """Generate the `### Summary Totals Per Category` section of the markdown report.""" - table_heading = [ - "| Test Category | Total Tests | Tests Passed | Tests Failed | Tests Skipped |", - "| ------------- | ----------- | ------------ | ------------ | ------------- |", - ] + self.write_heading(heading_level=3) + self.write_table(table_heading=self.TABLE_HEADING) - def generate_rows(self: MDReport) -> Generator[str, None, None]: - """Generate the rows of the summary totals per category table.""" - for category, stat in self.results.category_stats.items(): - total_tests = stat["tests_passed"] + stat["tests_failed"] + stat["tests_skipped"] + stat["tests_not_run"] - yield f"| {category} | {total_tests} | {stat['tests_passed']} | {stat['tests_failed']} | {stat['tests_skipped']} |\n" - self.write_heading(heading_level=3) - self.write_table(table_heading=table_heading, rows_generator=generate_rows) +class FailedTestResultsSummary(MDReportBase): + """Generate the `## Failed Test Results Summary` section of the markdown report.""" - def _generate_failed_test_results_summary(self) -> None: - """Generate the `## Failed Test Results Summary` section of the markdown report.""" - table_heading = [ - "| Test ID | Node | Test Categories | Test Description | Test | Test Result | Failure Reasons |", - "| ------- | ---- | --------------- | ---------------- | ---- | ----------- | --------------- |", - ] + TABLE_HEADING: ClassVar[list[str]] = [ + "| Test ID | Node | Test Categories | Test Description | Test | Test Result | Failure Reasons |", + "| ------- | ---- | --------------- | ---------------- | ---- | ----------- | --------------- |", + ] - def generate_rows(self: MDReport) -> Generator[str, None, None]: - """Generate the rows of the failed test results table.""" - for result in self.results.failed_tests: - failure_reasons = ", ".join(result["failure_reasons"]) - categories = ", ".join(result["test_categories"]) - yield ( - f"| {result['test_id'] or '-'} | {result['node'] or '-'} | {categories or '-'} | {result['test_description'] or '-'} |" - f" {result['test'] or '-'} | {result['result'] or '-'} | {failure_reasons or '-'} |\n" - ) + def generate_rows(self) -> Generator[str, None, None]: + """Generate the rows of the failed test results table.""" + for result in self.results.failed_tests: + failure_reasons = ", ".join(result["failure_reasons"]) + categories = ", ".join(result["test_categories"]) + yield ( + f"| {result['test_id'] or '-'} | {result['node'] or '-'} | {categories or '-'} | {result['test_description'] or '-'} |" + f" {result['test'] or '-'} | {result['result'] or '-'} | {failure_reasons or '-'} |\n" + ) + def generate_section(self) -> None: + """Generate the `## Failed Test Results Summary` section of the markdown report.""" self.write_heading(heading_level=2) - self.write_table(table_heading=table_heading, rows_generator=generate_rows) + self.write_table(table_heading=self.TABLE_HEADING) + + +class AllTestResults(MDReportBase): + """Generates the `## All Test Results` section of the markdown report. - def _generate_all_test_results(self) -> None: + This section is generated only if the report includes all results. + """ + + TABLE_HEADING: ClassVar[list[str]] = [ + "| Test ID | Node | Test Categories | Test Description | Test | Test Result | Failure Reasons |", + "| ------- | ---- | --------------- | ---------------- | ---- | ----------- | --------------- |", + ] + + def generate_rows(self) -> Generator[str, None, None]: + """Generate the rows of the all test results table.""" + for result in self.results.all_tests: + failure_reasons = ", ".join(result["failure_reasons"]) + categories = ", ".join(result["test_categories"]) + yield ( + f"| {result['test_id'] or '-'} | {result['node'] or '-'} | {categories or '-'} | {result['test_description'] or '-'} |" + f" {result['test'] or '-'} | {result['result'] or '-'} | {failure_reasons or '-'} |\n" + ) + + def generate_section(self) -> None: """Generate the `## All Test Results` section of the markdown report. This section is generated only if the report includes all results. """ - table_heading = [ - "| Test ID | Node | Test Categories | Test Description | Test | Test Result | Failure Reasons |", - "| ------- | ---- | --------------- | ---------------- | ---- | ----------- | --------------- |", - ] - - def generate_rows(self: MDReport) -> Generator[str, None, None]: - """Generate the rows of the all test results table.""" - for result in self.results.all_tests: - failure_reasons = ", ".join(result["failure_reasons"]) - categories = ", ".join(result["test_categories"]) - yield ( - f"| {result['test_id'] or '-'} | {result['node'] or '-'} | {categories or '-'} | {result['test_description'] or '-'} |" - f" {result['test'] or '-'} | {result['result'] or '-'} | {failure_reasons or '-'} |\n" - ) - - self.write_heading(heading_level=2) - self.write_table(table_heading=table_heading, rows_generator=generate_rows) + if not self.results.only_failed_tests: + self.write_heading(heading_level=2) + self.write_table(table_heading=self.TABLE_HEADING) From 14811244bf088911103283bdb6dcacde39f65536 Mon Sep 17 00:00:00 2001 From: Carl Baillargeon Date: Sun, 10 Dec 2023 11:33:55 -0500 Subject: [PATCH 17/26] Added cprofile decorator and remove temp file stuff --- .../action/eos_validate_state_reports.py | 84 +++++++------------ .../action/eos_validate_state_runner.py | 76 +++++++---------- .../eos_validate_state_utils/csv_report.py | 4 +- .../eos_validate_state_utils/md_report.py | 16 ++-- .../results_manager.py | 12 ++- .../plugins/plugin_utils/utils/__init__.py | 10 ++- .../plugin_utils/utils/cprofile_decorator.py | 65 ++++++++++++++ ...d_return_path.py => get_validated_path.py} | 14 ++-- ...and_validate.py => get_validated_value.py} | 2 +- .../eos_validate_state/defaults/main.yml | 26 +++--- .../eos_validate_state/tasks/anta_tests.yml | 5 +- .../roles/eos_validate_state/tasks/main.yml | 1 + 12 files changed, 177 insertions(+), 138 deletions(-) create mode 100644 ansible_collections/arista/avd/plugins/plugin_utils/utils/cprofile_decorator.py rename ansible_collections/arista/avd/plugins/plugin_utils/utils/{verify_and_return_path.py => get_validated_path.py} (51%) rename ansible_collections/arista/avd/plugins/plugin_utils/utils/{get_and_validate.py => get_validated_value.py} (90%) diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py index bcb8b5c9be6..0219a732120 100644 --- a/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_reports.py @@ -5,43 +5,39 @@ __metaclass__ = type -import cProfile -import pstats from json import JSONDecodeError, load -from pathlib import Path -from typing import Generator +from typing import TYPE_CHECKING, Generator from ansible.errors import AnsibleActionFail from ansible.plugins.action import ActionBase, display from ansible_collections.arista.avd.plugins.plugin_utils.eos_validate_state_utils import CSVReport, MDReport, ResultsManager -from ansible_collections.arista.avd.plugins.plugin_utils.errors import AristaAvdError -from ansible_collections.arista.avd.plugins.plugin_utils.utils import get, get_and_validate, verify_and_return_path +from ansible_collections.arista.avd.plugins.plugin_utils.utils import get, get_validated_path, get_validated_value +if TYPE_CHECKING: + from pathlib import Path -def _test_results_gen(input_path: str) -> Generator[dict, None, None]: + +def _test_results_gen(input_path: Path) -> Generator[dict, None, None]: """Generate test results from a JSON file for a specific host. - This function opens the JSON temporary file created by the `eos_validate_state_runner` action plugin + This function opens the JSON results file created by the `eos_validate_state_runner` action plugin and yields each test result as a dictionary. Args: ---- - input_path (str): Path to the temporary JSON file containing test results for a host. + input_path (Path): Path to the JSON file containing test results for a host. Yields: ------ Generator[dict, None, None]: Test result as a dictionary. """ - try: - with Path(input_path).open(encoding="UTF-8") as file: - yield from load(file) - except (JSONDecodeError, UnicodeDecodeError, OSError) as error: - error_message = f"{error.__class__.__name__}: {error}" - raise AristaAvdError(error_message) from error + with input_path.open(encoding="UTF-8") as file: + yield from load(file) class ActionModule(ActionBase): + # @cprofile() def run(self, tmp=None, task_vars=None): if task_vars is None: task_vars = {} @@ -49,25 +45,22 @@ def run(self, tmp=None, task_vars=None): result = super().run(tmp, task_vars) del tmp # tmp no longer has any effect - # Profiling - cprofile_file = self._task.args.get("cprofile_file") - if cprofile_file: - profiler = cProfile.Profile() - profiler.enable() - # Get task arguments and validate them - only_failed_tests = get_and_validate(data=self._task.args, key="only_failed_tests", expected_type=bool, default_value=False) - validation_report_csv = get_and_validate(data=self._task.args, key="validation_report_csv", expected_type=bool, default_value=True) - validation_report_md = get_and_validate(data=self._task.args, key="validation_report_md", expected_type=bool, default_value=True) - csv_report_path = verify_and_return_path(path_input=self._task.args.get("csv_report_path")) if validation_report_csv else None - md_report_path = verify_and_return_path(path_input=self._task.args.get("md_report_path")) if validation_report_md else None + try: + only_failed_tests = get_validated_value(data=self._task.args, key="only_failed_tests", expected_type=bool, default_value=False) + validation_report_csv = get_validated_value(data=self._task.args, key="validation_report_csv", expected_type=bool, default_value=True) + validation_report_md = get_validated_value(data=self._task.args, key="validation_report_md", expected_type=bool, default_value=True) + csv_report_path = get_validated_path(path_input=self._task.args.get("csv_report_path"), parent=True) if validation_report_csv else None + md_report_path = get_validated_path(path_input=self._task.args.get("md_report_path"), parent=True) if validation_report_md else None + test_results_dir = get_validated_path(path_input=self._task.args.get("test_results_dir"), parent=False) + except (TypeError, ValueError, FileNotFoundError) as error: + msg = f"Failed to validate task arguments: {error}" + raise AnsibleActionFail(msg) from error # This is not all the hostvars, but just the Ansible Hostvars Manager object where we can retrieve hostvars for each host on-demand hostvars = task_vars["hostvars"] # For now we support the existing behavior of eos_validate_state, all hosts from the play ansible_play_hosts_all = task_vars.get("ansible_play_hosts_all", []) - # List to track each host results temporary file - temp_files = [] try: # Initialize an empty ResultsManager that will be used to store results and statistics @@ -76,46 +69,33 @@ def run(self, tmp=None, task_vars=None): host_hostvars = hostvars[host] # Hosts marked as not deployed do not have any results if not get(host_hostvars, "is_deployed", default=True): - display.warning(f"No test results for host {host} since 'is_deployed' is False.") + display.warning(f"No test results for host {host} since 'is_deployed' is False") continue try: - # Getting the host results temp file saved by eos_validate_state_runner action plugin - temp_file = get(host_hostvars, "anta_results.results_temp_file") - verify_and_return_path(path_input=temp_file) + # Getting the host results JSON file saved by eos_validate_state_runner action plugin + result_path = get_validated_path(path_input=test_results_dir / f"{host}-results.json", parent=False) except (TypeError, FileNotFoundError) as error: - display.warning(str(error)) + display.warning(f"Failed to get the test results file of host {host}: {error}") continue - - # Track the temp file - temp_files.append(temp_file) - try: # Process the host test results - for test_result in _test_results_gen(temp_file): + for test_result in _test_results_gen(input_path=result_path): test_results.update_results(test_result) - except AristaAvdError as error: - display.warning(f"Exception raised while processing the test results of host {host}: {error}.") + except (JSONDecodeError, OSError) as error: + display.warning(f"Failed to process the test results of host {host}: {error}") # Generate the reports if validation_report_csv: - with Path(csv_report_path).open("w", encoding="UTF-8") as report_file: + with csv_report_path.open("w", encoding="UTF-8") as report_file: csv_report = CSVReport(report_file, test_results) csv_report.generate_report() if validation_report_md: - with Path(md_report_path).open("w", encoding="UTF-8") as report_file: + with md_report_path.open("w", encoding="UTF-8") as report_file: md_report = MDReport(report_file, test_results) md_report.generate_report() except Exception as error: - raise AnsibleActionFail(f"Error during plugin execution: {error}") from error - finally: - # Cleanup temporary files - for file_path in temp_files: - Path(file_path).unlink(missing_ok=True) - - if cprofile_file: - profiler.disable() - stats = pstats.Stats(profiler).sort_stats("cumtime") - stats.dump_stats(cprofile_file) + msg = f"Error during plugin execution: {error}" + raise AnsibleActionFail(msg) from error return result diff --git a/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py b/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py index 0e21510d585..452b4d019e7 100644 --- a/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py +++ b/ansible_collections/arista/avd/plugins/action/eos_validate_state_runner.py @@ -5,12 +5,9 @@ __metaclass__ = type -import cProfile import logging -import pstats -from json import dumps -from shutil import copy2 -from tempfile import NamedTemporaryFile +from json import dump +from typing import TYPE_CHECKING from ansible.errors import AnsibleActionFail from ansible.parsing.yaml.dumper import AnsibleDumper @@ -20,10 +17,13 @@ from ansible_collections.arista.avd.plugins.plugin_utils.utils import ( PythonToAnsibleContextFilter, PythonToAnsibleHandler, - get_and_validate, - verify_and_return_path, + get_validated_path, + get_validated_value, ) +if TYPE_CHECKING: + from pathlib import Path + LOGGER = logging.getLogger("ansible_collections.arista.avd") # ANTA currently add some RichHandler to the root logger so need to disable propagation LOGGER.propagate = False @@ -36,6 +36,7 @@ def ignore_aliases(self, data): class ActionModule(ActionBase): + # @cprofile() def run(self, tmp=None, task_vars=None): self._supports_check_mode = True @@ -45,12 +46,6 @@ def run(self, tmp=None, task_vars=None): result = super().run(tmp, task_vars) del tmp # tmp no longer has any effect - # Setup profiling - cprofile_file = self._task.args.get("cprofile_file") - if cprofile_file: - profiler = cProfile.Profile() - profiler.enable() - # Setup variables hostname = task_vars["inventory_hostname"] ansible_connection = self._connection @@ -73,13 +68,17 @@ def run(self, tmp=None, task_vars=None): setup_module_logging(hostname, result) # Get task arguments and validate them - # TODO: Try Except - logging_level = get_and_validate(data=self._task.args, key="logging_level", expected_type=str, default_value="WARNING", allowed_values=LOGGING_LEVELS) - skipped_tests = get_and_validate(data=self._task.args, key="skipped_tests", expected_type=list, default_value=[]) - save_catalog = get_and_validate(data=self._task.args, key="save_catalog", expected_type=bool, default_value=False) - save_results = get_and_validate(data=self._task.args, key="save_results", expected_type=bool, default_value=False) - catalog_path = verify_and_return_path(path_input=self._task.args.get("device_catalog_path")) if save_catalog else None - result_path = verify_and_return_path(path_input=self._task.args.get("device_result_path")) if save_results else None + try: + logging_level = get_validated_value( + data=self._task.args, key="logging_level", expected_type=str, default_value="WARNING", allowed_values=LOGGING_LEVELS + ) + skipped_tests = get_validated_value(data=self._task.args, key="skipped_tests", expected_type=list, default_value=[]) + save_catalog = get_validated_value(data=self._task.args, key="save_catalog", expected_type=bool, default_value=False) + catalog_path = get_validated_path(path_input=self._task.args.get("device_catalog_path"), parent=True) if save_catalog else None + test_results_dir = get_validated_path(path_input=self._task.args.get("test_results_dir"), parent=False) + except (TypeError, ValueError, FileNotFoundError) as error: + msg = f"Failed to validate task arguments: {error}" + raise AnsibleActionFail(msg) from error try: anta_device = AnsibleEOSDevice(name=hostname, connection=ansible_connection, check_mode=ansible_check_mode) @@ -94,46 +93,31 @@ def run(self, tmp=None, task_vars=None): dry_run=ansible_check_mode, yaml_dumper=AnsibleNoAliasDumper, ) - # Call the function to handle temp file creation - temp_file_path = _create_temp_file(hostname, anta_results) - # Copy the temp file to the result_path if provided - if result_path: - copy2(temp_file_path, result_path) + # Write the results to a JSON file + write_results(hostname=hostname, anta_results=anta_results, test_results_dir=test_results_dir) except Exception as error: - raise AnsibleActionFail(message=str(error)) from error - - # Add the temp file path to the Ansible result - result["results_temp_file"] = temp_file_path - - if cprofile_file: - profiler.disable() - stats = pstats.Stats(profiler).sort_stats("cumtime") - stats.dump_stats(cprofile_file) + msg = f"Error during plugin execution: {error}" + raise AnsibleActionFail(msg) from error return result -def _create_temp_file(hostname: str, anta_results: list[dict]) -> str: - """Create a temporary JSON file to save all test results from ANTA. +def write_results(hostname: str, anta_results: list[dict], test_results_dir: Path) -> None: + """Save all test results from ANTA to a JSON file. - The temp file is saved in `/tmp` with a prefix of `_` and `.json` extension. + The JSON file name is hardcoded here to make sure we can retrieve it in the report plugin. Args: ---- hostname (str): Current inventory device that is running the plugin. anta_results (list[dict]): The list of ANTA results that will be saved in the JSON file. - - Returns: - ------- - str: The absolute path of the temp file. + test_results_dir (Path): The test results directory where the results will be saved. """ - # Create the temp JSON file to save the ANTA results - with NamedTemporaryFile(mode="w", encoding="UTF-8", suffix=".json", prefix=f"{hostname}_", delete=False) as temp_file: - # Serialize to JSON and write to the temp file - temp_file.write(dumps(anta_results, indent=2, sort_keys=False)) - return temp_file.name + result_path = test_results_dir / f"{hostname}-results.json" + with result_path.open(mode="w", encoding="UTF-8") as result_file: + dump(anta_results, result_file, indent=2, sort_keys=False) def setup_module_logging(hostname: str, result: dict) -> None: diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py index ef3fe189063..917401273d9 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/csv_report.py @@ -40,13 +40,13 @@ def generate_rows(self) -> Generator[dict, None, None]: for result in results: yield { **result, - "failure_reasons": ";".join(result["failure_reasons"]), + "messages": ";".join(result["messages"]), "test_categories": ";".join(result["test_categories"]), } def generate_report(self) -> None: """Generate and writes the CSV report using the collected test results.""" - fieldnames = ["test_id", "node", "test_categories", "test_description", "test", "result", "failure_reasons"] + fieldnames = ["test_id", "node", "test_categories", "test_description", "test", "result", "messages"] writer = csv.DictWriter(self.csvfile, fieldnames=fieldnames) writer.writeheader() diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py index b1473122432..63c71b10f69 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/md_report.py @@ -221,18 +221,18 @@ class FailedTestResultsSummary(MDReportBase): """Generate the `## Failed Test Results Summary` section of the markdown report.""" TABLE_HEADING: ClassVar[list[str]] = [ - "| Test ID | Node | Test Categories | Test Description | Test | Test Result | Failure Reasons |", - "| ------- | ---- | --------------- | ---------------- | ---- | ----------- | --------------- |", + "| Test ID | Node | Test Categories | Test Description | Test | Test Result | Messages |", + "| ------- | ---- | --------------- | ---------------- | ---- | ----------- | -------- |", ] def generate_rows(self) -> Generator[str, None, None]: """Generate the rows of the failed test results table.""" for result in self.results.failed_tests: - failure_reasons = ", ".join(result["failure_reasons"]) + messages = ", ".join(result["messages"]) categories = ", ".join(result["test_categories"]) yield ( f"| {result['test_id'] or '-'} | {result['node'] or '-'} | {categories or '-'} | {result['test_description'] or '-'} |" - f" {result['test'] or '-'} | {result['result'] or '-'} | {failure_reasons or '-'} |\n" + f" {result['test'] or '-'} | {result['result'] or '-'} | {messages or '-'} |\n" ) def generate_section(self) -> None: @@ -248,18 +248,18 @@ class AllTestResults(MDReportBase): """ TABLE_HEADING: ClassVar[list[str]] = [ - "| Test ID | Node | Test Categories | Test Description | Test | Test Result | Failure Reasons |", - "| ------- | ---- | --------------- | ---------------- | ---- | ----------- | --------------- |", + "| Test ID | Node | Test Categories | Test Description | Test | Test Result | Messages |", + "| ------- | ---- | --------------- | ---------------- | ---- | ----------- | -------- |", ] def generate_rows(self) -> Generator[str, None, None]: """Generate the rows of the all test results table.""" for result in self.results.all_tests: - failure_reasons = ", ".join(result["failure_reasons"]) + messages = ", ".join(result["messages"]) categories = ", ".join(result["test_categories"]) yield ( f"| {result['test_id'] or '-'} | {result['node'] or '-'} | {categories or '-'} | {result['test_description'] or '-'} |" - f" {result['test'] or '-'} | {result['result'] or '-'} | {failure_reasons or '-'} |\n" + f" {result['test'] or '-'} | {result['result'] or '-'} | {messages or '-'} |\n" ) def generate_section(self) -> None: diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py index 2937fe3c5ca..8d7db725a02 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_validate_state_utils/results_manager.py @@ -8,6 +8,9 @@ from ansible_collections.arista.avd.plugins.plugin_utils.errors import AristaAvdError from ansible_collections.arista.avd.roles.eos_validate_state.python_modules.constants import ACRONYM_CATEGORIES +RESULTS_MAPPING: dict[str, str] = {"success": "PASS", "failure": "FAIL", "error": "FAIL", "skipped": "SKIPPED", "unset": "NOT RUN"} +"""Mapping the results from ANTA to what we want in the AVD validate state report.""" + class ResultsManager: """Manages and stores test results from eos_validate_state running ANTA. @@ -20,6 +23,10 @@ class ResultsManager: def __init__(self, *, only_failed_tests: bool = True) -> None: """Initialize the ResultsManager with default values and stats counters set to 0. + The class uses defaultdict to automatically initialize statistics for devices under test (DUT) and test categories. + This ensures that accessing a stat for a new DUT or category will automatically create an entry with initial + zeroed counters and empty sets for failed and skipped categories. + Args: ---- only_failed_tests (bool): Flag to determine if only failed tests are saved. @@ -69,9 +76,8 @@ def _parse_result(self, result: dict) -> dict: ] # Mapping the ANTA results - result_mapping = {"success": "PASS", "failure": "FAIL", "error": "FAIL", "skipped": "SKIPPED", "unset": "NOT RUN"} anta_result = result.get("result", "") - new_result = result_mapping.get(anta_result, "") + new_result = RESULTS_MAPPING.get(anta_result, "") # Create the parsed result dictionary return { @@ -82,7 +88,7 @@ def _parse_result(self, result: dict) -> dict: # Since AVD tests can have the same description and category, ANTA's custom_field is used to differentiate tests "test": result.get("custom_field", "") if result.get("custom_field") != "None" else result.get("test", ""), "result": new_result, - "failure_reasons": result.get("messages", []), + "messages": result.get("messages", []), } def _increment_stats(self, test_result: str, dut: str, categories: list[str]) -> None: diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/utils/__init__.py b/ansible_collections/arista/avd/plugins/plugin_utils/utils/__init__.py index 1431285b470..8fc7e81bf13 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/utils/__init__.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/utils/__init__.py @@ -4,13 +4,15 @@ from .append_if_not_duplicate import append_if_not_duplicate from .compare_dicts import compare_dicts from .compile_searchpath import compile_searchpath +from .cprofile_decorator import cprofile from .default import default from .get import get from .get_all import get_all -from .get_and_validate import get_and_validate from .get_ip_from_pool import get_ip_from_pool from .get_item import get_item from .get_templar import get_templar +from .get_validated_path import get_validated_path +from .get_validated_value import get_validated_value from .groupby import groupby from .load_python_class import load_python_class from .python_to_ansible_logging_handler import PythonToAnsibleContextFilter, PythonToAnsibleHandler @@ -18,7 +20,6 @@ from .template import template from .template_var import template_var from .unique import unique -from .verify_and_return_path import verify_and_return_path from .yaml_dumper import NoAliasDumper __all__ = [ @@ -40,6 +41,7 @@ "PythonToAnsibleContextFilter", "PythonToAnsibleHandler", "NoAliasDumper", - "get_and_validate", - "verify_and_return_path", + "get_validated_path", + "get_validated_value", + "cprofile", ] diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/utils/cprofile_decorator.py b/ansible_collections/arista/avd/plugins/plugin_utils/utils/cprofile_decorator.py new file mode 100644 index 00000000000..a3caea51a1d --- /dev/null +++ b/ansible_collections/arista/avd/plugins/plugin_utils/utils/cprofile_decorator.py @@ -0,0 +1,65 @@ +# Copyright (c) 2023 Arista Networks, Inc. +# Use of this source code is governed by the Apache License 2.0 +# that can be found in the LICENSE file. +from __future__ import annotations + +import cProfile +import pstats +from functools import wraps +from typing import Any, Callable + + +def cprofile(sort_by: str = "cumtime") -> Callable: + """Profile an Ansible action plugin with cProfile. + + Profiling is conditionally enabled based on the presence of `cprofile_file` in the task arguments. + + Args: + ---- + sort_by (str): The criterion to sort the profiling results. Default is 'cumtime'. + + Returns: + ------- + Callable: The decorated function with conditional profiling. + """ + + def decorator(func: Callable) -> Callable: + @wraps(func) + def wrapper(*args: Any, **kwargs: Any) -> Any: + """Enable cProfile or not. + + If `cprofile_file` is present in the task arguments, cProfile will be enabled + and will dump the stats to the provided cProfile file. + + Args: + ---- + *args: Arbitrary positional arguments. + **kwargs: Arbitrary keyword arguments. + + Returns: + ------- + The result of the function call. + """ + # The instance of the ActionModule class + self = args[0] + + cprofile_file = self._task.args.get("cprofile_file") + profiling_enabled = bool(cprofile_file) + + if profiling_enabled: + profiler = cProfile.Profile() + profiler.enable() + + try: + result = func(*args, **kwargs) + finally: + if profiling_enabled: + profiler.disable() + stats = pstats.Stats(profiler).sort_stats(sort_by) + stats.dump_stats(cprofile_file) + + return result + + return wrapper + + return decorator diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/utils/verify_and_return_path.py b/ansible_collections/arista/avd/plugins/plugin_utils/utils/get_validated_path.py similarity index 51% rename from ansible_collections/arista/avd/plugins/plugin_utils/utils/verify_and_return_path.py rename to ansible_collections/arista/avd/plugins/plugin_utils/utils/get_validated_path.py index 731653ff24f..9885f97e532 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/utils/verify_and_return_path.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/utils/get_validated_path.py @@ -6,27 +6,29 @@ from pathlib import Path -def verify_and_return_path(path_input: str | Path) -> Path: - """Verify if the given path exists in the file system and returns the Path object. +def get_validated_path(path_input: str | Path, *, parent: bool = False) -> Path: + """Verify if the given path or its parent directory exists and return the Path object. Args: ---- path_input (str or Path): A string or Path object representing a file system path. + parent (bool, optional): Flag to indicate whether to check the path itself (False) + or its parent directory (True). Defaults to False. Returns: ------- - Path: The verified file system path as a Path object. + Path: The given file system path as a Path object. Raises: ------ TypeError: If the input is not a string or Path object. - FileNotFoundError: If the path does not exist. + FileNotFoundError: If the specified path or its parent does not exist. """ if not isinstance(path_input, (str, Path)): msg = f"Input path {path_input} must be a string or a Path object." raise TypeError(msg) path = Path(path_input) - if path.exists(): + if (parent and path.parent.exists()) or (not parent and path.exists()): return path - msg = f"The path {path} does not exist" + msg = f"The {'parent directory of ' if parent else ''}path {path} does not exist." raise FileNotFoundError(msg) diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/utils/get_and_validate.py b/ansible_collections/arista/avd/plugins/plugin_utils/utils/get_validated_value.py similarity index 90% rename from ansible_collections/arista/avd/plugins/plugin_utils/utils/get_and_validate.py rename to ansible_collections/arista/avd/plugins/plugin_utils/utils/get_validated_value.py index 47c1f239cf5..7412bc21822 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/utils/get_and_validate.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/utils/get_validated_value.py @@ -6,7 +6,7 @@ from typing import Any -def get_and_validate(data: dict, key: str, expected_type: type, default_value: Any = None, allowed_values: list[str] | None = None) -> Any: +def get_validated_value(data: dict, key: str, expected_type: type, default_value: Any = None, allowed_values: list[str] | None = None) -> Any: """Retrieve and validate a value from a given dictionary based on its type and, optionally, a list of allowed values. Args: diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/defaults/main.yml b/ansible_collections/arista/avd/roles/eos_validate_state/defaults/main.yml index 3e9e4c46ea6..3989786ad53 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/defaults/main.yml +++ b/ansible_collections/arista/avd/roles/eos_validate_state/defaults/main.yml @@ -1,32 +1,32 @@ eos_validate_state_validation_mode_loose: true # Format for path to r/w reports. Sync with default values configured in arista.avd.build_output_folders -root_dir: '{{ inventory_dir }}' +root_dir: "{{ inventory_dir }}" # AVD configurations output # Main output directory -output_dir_name: 'intended' -output_dir: '{{ root_dir }}/{{ output_dir_name }}' +output_dir_name: "intended" +output_dir: "{{ root_dir }}/{{ output_dir_name }}" # Output for structured YAML files: -structured_dir_name: 'structured_configs' -structured_dir: '{{ output_dir }}/{{ structured_dir_name }}' +structured_dir_name: "structured_configs" +structured_dir: "{{ output_dir }}/{{ structured_dir_name }}" # Output for test catalog YAML files: -test_catalogs_dir_name: 'test_catalogs' -test_catalogs_dir: '{{ output_dir }}/{{ test_catalogs_dir_name }}' +test_catalogs_dir_name: "test_catalogs" +test_catalogs_dir: "{{ output_dir }}/{{ test_catalogs_dir_name }}" # Output directory for eos_validate_state reports -eos_validate_state_name: 'reports' -eos_validate_state_dir: '{{ root_dir }}/{{ eos_validate_state_name }}' +eos_validate_state_name: "reports" +eos_validate_state_dir: "{{ root_dir }}/{{ eos_validate_state_name }}" # Output for test results JSON files: -test_results_dir_name: 'test_results' -test_results_dir: '{{ eos_validate_state_dir }}/{{ test_results_dir_name }}' +test_results_dir_name: "test_results" +test_results_dir: "{{ eos_validate_state_dir }}/{{ test_results_dir_name }}" # Reports name -eos_validate_state_md_report_path: '{{ eos_validate_state_dir }}/{{ fabric_name }}-state.md' -eos_validate_state_csv_report_path: '{{ eos_validate_state_dir }}/{{ fabric_name }}-state.csv' +eos_validate_state_md_report_path: "{{ eos_validate_state_dir }}/{{ fabric_name }}-state.md" +eos_validate_state_csv_report_path: "{{ eos_validate_state_dir }}/{{ fabric_name }}-state.csv" # Markdown flavor to support non-text rendering # Only support default and github diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml index 301934ec12f..3de08d016e6 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml +++ b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/anta_tests.yml @@ -11,10 +11,9 @@ logging_level: "{{ logging_level | arista.avd.default('WARNING') }}" skipped_tests: "{{ skipped_tests | arista.avd.default([]) }}" save_catalog: "{{ save_catalog | arista.avd.default(false) }}" - save_result: "{{ save_result | arista.avd.default(false) }}" device_catalog_path: "{{ test_catalogs_dir }}/{{ inventory_hostname }}-catalog.yml" - device_result_path: "{{ test_results_dir }}/{{ inventory_hostname }}-result.json" - # cprofile_file: "eos_validate_state_runner.prof" + test_results_dir: "{{ test_results_dir }}" + # cprofile_file: "anta-{{inventory_hostname}}.prof" register: anta_results check_mode: false when: use_anta | bool diff --git a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml index afa0513b0c4..bd632eda0f6 100644 --- a/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml +++ b/ansible_collections/arista/avd/roles/eos_validate_state/tasks/main.yml @@ -60,6 +60,7 @@ validation_report_csv: "{{ validation_report_csv }}" validation_report_md: "{{ validation_report_md }}" only_failed_tests: "{{ only_failed_tests }}" + test_results_dir: "{{ test_results_dir }}" # cprofile_file: "eos_validate_state_reports.prof" delegate_to: localhost run_once: true From 68479d7a6549495d8a3a4e5ce970b358e51ea5bc Mon Sep 17 00:00:00 2001 From: Carl Baillargeon Date: Tue, 12 Dec 2023 13:41:09 -0500 Subject: [PATCH 18/26] Fix review comments --- .../eos_validate_state_reports.md | 12 ++++-- .../eos_validate_state_runner.md | 27 ++++++------ .../action/eos_validate_state_runner.py | 2 +- .../modules/eos_validate_state_reports.py | 13 +++--- .../modules/eos_validate_state_runner.py | 43 ++++++++++--------- .../eos_validate_state_utils/csv_report.py | 12 +----- .../roles/eos_validate_state/ANTA-Preview.md | 4 +- .../roles/eos_validate_state/tasks/main.yml | 5 ++- 8 files changed, 58 insertions(+), 60 deletions(-) diff --git a/ansible_collections/arista/avd/docs/plugins/Modules_and_action_plugins/eos_validate_state_reports.md b/ansible_collections/arista/avd/docs/plugins/Modules_and_action_plugins/eos_validate_state_reports.md index ab0ce78d038..2b6fd2dff6e 100644 --- a/ansible_collections/arista/avd/docs/plugins/Modules_and_action_plugins/eos_validate_state_reports.md +++ b/ansible_collections/arista/avd/docs/plugins/Modules_and_action_plugins/eos_validate_state_reports.md @@ -1,3 +1,7 @@ +--- +# This title is used for search results +title: arista.avd.eos_validate_state_reports +---