Skip to content

added validation for CFD CSCwp64296#307

Merged
takishida merged 23 commits into
datacenter:v4.1.0-devfrom
psureshb:psureshb
Apr 3, 2026
Merged

added validation for CFD CSCwp64296#307
takishida merged 23 commits into
datacenter:v4.1.0-devfrom
psureshb:psureshb

Conversation

@psureshb
Copy link
Copy Markdown
Contributor

No description provided.

@psureshb
Copy link
Copy Markdown
Contributor Author

pytest logs
###################################
===================================================================== test session starts ======================================================================
platform linux -- Python 3.8.10, pytest-7.4.0, pluggy-1.2.0 -- /data/ssd/psureshb/repo/pytest_env/bin/python3
cachedir: .pytest_cache
rootdir: /data/ssd/psureshb/repo/preCFD/ACI-Pre-Upgrade-Validation-Script
configfile: pytest.ini
collected 13 items

tests/checks/rogue_ep_coop_exception_mac_check/test_rogue_ep_coop_exception_mac_check.py::test_rogue_ep_coop_exception_mac_check[PASS_non_affected_tversion_affected_cversion_no_exception_MACs]
------------------------------------------------------------------------ live log setup ------------------------------------------------------------------------
[10:45:39.988 INFO init_system:6066(MainThread)] Cleaning up previous run files in preupgrade_validator_logs/
[10:45:39.989 INFO init_system:6068(MainThread)] Creating directories preupgrade_validator_logs/ and preupgrade_validator_logs/json_results/
------------------------------------------------------------------------ live log call -------------------------------------------------------------------------
[10:45:39.990 INFO init_result:1182(MainThread)] Initialized in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
[10:45:39.991 INFO _start_thread:1105(MainThread)] (rogue_ep_coop_exception_mac_check) Starting thread.
[10:45:39.991 INFO wrapper:1349(rogue_ep_coop_exception_mac_check)] Start rogue_ep_coop_exception_mac_check
[10:45:39.992 INFO update_result:1191(rogue_ep_coop_exception_mac_check)] Finalized result in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
PASSED [ 7%]
tests/checks/rogue_ep_coop_exception_mac_check/test_rogue_ep_coop_exception_mac_check.py::test_rogue_ep_coop_exception_mac_check[PASS_non_affected_cversion_affected_tversion_no_exception_MACs]
------------------------------------------------------------------------ live log call -------------------------------------------------------------------------
[10:45:40.003 INFO init_result:1182(MainThread)] Initialized in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
[10:45:40.004 INFO _start_thread:1105(MainThread)] (rogue_ep_coop_exception_mac_check) Starting thread.
[10:45:40.004 INFO wrapper:1349(rogue_ep_coop_exception_mac_check)] Start rogue_ep_coop_exception_mac_check
[10:45:40.005 INFO update_result:1191(rogue_ep_coop_exception_mac_check)] Finalized result in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
PASSED [ 15%]
tests/checks/rogue_ep_coop_exception_mac_check/test_rogue_ep_coop_exception_mac_check.py::test_rogue_ep_coop_exception_mac_check[PASS_non_affected_cversion_tversion_no_exception_MACs]
------------------------------------------------------------------------ live log call -------------------------------------------------------------------------
[10:45:40.016 INFO init_result:1182(MainThread)] Initialized in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
[10:45:40.017 INFO _start_thread:1105(MainThread)] (rogue_ep_coop_exception_mac_check) Starting thread.
[10:45:40.018 INFO wrapper:1349(rogue_ep_coop_exception_mac_check)] Start rogue_ep_coop_exception_mac_check
[10:45:40.019 INFO update_result:1191(rogue_ep_coop_exception_mac_check)] Finalized result in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
PASSED [ 23%]
tests/checks/rogue_ep_coop_exception_mac_check/test_rogue_ep_coop_exception_mac_check.py::test_rogue_ep_coop_exception_mac_check[PASS_non_affected_cversion_tversion_with_exception_MACs]
------------------------------------------------------------------------ live log call -------------------------------------------------------------------------
[10:45:40.032 INFO init_result:1182(MainThread)] Initialized in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
[10:45:40.032 INFO _start_thread:1105(MainThread)] (rogue_ep_coop_exception_mac_check) Starting thread.
[10:45:40.033 INFO wrapper:1349(rogue_ep_coop_exception_mac_check)] Start rogue_ep_coop_exception_mac_check
[10:45:40.033 INFO update_result:1191(rogue_ep_coop_exception_mac_check)] Finalized result in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
PASSED [ 30%]
tests/checks/rogue_ep_coop_exception_mac_check/test_rogue_ep_coop_exception_mac_check.py::test_rogue_ep_coop_exception_mac_check[PASS_affected_edge_cversion_tversion_no_exception_MACs]
------------------------------------------------------------------------ live log call -------------------------------------------------------------------------
[10:45:40.046 INFO init_result:1182(MainThread)] Initialized in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
[10:45:40.047 INFO _start_thread:1105(MainThread)] (rogue_ep_coop_exception_mac_check) Starting thread.
[10:45:40.048 INFO wrapper:1349(rogue_ep_coop_exception_mac_check)] Start rogue_ep_coop_exception_mac_check
[10:45:40.048 INFO update_result:1191(rogue_ep_coop_exception_mac_check)] Finalized result in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
PASSED [ 38%]
tests/checks/rogue_ep_coop_exception_mac_check/test_rogue_ep_coop_exception_mac_check.py::test_rogue_ep_coop_exception_mac_check[PASS_affected_cversion_tversion_no_exception_MACs]
------------------------------------------------------------------------ live log call -------------------------------------------------------------------------
[10:45:40.061 INFO init_result:1182(MainThread)] Initialized in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
[10:45:40.062 INFO _start_thread:1105(MainThread)] (rogue_ep_coop_exception_mac_check) Starting thread.
[10:45:40.063 INFO wrapper:1349(rogue_ep_coop_exception_mac_check)] Start rogue_ep_coop_exception_mac_check
[10:45:40.063 INFO update_result:1191(rogue_ep_coop_exception_mac_check)] Finalized result in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
PASSED [ 46%]
tests/checks/rogue_ep_coop_exception_mac_check/test_rogue_ep_coop_exception_mac_check.py::test_rogue_ep_coop_exception_mac_check[PASS_affected_cversion_tversion_exception_MACs_with_exceptcont_listeners]
------------------------------------------------------------------------ live log call -------------------------------------------------------------------------
[10:45:40.076 INFO init_result:1182(MainThread)] Initialized in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
[10:45:40.077 INFO _start_thread:1105(MainThread)] (rogue_ep_coop_exception_mac_check) Starting thread.
[10:45:40.077 INFO wrapper:1349(rogue_ep_coop_exception_mac_check)] Start rogue_ep_coop_exception_mac_check
[10:45:40.078 INFO update_result:1191(rogue_ep_coop_exception_mac_check)] Finalized result in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
PASSED [ 53%]
tests/checks/rogue_ep_coop_exception_mac_check/test_rogue_ep_coop_exception_mac_check.py::test_rogue_ep_coop_exception_mac_check[PASS_affected_edge_cversion_tversion_exception_MACs_with_exceptcont_listeners]
------------------------------------------------------------------------ live log call -------------------------------------------------------------------------
[10:45:40.092 INFO init_result:1182(MainThread)] Initialized in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
[10:45:40.093 INFO _start_thread:1105(MainThread)] (rogue_ep_coop_exception_mac_check) Starting thread.
[10:45:40.093 INFO wrapper:1349(rogue_ep_coop_exception_mac_check)] Start rogue_ep_coop_exception_mac_check
[10:45:40.094 INFO update_result:1191(rogue_ep_coop_exception_mac_check)] Finalized result in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
PASSED [ 61%]
tests/checks/rogue_ep_coop_exception_mac_check/test_rogue_ep_coop_exception_mac_check.py::test_rogue_ep_coop_exception_mac_check[MANUAL_tversion_not_provided]
------------------------------------------------------------------------ live log call -------------------------------------------------------------------------
[10:45:40.107 INFO init_result:1182(MainThread)] Initialized in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
[10:45:40.108 INFO _start_thread:1105(MainThread)] (rogue_ep_coop_exception_mac_check) Starting thread.
[10:45:40.108 INFO wrapper:1349(rogue_ep_coop_exception_mac_check)] Start rogue_ep_coop_exception_mac_check| 0/1 checks completed
[10:45:40.109 INFO update_result:1191(rogue_ep_coop_exception_mac_check)] Finalized result in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
PASSED [ 69%]
tests/checks/rogue_ep_coop_exception_mac_check/test_rogue_ep_coop_exception_mac_check.py::test_rogue_ep_coop_exception_mac_check[FAIL_affected_edge_cversion_tversion_exception_MACs_one_missing_exceptcont_listener]
------------------------------------------------------------------------ live log call -------------------------------------------------------------------------
[10:45:40.122 INFO init_result:1182(MainThread)] Initialized in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
[10:45:40.122 INFO _start_thread:1105(MainThread)] (rogue_ep_coop_exception_mac_check) Starting thread.
[10:45:40.123 INFO wrapper:1349(rogue_ep_coop_exception_mac_check)] Start rogue_ep_coop_exception_mac_check| 0/1 checks completed
[10:45:40.124 INFO update_result:1191(rogue_ep_coop_exception_mac_check)] Finalized result in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
PASSED [ 76%]
tests/checks/rogue_ep_coop_exception_mac_check/test_rogue_ep_coop_exception_mac_check.py::test_rogue_ep_coop_exception_mac_check[FAIL_affected_cversion_tversion_exception_MACs_31_missing_exceptcont_listeners]
------------------------------------------------------------------------ live log call -------------------------------------------------------------------------
[10:45:40.138 INFO init_result:1182(MainThread)] Initialized in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
[10:45:40.139 INFO _start_thread:1105(MainThread)] (rogue_ep_coop_exception_mac_check) Starting thread.
[10:45:40.139 INFO wrapper:1349(rogue_ep_coop_exception_mac_check)] Start rogue_ep_coop_exception_mac_check| 0/1 checks completed
[10:45:40.140 INFO update_result:1191(rogue_ep_coop_exception_mac_check)] Finalized result in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
PASSED [ 84%]
tests/checks/rogue_ep_coop_exception_mac_check/test_rogue_ep_coop_exception_mac_check.py::test_rogue_ep_coop_exception_mac_check[FAIL_affected_cversion_tversion_exception_MACs_many_missing_exceptcont_listeners]
------------------------------------------------------------------------ live log call -------------------------------------------------------------------------
[10:45:40.153 INFO init_result:1182(MainThread)] Initialized in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
[10:45:40.153 INFO _start_thread:1105(MainThread)] (rogue_ep_coop_exception_mac_check) Starting thread.
[10:45:40.154 INFO wrapper:1349(rogue_ep_coop_exception_mac_check)] Start rogue_ep_coop_exception_mac_check| 0/1 checks completed
[10:45:40.155 INFO update_result:1191(rogue_ep_coop_exception_mac_check)] Finalized result in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
PASSED [ 92%]
tests/checks/rogue_ep_coop_exception_mac_check/test_rogue_ep_coop_exception_mac_check.py::test_rogue_ep_coop_exception_mac_check[FAIL_affected_cversion_tversion_exception_MACs_no_exceptcont_listeners]
------------------------------------------------------------------------ live log call -------------------------------------------------------------------------
[10:45:40.167 INFO init_result:1182(MainThread)] Initialized in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
[10:45:40.168 INFO _start_thread:1105(MainThread)] (rogue_ep_coop_exception_mac_check) Starting thread.
[10:45:40.168 INFO wrapper:1349(rogue_ep_coop_exception_mac_check)] Start rogue_ep_coop_exception_mac_check
[10:45:40.169 INFO update_result:1191(rogue_ep_coop_exception_mac_check)] Finalized result in preupgrade_validator_logs/json_results/rogue_ep_coop_exception_mac_check.json
PASSED [100%]

====================================================================== 13 passed in 0.20s ======================================================================

Pre-upgrade validation script logs:---------->
######################################################
==== 2025-12-24T10-42-44+0000, Script Version v4.0.1 ====

!!!! Check https://github.com/datacenter/ACI-Pre-Upgrade-Validation-Script for Latest Release !!!!

To use a non-default Login Domain, enter apic#DOMAIN\USERNAME
Gathering Node Information...

Current APIC Version...6.1(5e)
Lowest Switch Version...6.1(5e)

Target APIC version is overridden to 6.1(1f)

Collecting VPC Node IDs...

Progress: |----------------------------------------------------------------------------------------------------| 0/1 checks completed
Progress: |████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 checks completed

=== Check Result (failed only) ===

=== Summary Result ===

PASS : 1
FAIL - OUTAGE WARNING!! : 0
FAIL - UPGRADE FAILURE!! : 0
MANUAL CHECK REQUIRED : 0
POST UPGRADE CHECK REQUIRED : 0
N/A : 0
ERROR !! : 0
TOTAL : 1
preupgrade_validator_logs/summary.json0000644003601600360160000000027515122741651017655 0ustar adminadmin{
"PASS": 1,
"FAIL - OUTAGE WARNING!!": 0,
"FAIL - UPGRADE FAILURE!!": 0,
"MANUAL CHECK REQUIRED": 0,
"POST UPGRADE CHECK REQUIRED": 0,
"N/A": 0,
"ERROR !!": 0,
"TOTAL": 1

@diwakarmishra1190
Copy link
Copy Markdown

Let's test the actual fail scenario using below method.

  1. Login as root
  2. enable testapi
  3. find any preListener exception list MO dn (random)
  4. using icurl set status delete
  5. check the count of total dn.
  6. if it is less than 32 now run your script and see if it is detecting the failure or not.
  7. once test is done set the dn status to created.

Example:

bdsol-aci01-apic1#
bdsol-aci01-apic1# acidiag dbgtoken
0HDIBKCZXEQI

bdsol-aci01-apic1#
bdsol-aci01-apic1#
bdsol-aci01-apic1#
bdsol-aci01-apic1#
bdsol-aci01-apic1#
bdsol-aci01-apic1# ssh root@0

root@0.0.0.0's password:
root@bdsol-aci01-apic1:#
root@bdsol-aci01-apic1:
# enable_testapi.bin 3600
Decoded seconds argument 3600 to be 3600
PAM_SERVER UDS SOCKET PATH = /var/run/mgmt/socket/pam
Connection successful - attempting to send testapi enable directive
Sent testapi enable directive (total pkt len 8)
Received response from testapi server
testapi enable directive acknowledged by REST endpoint
Success : testapi functionality is now enabled for 3600 seconds
root@bdsol-aci01-apic1:#
root@bdsol-aci01-apic1:
# exit
logout
Connection to 0.0.0.0 closed.
bdsol-aci01-apic1# icurl -kX POST -g http://localhost:7777/testapi/node/mo/.xml -d ""

bdsol-aci01-apic1#
bdsol-aci01-apic1#
bdsol-aci01-apic1# moquery -c presListener -f 'pres.Listener.dn*"exceptcont"' | grep dn | grep resregistry-32
bdsol-aci01-apic1# icurl -kX POST -g http://localhost:7777/testapi/node/mo/.xml -d ""

bdsol-aci01-apic1#
bdsol-aci01-apic1#
bdsol-aci01-apic1# moquery -c presListener -f 'pres.Listener.dn*"exceptcont"' | grep dn | grep resregistry-32
dn : resregistry/resregistry-32/relnholder/rspresClass-[resregistry/resregistry-32/class-19076]/list-[exceptcont]
bdsol-aci01-apic1#
bdsol-aci01-apic1#
bdsol-aci01-apic1# icurl -kX POST -g http://localhost:7777/testapi/node/mo/.xml -d ""

bdsol-aci01-apic1# moquery -c presListener -f 'pres.Listener.dn*"exceptcont"' | grep dn | wc -l
28 <<<<<<<<<<<<
bdsol-aci01-apic1#
bdsol-aci01-apic1# icurl -kX POST -g http://localhost:7777/testapi/node/mo/.xml -d ""

bdsol-aci01-apic1# moquery -c presListener -f 'pres.Listener.dn*"exceptcont"' | grep dn | wc -l
29 <<<<<<<<<<<<<
bdsol-aci01-apic1#

@psureshb
Copy link
Copy Markdown
Contributor Author

rogue_ep_coop_exception_mac_check_Fail.txt
This file contains the failure logs.

Copy link
Copy Markdown

@diwakarmishra1190 diwakarmishra1190 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM
tested Locally

Copy link
Copy Markdown

@diwakarmishra1190 diwakarmishra1190 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New changes are working fine tested locally.

Copy link
Copy Markdown
Collaborator

@takishida takishida left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@psureshb @diwakarmishra1190

I've updated the doc with the information that is relevant to users along with the new conditions.

Correct me if I'm wrong, but I doubt that the current condition checked by this rule will ever hit because I believe presListener will be missing on APICs after APICs are upgraded. But you are checking the current version being the older one and the target version being the affected one. That is only the case BEFORE APICs (or anything) are upgraded. In other words, the presListener issue has yet to happen.

Or if presLIsteners are created on APICs when switches are upgraded instead of APICs, using that as a condition doesn't make sense at all. This script is to prevent the issue from happening by detecting the conditions before the issue happens instead of checking the symptoms of the issue after hitting it.

Can you please review the updated doc and update the rule logic accordingly?

Comment thread aci-preupgrade-validation-script.py Outdated
Comment thread aci-preupgrade-validation-script.py Outdated
Comment thread aci-preupgrade-validation-script.py Outdated
Comment thread aci-preupgrade-validation-script.py Outdated
Comment thread aci-preupgrade-validation-script.py Outdated
…es for presListener API changes

- Adjusted the API queries in the rogue_ep_coop_exception_mac_check function to improve accuracy.
- Updated test cases to reflect changes in the expected structure of presListener responses.
- Added new test cases for scenarios with varying counts of presListener entries.
- Removed outdated comments and improved logging for better clarity.
…dation of exception MACs and presListener entries

- Updated API queries to check for rogue exception MACs and presListener entries before and after APIC upgrades.
- Improved logging to provide clearer insights on the counts of exception MACs and presListener entries.
- Adjusted logic to handle scenarios with varying counts of presListener entries more effectively.
…for clarity and accuracy

- Replaced the existing rogue_ep_coop_exception_mac_check function with a refined version that improves validation logic for rogue exception MACs and presListener entries.
- Updated documentation to reflect the new check title and conditions for the rogue EP Exception List.
- Enhanced test cases to align with the updated API response structure and added scenarios for post-APIC upgrade checks.
- Adjusted JSON test responses to ensure accurate validation during testing.
- Modified the exception_mac_api query to include response subtree count for better validation.
- Corrected version numbers in test cases to reflect accurate edge and target versions.
- Added new test scenarios for post-APIC upgrade checks to enhance coverage and validation accuracy.
@psureshb
Copy link
Copy Markdown
Contributor Author

Comment thread docs/docs/validations.md Outdated
Copy link
Copy Markdown

@lovkeshsharma702 lovkeshsharma702 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

work on comments.

…n List to enhance clarity and accuracy

Updated pytest file and structured to comply with old cases
Comment thread docs/docs/validations.md Outdated
…P Exception List after upgrade. Removed the regression context from root cause statement
@takishida takishida changed the base branch from master to v4.1.0-dev April 3, 2026 06:36
@takishida takishida self-requested a review April 3, 2026 06:37
@takishida
Copy link
Copy Markdown
Collaborator

Example result outputs:

Pre-APIC Upgrade

[Check 85/91] Rogue EP Exception List missing on switches...                                                       FAIL - OUTAGE WARNING!!
  Rogue Exception MACs Count  presListener Count
  --------------------------  ------------------
  5                           N/A

  Recommended Action: Change the target version to a fixed version of CSCwp64296.
  Reference Document: https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#rogue-ep-exception-list-missing-on-switches

Post-APIC Upgrade

[Check 85/91] Rogue EP Exception List missing on switches...                                                       FAIL - OUTAGE WARNING!!
  Rogue Exception MACs Count  presListener Count
  --------------------------  ------------------
  5                           only 27 found out of 32

  Recommended Action: Delete the exception lists and create again before upgrading switches. Or contact Cisco TAC to restore the missing presListener objects.
  Reference Document: https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#rogue-ep-exception-list-missing-on-switches

@takishida takishida merged commit 67dab4b into datacenter:v4.1.0-dev Apr 3, 2026
2 checks passed
monrog2 added a commit that referenced this pull request May 21, 2026
* Add arg to define thread limit - to throttle concurrent API calls when required (#355)

* add `--max-threads` arg
* fix bad descriptor errs/race conditions
* update pytests

* 353 the script incorrectly detects vpc and port channel interfaces as cscwh68103 invalid fabricpathep targets (#357)

* specific testing for known failure conditions of cscwh68103 as to not catch valid scenarios

* Update aci-preupgrade-validation-script.py

mark version

* print cleanup

* fix: Add cversion check for post_upgrade_cb_check (#377)

* added validation for CFD CSCwp64296 (#307)

Added rogue ep/coop exception mac check for the CFD CSCwp64296

* Added pre-upgrade validation for N9K-C9408 with more than 6 N9K-X9400-16W LEM's for the bug CSCws82819 (#354)

* Added a new check for the bug 'CSCws82819N9K-C9408 boot loop on 16.1.2f and later with 6 or more LEMs'

* New Validation for APIC Storage Inode Usage (F4388, F4389, F4390 equipment-full) (#361)

* New Validation for APIC Storage Inode Usage (F4388, F4389, F4390 equipment-full)
* Add new exception handling of invalid query filter in `icurl` due to, for example, a non-supported fault code on older versions

* Add validation for multipod_modular_spine_bootscript_check - CSCwr66848 (#365)

* Add check for CFD - CSCwr66848

* Update pytest.yml to run on vX.Y.Z branches

* adding of cli parameters for user and password (#335)

* added cli parameter for user (-u) and password (-p) to be used in an eased way for fully automated execution of 'aci-preupgrade-validation-script.py'

* test: Add pytest

---------

Co-authored-by: Detlef Sass <detlef.sass@de.bosch.com>

* Added validation for CSCwd40071 (#332)

* Added validation for CSCwd40071

* Addressed the comments

* Added cversion for the check

* Removed empty spaces

* logic change. removed 0.0.0.0/0 and made pytest changes

* logic modified and validation.md file updated

* Added validation for CSCws84232 (#334)

* Feat:added svccoreCtrlr excessive entries check

* updated the formated json in svccore_negative.json

* Removed other PR checks

* Fix: svccoreNode mo check is updated

* Fix:update the threshold to 240

* refactor:moved to general check

* refactor:updated recommended action

* refactor:optimise the check for get the count alone

* refactor:added try catch exception for error handling

* update the threshold value for 240

* refactor:query-target was added

* refactor: removed unwanted spaces

* refactor:removed unwanted spaces in validation.md

* resolve conflict while rebasing

* resolve conflict while rebasing

* updated pytest script file

* updated validation.md

* addressed review comments

* updated validation.md

---------

Co-authored-by: takishida <38262981+takishida@users.noreply.github.com>

* set to v4.1.0

---------

Co-authored-by: tkishida <tkishida@cisco.com>
Co-authored-by: takishida <38262981+takishida@users.noreply.github.com>
Co-authored-by: psureshb <psureshb@cisco.com>
Co-authored-by: Harinadh-Saladi <hsaladi@cisco.com>
Co-authored-by: sanjanch <sanjanch@cisco.com>
Co-authored-by: asraf-khan <anazar@cisco.com>
Co-authored-by: Thatleft <detlef.sass@web.de>
Co-authored-by: Detlef Sass <detlef.sass@de.bosch.com>
Co-authored-by: veesenth_cisco <veesenth@cisco.com>
monrog2 added a commit that referenced this pull request May 21, 2026
* Add arg to define thread limit - to throttle concurrent API calls when required (#355)

* add `--max-threads` arg
* fix bad descriptor errs/race conditions
* update pytests

* 353 the script incorrectly detects vpc and port channel interfaces as cscwh68103 invalid fabricpathep targets (#357)

* specific testing for known failure conditions of cscwh68103 as to not catch valid scenarios

* Update aci-preupgrade-validation-script.py

mark version

* print cleanup

* Unsupported hardware check

* fix: Add cversion check for post_upgrade_cb_check (#377)

* added validation for CFD CSCwp64296 (#307)

Added rogue ep/coop exception mac check for the CFD CSCwp64296

* Added pre-upgrade validation for N9K-C9408 with more than 6 N9K-X9400-16W LEM's for the bug CSCws82819 (#354)

* Added a new check for the bug 'CSCws82819N9K-C9408 boot loop on 16.1.2f and later with 6 or more LEMs'

* New Validation for APIC Storage Inode Usage (F4388, F4389, F4390 equipment-full) (#361)

* New Validation for APIC Storage Inode Usage (F4388, F4389, F4390 equipment-full)
* Add new exception handling of invalid query filter in `icurl` due to, for example, a non-supported fault code on older versions

* Add validation for multipod_modular_spine_bootscript_check - CSCwr66848 (#365)

* Add check for CFD - CSCwr66848

* Update pytest.yml to run on vX.Y.Z branches

* adding of cli parameters for user and password (#335)

* added cli parameter for user (-u) and password (-p) to be used in an eased way for fully automated execution of 'aci-preupgrade-validation-script.py'

* test: Add pytest

---------

Co-authored-by: Detlef Sass <detlef.sass@de.bosch.com>

* Addressed the review comments

* Added validation for CSCwd40071 (#332)

* Added validation for CSCwd40071

* Addressed the comments

* Added cversion for the check

* Removed empty spaces

* logic change. removed 0.0.0.0/0 and made pytest changes

* logic modified and validation.md file updated

* Addressed the review comments

* Added validation for CSCws84232 (#334)

* Feat:added svccoreCtrlr excessive entries check

* updated the formated json in svccore_negative.json

* Removed other PR checks

* Fix: svccoreNode mo check is updated

* Fix:update the threshold to 240

* refactor:moved to general check

* refactor:updated recommended action

* refactor:optimise the check for get the count alone

* refactor:added try catch exception for error handling

* update the threshold value for 240

* refactor:query-target was added

* refactor: removed unwanted spaces

* refactor:removed unwanted spaces in validation.md

* resolve conflict while rebasing

* resolve conflict while rebasing

* updated pytest script file

* updated validation.md

* addressed review comments

* updated validation.md

---------

Co-authored-by: takishida <38262981+takishida@users.noreply.github.com>

* Removed gen1_switch_compatibility_check

---------

Co-authored-by: GM <monrog2@gmail.com>
Co-authored-by: Gabriel <gmonroy@cisco.com>
Co-authored-by: tkishida <tkishida@cisco.com>
Co-authored-by: takishida <38262981+takishida@users.noreply.github.com>
Co-authored-by: psureshb <psureshb@cisco.com>
Co-authored-by: Harinadh-Saladi <hsaladi@cisco.com>
Co-authored-by: sanjanch <sanjanch@cisco.com>
Co-authored-by: asraf-khan <anazar@cisco.com>
Co-authored-by: Thatleft <detlef.sass@web.de>
Co-authored-by: Detlef Sass <detlef.sass@de.bosch.com>
Co-authored-by: veesenth_cisco <veesenth@cisco.com>
monrog2 added a commit that referenced this pull request May 21, 2026
…age (#368)

* Add arg to define thread limit - to throttle concurrent API calls when required (#355)

* add `--max-threads` arg
* fix bad descriptor errs/race conditions
* update pytests

* 353 the script incorrectly detects vpc and port channel interfaces as cscwh68103 invalid fabricpathep targets (#357)

* specific testing for known failure conditions of cscwh68103 as to not catch valid scenarios

* Update aci-preupgrade-validation-script.py

mark version

* print cleanup

* Added code for CSCwo96334:/tmp directory disk space for snapshot storage

* Updated fix version

* Added clarification comment for /tmp snapshot handling

* fix: Add cversion check for post_upgrade_cb_check (#377)

* added validation for CFD CSCwp64296 (#307)

Added rogue ep/coop exception mac check for the CFD CSCwp64296

* Added pre-upgrade validation for N9K-C9408 with more than 6 N9K-X9400-16W LEM's for the bug CSCws82819 (#354)

* Added a new check for the bug 'CSCws82819N9K-C9408 boot loop on 16.1.2f and later with 6 or more LEMs'

* New Validation for APIC Storage Inode Usage (F4388, F4389, F4390 equipment-full) (#361)

* New Validation for APIC Storage Inode Usage (F4388, F4389, F4390 equipment-full)
* Add new exception handling of invalid query filter in `icurl` due to, for example, a non-supported fault code on older versions

* Add validation for multipod_modular_spine_bootscript_check - CSCwr66848 (#365)

* Add check for CFD - CSCwr66848

* Update pytest.yml to run on vX.Y.Z branches

* adding of cli parameters for user and password (#335)

* added cli parameter for user (-u) and password (-p) to be used in an eased way for fully automated execution of 'aci-preupgrade-validation-script.py'

* test: Add pytest

---------

Co-authored-by: Detlef Sass <detlef.sass@de.bosch.com>

* Corrected the typo for snapshot

---------

Co-authored-by: GM <monrog2@gmail.com>
Co-authored-by: Gabriel <gmonroy@cisco.com>
Co-authored-by: tkishida <tkishida@cisco.com>
Co-authored-by: takishida <38262981+takishida@users.noreply.github.com>
Co-authored-by: psureshb <psureshb@cisco.com>
Co-authored-by: sanjanch <sanjanch@cisco.com>
Co-authored-by: asraf-khan <anazar@cisco.com>
Co-authored-by: Thatleft <detlef.sass@web.de>
Co-authored-by: Detlef Sass <detlef.sass@de.bosch.com>
Priyanka-Patil14 pushed a commit to Priyanka-Patil14/ACI-Pre-Upgrade-Validation-Script that referenced this pull request May 25, 2026
Added rogue ep/coop exception mac check for the CFD CSCwp64296
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants