From e56ac4eab2228b4fc4fe874e4f88981605e48879 Mon Sep 17 00:00:00 2001 From: Welkin He Date: Fri, 31 Oct 2025 17:27:21 +1100 Subject: [PATCH 1/5] Introduced port tracking minimal uplink check. --- aci-preupgrade-validation-script.py | 26 ++++++++++++++++ .../infraPortTrackPol _neg.json | 30 ++++++++++++++++++ .../infraPortTrackPol _neg_1.json | 30 ++++++++++++++++++ .../infraPortTrackPol_pos.json | 30 ++++++++++++++++++ .../test_port_tracking_minimal_uplink.py | 31 +++++++++++++++++++ 5 files changed, 147 insertions(+) create mode 100644 tests/port_tracking_minimal_uplink_check/infraPortTrackPol _neg.json create mode 100644 tests/port_tracking_minimal_uplink_check/infraPortTrackPol _neg_1.json create mode 100644 tests/port_tracking_minimal_uplink_check/infraPortTrackPol_pos.json create mode 100644 tests/port_tracking_minimal_uplink_check/test_port_tracking_minimal_uplink.py diff --git a/aci-preupgrade-validation-script.py b/aci-preupgrade-validation-script.py index b57821c..8e20a2c 100644 --- a/aci-preupgrade-validation-script.py +++ b/aci-preupgrade-validation-script.py @@ -5558,6 +5558,31 @@ def configpush_shard_check(tversion, **kwargs): return Result(result=result, headers=headers, data=data, recommended_action=recommended_action, doc_url=doc_url) +@check_wrapper(check_title='Port Tracking Minimal Uplink Zero') +def port_tracking_minimal_uplink_check(tversion, **kwargs): + result = NA + headers = ["Port Tracking Minimal Uplink"] + data = [] + recommended_action = 'Increase Port Tracking Uplink to 1 before upgrade' + doc_url = 'https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#port-tracking-minimal-uplink-zero' + + if not tversion: + return Result(result=MANUAL, msg=TVER_MISSING) + + if tversion.same_as("6.0(9d)"): + result = PASS + port_tracking_api = 'uni/infra/trackEqptFabP-default.json' + port_tracking_mo = icurl('dn', port_tracking_api) + if port_tracking_mo: + admin_st = port_tracking_mo[0]['infraPortTrackPol']['attributes']['adminSt'] + minimal_uplink = port_tracking_mo[0]['infraPortTrackPol']['attributes']['minlinks'] + if admin_st == "on" and minimal_uplink == "0": + data.append([minimal_uplink]) + if data: + result = FAIL_O + + return Result(result=result, headers=headers, data=data, recommended_action=recommended_action, doc_url=doc_url) + # ---- Script Execution ---- @@ -5719,6 +5744,7 @@ def get_checks(api_only, debug_function): standby_sup_sync_check, isis_database_byte_check, configpush_shard_check, + port_tracking_minimal_uplink_check, ] conn_checks = [ diff --git a/tests/port_tracking_minimal_uplink_check/infraPortTrackPol _neg.json b/tests/port_tracking_minimal_uplink_check/infraPortTrackPol _neg.json new file mode 100644 index 0000000..ce366e3 --- /dev/null +++ b/tests/port_tracking_minimal_uplink_check/infraPortTrackPol _neg.json @@ -0,0 +1,30 @@ +{ + "totalCount": "1", + "imdata": [ + { + "infraPortTrackPol": { + "attributes": { + "adminSt": "off", + "annotation": "", + "childAction": "", + "delay": "120", + "descr": "", + "dn": "uni/infra/trackEqptFabP-default", + "extMngdBy": "", + "includeApicPorts": "no", + "lcOwn": "local", + "minlinks": "0", + "modTs": "2025-10-31T17:13:46.220+11:00", + "name": "default", + "nameAlias": "", + "ownerKey": "", + "ownerTag": "", + "rn": "trackEqptFabP-default", + "status": "", + "uid": "0", + "userdom": "all" + } + } + } + ] +} \ No newline at end of file diff --git a/tests/port_tracking_minimal_uplink_check/infraPortTrackPol _neg_1.json b/tests/port_tracking_minimal_uplink_check/infraPortTrackPol _neg_1.json new file mode 100644 index 0000000..683f7a5 --- /dev/null +++ b/tests/port_tracking_minimal_uplink_check/infraPortTrackPol _neg_1.json @@ -0,0 +1,30 @@ +{ + "totalCount": "1", + "imdata": [ + { + "infraPortTrackPol": { + "attributes": { + "adminSt": "on", + "annotation": "", + "childAction": "", + "delay": "120", + "descr": "", + "dn": "uni/infra/trackEqptFabP-default", + "extMngdBy": "", + "includeApicPorts": "no", + "lcOwn": "local", + "minlinks": "1", + "modTs": "2025-10-31T17:13:46.220+11:00", + "name": "default", + "nameAlias": "", + "ownerKey": "", + "ownerTag": "", + "rn": "trackEqptFabP-default", + "status": "", + "uid": "0", + "userdom": "all" + } + } + } + ] +} \ No newline at end of file diff --git a/tests/port_tracking_minimal_uplink_check/infraPortTrackPol_pos.json b/tests/port_tracking_minimal_uplink_check/infraPortTrackPol_pos.json new file mode 100644 index 0000000..ed137ae --- /dev/null +++ b/tests/port_tracking_minimal_uplink_check/infraPortTrackPol_pos.json @@ -0,0 +1,30 @@ +{ + "totalCount": "1", + "imdata": [ + { + "infraPortTrackPol": { + "attributes": { + "adminSt": "on", + "annotation": "", + "childAction": "", + "delay": "120", + "descr": "", + "dn": "uni/infra/trackEqptFabP-default", + "extMngdBy": "", + "includeApicPorts": "no", + "lcOwn": "local", + "minlinks": "0", + "modTs": "2025-10-31T17:13:46.220+11:00", + "name": "default", + "nameAlias": "", + "ownerKey": "", + "ownerTag": "", + "rn": "trackEqptFabP-default", + "status": "", + "uid": "0", + "userdom": "all" + } + } + } + ] +} \ No newline at end of file diff --git a/tests/port_tracking_minimal_uplink_check/test_port_tracking_minimal_uplink.py b/tests/port_tracking_minimal_uplink_check/test_port_tracking_minimal_uplink.py new file mode 100644 index 0000000..bdd6d72 --- /dev/null +++ b/tests/port_tracking_minimal_uplink_check/test_port_tracking_minimal_uplink.py @@ -0,0 +1,31 @@ +import os +import pytest +import logging +import importlib +from helpers.utils import read_data +script = importlib.import_module("aci-preupgrade-validation-script") +log = logging.getLogger(__name__) +dir = os.path.dirname(os.path.abspath(__file__)) +infra_port_track_pol_api = 'uni/infra/trackEqptFabP-default.json' +@pytest.mark.parametrize( + "icurl_outputs, expected_result", + [ + ( + {infra_port_track_pol_api: read_data(dir, "infraPortTrackPol_neg.json")}, + script.PASS, + ), + ( + {infra_port_track_pol_api: read_data(dir, "infraPortTrackPol_neg1.json")}, + script.PASS, + ), + ( + {infra_port_track_pol_api: read_data(dir, "infraPortTrackPol_pos.json")}, + script.FAIL_O, + ) + ], +) + +def test_logic(mock_icurl, tversion, expected_result): + tversion = script.AciVersion(tversion) if tversion else None + result = script.port_tracking_minimal_uplink_check(1, 1, tversion) + assert result == expected_result \ No newline at end of file From 59240cd59e862078200b4386af53a831df25f1c9 Mon Sep 17 00:00:00 2001 From: tianhe Date: Fri, 31 Oct 2025 06:58:48 +0000 Subject: [PATCH 2/5] Updated test case and documentation. --- aci-preupgrade-validation-script.py | 6 ++--- docs/docs/validations.md | 9 +++++++- ...l _neg.json => infraPortTrackPol_neg.json} | 0 ...neg_1.json => infraPortTrackPol_neg1.json} | 0 .../test_port_tracking_minimal_uplink.py | 22 +++++++++++++++++-- 5 files changed, 31 insertions(+), 6 deletions(-) rename tests/port_tracking_minimal_uplink_check/{infraPortTrackPol _neg.json => infraPortTrackPol_neg.json} (100%) rename tests/port_tracking_minimal_uplink_check/{infraPortTrackPol _neg_1.json => infraPortTrackPol_neg1.json} (100%) diff --git a/aci-preupgrade-validation-script.py b/aci-preupgrade-validation-script.py index 8e20a2c..5b16b90 100644 --- a/aci-preupgrade-validation-script.py +++ b/aci-preupgrade-validation-script.py @@ -5561,10 +5561,10 @@ def configpush_shard_check(tversion, **kwargs): @check_wrapper(check_title='Port Tracking Minimal Uplink Zero') def port_tracking_minimal_uplink_check(tversion, **kwargs): result = NA - headers = ["Port Tracking Minimal Uplink"] + headers = ["Port Tracking Minimal Link"] data = [] - recommended_action = 'Increase Port Tracking Uplink to 1 before upgrade' - doc_url = 'https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#port-tracking-minimal-uplink-zero' + recommended_action = 'Increase Port Tracking Minimal Link to 1 before upgrade' + doc_url = 'https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#port-tracking-minimal-link-zero' if not tversion: return Result(result=MANUAL, msg=TVER_MISSING) diff --git a/docs/docs/validations.md b/docs/docs/validations.md index e395564..fa0b5ba 100644 --- a/docs/docs/validations.md +++ b/docs/docs/validations.md @@ -190,7 +190,8 @@ Items | Defect | This Script [Observer Database Size][d25] | CSCvw45531 | :white_check_mark: | :no_entry_sign: [Stale pconsRA Object][d26] | CSCwp22212 | :warning:{title="Deprecated"} | :no_entry_sign: [ISIS DTEPs Byte Size][d27] | CSCwp15375 | :white_check_mark: | :no_entry_sign: -[Policydist configpushShardCont Crash][d28] | CSCwp95515 | :white_check_mark: | +[Policydist configpushShardCont Crash][d28] | CSCwp95515 | :white_check_mark: | :no_entry_sign: +[Port Tracking Minimal Link][d29] | CSCwp91797 | :white_check_mark: | [d1]: #ep-announce-compatibility [d2]: #eventmgr-db-size-defect-susceptibility @@ -220,6 +221,7 @@ Items | Defect | This Script [d26]: #stale-pconsra-object [d27]: #isis-dteps-byte-size [d28]: #policydist-configpushshardcont-crash +[d29]: #port-tracking-minimal-link-zero ## General Check Details @@ -2603,6 +2605,11 @@ Due to [CSCwp95515][59], upgrading to an affected version while having any `conf If any instances of `configpushShardCont` are flagged by this script, Cisco TAC must be contacted to identify and resolve the underlying issue before performing the upgrade. +### Port Tracking Minimal Link + +Due to CSCwp91797 which was introduced in 6.0(9d), if port-tracking feature is on and "number of active fabric ports that triggers port tracking" is zero, vPC member may be showing down post upgrade, the interface status become "initializing" by CLI "show interface e1/xx" + +This defect is only applicable to 6.0(9d), change port-tracking "number of active fabric ports that triggers port tracking" to 1 before upgrade can avoid this issue. [0]: https://github.com/datacenter/ACI-Pre-Upgrade-Validation-Script [1]: https://www.cisco.com/c/dam/en/us/td/docs/Website/datacenter/apicmatrix/index.html diff --git a/tests/port_tracking_minimal_uplink_check/infraPortTrackPol _neg.json b/tests/port_tracking_minimal_uplink_check/infraPortTrackPol_neg.json similarity index 100% rename from tests/port_tracking_minimal_uplink_check/infraPortTrackPol _neg.json rename to tests/port_tracking_minimal_uplink_check/infraPortTrackPol_neg.json diff --git a/tests/port_tracking_minimal_uplink_check/infraPortTrackPol _neg_1.json b/tests/port_tracking_minimal_uplink_check/infraPortTrackPol_neg1.json similarity index 100% rename from tests/port_tracking_minimal_uplink_check/infraPortTrackPol _neg_1.json rename to tests/port_tracking_minimal_uplink_check/infraPortTrackPol_neg1.json diff --git a/tests/port_tracking_minimal_uplink_check/test_port_tracking_minimal_uplink.py b/tests/port_tracking_minimal_uplink_check/test_port_tracking_minimal_uplink.py index bdd6d72..7bb9b7f 100644 --- a/tests/port_tracking_minimal_uplink_check/test_port_tracking_minimal_uplink.py +++ b/tests/port_tracking_minimal_uplink_check/test_port_tracking_minimal_uplink.py @@ -8,18 +8,36 @@ dir = os.path.dirname(os.path.abspath(__file__)) infra_port_track_pol_api = 'uni/infra/trackEqptFabP-default.json' @pytest.mark.parametrize( - "icurl_outputs, expected_result", - [ + "icurl_outputs, tversion, expected_result", + [ + # tversion not given + ( + {infra_port_track_pol_api: []}, + None, + script.MANUAL, + ), + # tversion is not hit + ( + {infra_port_track_pol_api: []}, + "6.0(9e)", + script.NA, + ), + #adminSt is off. ( {infra_port_track_pol_api: read_data(dir, "infraPortTrackPol_neg.json")}, + "6.0(9d)", script.PASS, ), + #adminSt is on, but minlinks is not zero. ( {infra_port_track_pol_api: read_data(dir, "infraPortTrackPol_neg1.json")}, + "6.0(9d)", script.PASS, ), + #adminSt is on, and minlinks is zero. ( {infra_port_track_pol_api: read_data(dir, "infraPortTrackPol_pos.json")}, + "6.0(9d)", script.FAIL_O, ) ], From dd726be08721e7e3529046d8985c41e38bf964aa Mon Sep 17 00:00:00 2001 From: tianhe Date: Fri, 31 Oct 2025 09:23:45 +0000 Subject: [PATCH 3/5] Update docs --- aci-preupgrade-validation-script.py | 14 ++++++++------ docs/docs/validations.md | 10 ++++++---- .../infraPortTrackPol_neg.json | 0 .../infraPortTrackPol_neg1.json | 0 .../infraPortTrackPol_pos.json | 0 ...test_port_tracking_active_fabric_port_check.py} | 2 +- 6 files changed, 15 insertions(+), 11 deletions(-) rename tests/{port_tracking_minimal_uplink_check => port_tracking_active_fabric_port_check}/infraPortTrackPol_neg.json (100%) rename tests/{port_tracking_minimal_uplink_check => port_tracking_active_fabric_port_check}/infraPortTrackPol_neg1.json (100%) rename tests/{port_tracking_minimal_uplink_check => port_tracking_active_fabric_port_check}/infraPortTrackPol_pos.json (100%) rename tests/{port_tracking_minimal_uplink_check/test_port_tracking_minimal_uplink.py => port_tracking_active_fabric_port_check/test_port_tracking_active_fabric_port_check.py} (92%) diff --git a/aci-preupgrade-validation-script.py b/aci-preupgrade-validation-script.py index 5b16b90..7764f72 100644 --- a/aci-preupgrade-validation-script.py +++ b/aci-preupgrade-validation-script.py @@ -5559,12 +5559,12 @@ def configpush_shard_check(tversion, **kwargs): return Result(result=result, headers=headers, data=data, recommended_action=recommended_action, doc_url=doc_url) @check_wrapper(check_title='Port Tracking Minimal Uplink Zero') -def port_tracking_minimal_uplink_check(tversion, **kwargs): +def port_tracking_active_fabric_port_check(tversion, **kwargs): result = NA - headers = ["Port Tracking Minimal Link"] + headers = ["Port Tracking Active Fabric Ports"] data = [] - recommended_action = 'Increase Port Tracking Minimal Link to 1 before upgrade' - doc_url = 'https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#port-tracking-minimal-link-zero' + recommended_action = 'Increase Port Tracking Active Fabric Ports to 1 before upgrade' + doc_url = 'https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#port-tracking-active-fabric-port-zero' if not tversion: return Result(result=MANUAL, msg=TVER_MISSING) @@ -5572,12 +5572,14 @@ def port_tracking_minimal_uplink_check(tversion, **kwargs): if tversion.same_as("6.0(9d)"): result = PASS port_tracking_api = 'uni/infra/trackEqptFabP-default.json' - port_tracking_mo = icurl('dn', port_tracking_api) + port_tracking_mo = icurl('mo', port_tracking_api) if port_tracking_mo: admin_st = port_tracking_mo[0]['infraPortTrackPol']['attributes']['adminSt'] minimal_uplink = port_tracking_mo[0]['infraPortTrackPol']['attributes']['minlinks'] if admin_st == "on" and minimal_uplink == "0": data.append([minimal_uplink]) + else: + return Result(result=NA, msg=VER_NOT_AFFECTED) if data: result = FAIL_O @@ -5744,7 +5746,7 @@ def get_checks(api_only, debug_function): standby_sup_sync_check, isis_database_byte_check, configpush_shard_check, - port_tracking_minimal_uplink_check, + port_tracking_active_fabric_port_check, ] conn_checks = [ diff --git a/docs/docs/validations.md b/docs/docs/validations.md index fa0b5ba..3a29580 100644 --- a/docs/docs/validations.md +++ b/docs/docs/validations.md @@ -191,7 +191,7 @@ Items | Defect | This Script [Stale pconsRA Object][d26] | CSCwp22212 | :warning:{title="Deprecated"} | :no_entry_sign: [ISIS DTEPs Byte Size][d27] | CSCwp15375 | :white_check_mark: | :no_entry_sign: [Policydist configpushShardCont Crash][d28] | CSCwp95515 | :white_check_mark: | :no_entry_sign: -[Port Tracking Minimal Link][d29] | CSCwp91797 | :white_check_mark: | +[Port Tracking Active Fabric Port Zero][d29] | CSCwp91797 | :white_check_mark: | [d1]: #ep-announce-compatibility [d2]: #eventmgr-db-size-defect-susceptibility @@ -221,7 +221,7 @@ Items | Defect | This Script [d26]: #stale-pconsra-object [d27]: #isis-dteps-byte-size [d28]: #policydist-configpushshardcont-crash -[d29]: #port-tracking-minimal-link-zero +[d29]: #port-tracking-active-fabric-port-zero ## General Check Details @@ -2605,12 +2605,13 @@ Due to [CSCwp95515][59], upgrading to an affected version while having any `conf If any instances of `configpushShardCont` are flagged by this script, Cisco TAC must be contacted to identify and resolve the underlying issue before performing the upgrade. -### Port Tracking Minimal Link +### Port Tracking Active Fabric Port Zero -Due to CSCwp91797 which was introduced in 6.0(9d), if port-tracking feature is on and "number of active fabric ports that triggers port tracking" is zero, vPC member may be showing down post upgrade, the interface status become "initializing" by CLI "show interface e1/xx" +Due to CSCwp91797[61], if port-tracking feature is on and "number of active fabric ports that triggers port tracking" is zero, vPC member may be showing down post upgrade, the interface status become "initializing" by CLI "show interface e1/xx" This defect is only applicable to 6.0(9d), change port-tracking "number of active fabric ports that triggers port tracking" to 1 before upgrade can avoid this issue. + [0]: https://github.com/datacenter/ACI-Pre-Upgrade-Validation-Script [1]: https://www.cisco.com/c/dam/en/us/td/docs/Website/datacenter/apicmatrix/index.html [2]: https://www.cisco.com/c/en/us/support/switches/nexus-9000-series-switches/products-release-notes-list.html @@ -2673,3 +2674,4 @@ This defect is only applicable to 6.0(9d), change port-tracking "number of activ [59]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwp95515 [60]: https://www.cisco.com/c/en/us/solutions/collateral/data-center-virtualization/application-centric-infrastructure/white-paper-c11-743951.html#Inter [61]: https://www.cisco.com/c/en/us/solutions/collateral/data-center-virtualization/application-centric-infrastructure/white-paper-c11-743951.html#EnablePolicyCompression +[62]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwp91797 diff --git a/tests/port_tracking_minimal_uplink_check/infraPortTrackPol_neg.json b/tests/port_tracking_active_fabric_port_check/infraPortTrackPol_neg.json similarity index 100% rename from tests/port_tracking_minimal_uplink_check/infraPortTrackPol_neg.json rename to tests/port_tracking_active_fabric_port_check/infraPortTrackPol_neg.json diff --git a/tests/port_tracking_minimal_uplink_check/infraPortTrackPol_neg1.json b/tests/port_tracking_active_fabric_port_check/infraPortTrackPol_neg1.json similarity index 100% rename from tests/port_tracking_minimal_uplink_check/infraPortTrackPol_neg1.json rename to tests/port_tracking_active_fabric_port_check/infraPortTrackPol_neg1.json diff --git a/tests/port_tracking_minimal_uplink_check/infraPortTrackPol_pos.json b/tests/port_tracking_active_fabric_port_check/infraPortTrackPol_pos.json similarity index 100% rename from tests/port_tracking_minimal_uplink_check/infraPortTrackPol_pos.json rename to tests/port_tracking_active_fabric_port_check/infraPortTrackPol_pos.json diff --git a/tests/port_tracking_minimal_uplink_check/test_port_tracking_minimal_uplink.py b/tests/port_tracking_active_fabric_port_check/test_port_tracking_active_fabric_port_check.py similarity index 92% rename from tests/port_tracking_minimal_uplink_check/test_port_tracking_minimal_uplink.py rename to tests/port_tracking_active_fabric_port_check/test_port_tracking_active_fabric_port_check.py index 7bb9b7f..47147a6 100644 --- a/tests/port_tracking_minimal_uplink_check/test_port_tracking_minimal_uplink.py +++ b/tests/port_tracking_active_fabric_port_check/test_port_tracking_active_fabric_port_check.py @@ -45,5 +45,5 @@ def test_logic(mock_icurl, tversion, expected_result): tversion = script.AciVersion(tversion) if tversion else None - result = script.port_tracking_minimal_uplink_check(1, 1, tversion) + result = script.port_tracking_active_fabric_port_check(1, 1, tversion) assert result == expected_result \ No newline at end of file From 8af0533254765688fce2524ead7df677d8a18e48 Mon Sep 17 00:00:00 2001 From: tianhe Date: Fri, 31 Oct 2025 09:26:20 +0000 Subject: [PATCH 4/5] Doc URL fix. --- docs/docs/validations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/validations.md b/docs/docs/validations.md index 3a29580..5f96657 100644 --- a/docs/docs/validations.md +++ b/docs/docs/validations.md @@ -2607,7 +2607,7 @@ If any instances of `configpushShardCont` are flagged by this script, Cisco TAC ### Port Tracking Active Fabric Port Zero -Due to CSCwp91797[61], if port-tracking feature is on and "number of active fabric ports that triggers port tracking" is zero, vPC member may be showing down post upgrade, the interface status become "initializing" by CLI "show interface e1/xx" +Due to [CSCwp91797][62], if port-tracking feature is on and "number of active fabric ports that triggers port tracking" is zero, vPC member may be showing down post upgrade, the interface status become "initializing" by CLI "show interface e1/xx" This defect is only applicable to 6.0(9d), change port-tracking "number of active fabric ports that triggers port tracking" to 1 before upgrade can avoid this issue. From 8deb4120c3e4c25b76bd995b0d6f15ba36a8c1f2 Mon Sep 17 00:00:00 2001 From: Welkin He Date: Mon, 3 Nov 2025 10:31:31 +1100 Subject: [PATCH 5/5] Updated headers to include "Admin State". --- aci-preupgrade-validation-script.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aci-preupgrade-validation-script.py b/aci-preupgrade-validation-script.py index 7764f72..ec763ec 100644 --- a/aci-preupgrade-validation-script.py +++ b/aci-preupgrade-validation-script.py @@ -5561,7 +5561,7 @@ def configpush_shard_check(tversion, **kwargs): @check_wrapper(check_title='Port Tracking Minimal Uplink Zero') def port_tracking_active_fabric_port_check(tversion, **kwargs): result = NA - headers = ["Port Tracking Active Fabric Ports"] + headers = ["Admin State", "Port Tracking Active Fabric Ports"] data = [] recommended_action = 'Increase Port Tracking Active Fabric Ports to 1 before upgrade' doc_url = 'https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#port-tracking-active-fabric-port-zero' @@ -5577,7 +5577,7 @@ def port_tracking_active_fabric_port_check(tversion, **kwargs): admin_st = port_tracking_mo[0]['infraPortTrackPol']['attributes']['adminSt'] minimal_uplink = port_tracking_mo[0]['infraPortTrackPol']['attributes']['minlinks'] if admin_st == "on" and minimal_uplink == "0": - data.append([minimal_uplink]) + data.append([admin_st,minimal_uplink]) else: return Result(result=NA, msg=VER_NOT_AFFECTED) if data: