Skip to content

Added validation for CSCws84232#334

Open
veenaskumar-cisco wants to merge 19 commits intodatacenter:v4.1.0-devfrom
veenaskumar-cisco:CSCws84232
Open

Added validation for CSCws84232#334
veenaskumar-cisco wants to merge 19 commits intodatacenter:v4.1.0-devfrom
veenaskumar-cisco:CSCws84232

Conversation

@veenaskumar-cisco
Copy link
Copy Markdown

@veenaskumar-cisco veenaskumar-cisco commented Jan 23, 2026

Fixes #333

Fail logs:

    ==== 2026-01-23T10-29-58+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...5.3(2c)
Lowest Switch Version...5.3(2c)

Target APIC version is overridden to 6.2(1h)

Collecting VPC Node IDs...101, 102

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



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

[Check 1/1] svccoreCtrlr excessive entries check...                                                                FAIL - OUTAGE WARNING!!
  
svccoreCtrlr Object Count
  -------------------------
  250

  Recommended Action: Contact Cisco TAC for Support before upgrade
  Reference Document: https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#svccoreCtrlr-excessive-entries-check



=== Summary Result ===

PASS                        :  0
FAIL - OUTAGE WARNING!!     :  1
FAIL - UPGRADE FAILURE!!    :  0
MANUAL CHECK REQUIRED       :  0

POST UPGRADE CHECK REQUIRED : 0
N/A : 0
ERROR !! : 0
TOTAL : 1

@veenaskumar-cisco veenaskumar-cisco force-pushed the CSCws84232 branch 4 times, most recently from 38634fd to 7fa5de3 Compare January 23, 2026 13:12
@lovkeshsharma702
Copy link
Copy Markdown

this is not an outage warning. this will allow the upgrade to complete but GUi will be slow with defect after upgrade. So we should say MANUAL CHECK REQUIRED

Comment thread docs/docs/validations.md Outdated
Comment thread aci-preupgrade-validation-script.py 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.

missing code for svccoreNode. these 2 mo need to be checked.

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
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.

please check with comment section. make sure we handle these.

@veenaskumar-cisco
Copy link
Copy Markdown
Author

veenaskumar-cisco commented Mar 9, 2026

    ==== 2026-03-09T10-51-48+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.0(9e)
Lowest Switch Version...5.2(5c)

Gathering APIC Versions from Firmware Repository...

No Firmware Detected!  Please Upload APIC Firmware and re-run the script.

Collecting VPC Node IDs...

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



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

[Check 1/1] svccore excessive data check...                                                                          MANUAL CHECK REQUIRED
  svccoreCtrlr Object Count  svccoreNode Object Count
  -------------------------  ------------------------
  0                          3

  Recommended Action: Delete the core files before proceeding with upgrade. Please refer to the document linked below and contact Cisco TAC for assistance if needed.
  Reference Document: https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#svccore_excessive_data_check



=== Summary Result ===

PASS                        :  0
FAIL - OUTAGE WARNING!!     :  0
FAIL - UPGRADE FAILURE!!    :  0
MANUAL CHECK REQUIRED       :  1
POST UPGRADE CHECK REQUIRED :  0
N/A                         :  0
ERROR !!                    :  0
TOTAL                       :  1

@takishida takishida changed the base branch from master to v4.1.0-dev April 4, 2026 05:39
@monrog2 monrog2 self-requested a review April 29, 2026 14:41
@muthu-ku
Copy link
Copy Markdown

muthu-ku commented Apr 30, 2026

pytest logs:

pytest -sv tests/checks/svccore_excessive_class_entries_check/svccore_excessive_class_entries_check.py
================================================== test session starts ===================================================
platform linux -- Python 3.8.10, pytest-7.4.0, pluggy-1.2.0 -- /data/ssd/veesenth/repo/aci_escalation/ACI-Pre-Upgrade-Validation-Script/.venv/bin/python3
cachedir: .pytest_cache
rootdir: /data/ssd/veesenth/repo/aci_escalation/ACI-Pre-Upgrade-Validation-Script
configfile: pytest.ini
plugins: anyio-4.5.2
collected 4 items

tests/checks/svccore_excessive_class_entries_check/svccore_excessive_class_entries_check.py::test_logic[icurl_outputs0-PASS]
----------------------------------------------------- live log setup -----------------------------------------------------
[10:37:53.227 INFO     init_system:6337(MainThread)] Cleaning up previous run files in preupgrade_validator_logs/
[10:37:53.228 INFO     init_system:6339(MainThread)] Creating directories preupgrade_validator_logs/ and preupgrade_validator_logs/json_results/
----------------------------------------------------- live log call ------------------------------------------------------
[10:37:53.229 INFO     init_result:1203(MainThread)] Initialized in preupgrade_validator_logs/json_results/svccore_excessive_data_check.json
[10:37:53.229 INFO     _start_thread:1122(MainThread)] (svccore_excessive_data_check) Starting thread.
Progress: |----------------------------------------------------------------------------------------------------| 0/1 check[10:37:53.230 INFO     wrapper:1370(svccore_excessive_data_check)] Start svccore_excessive_data_check
[10:37:53.231 INFO     update_result:1212(svccore_excessive_data_check)] Finalized result in preupgrade_validator_logs/json_results/svccore_excessive_data_check.json
Progress: |████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 checkPASSEDleted
tests/checks/svccore_excessive_class_entries_check/svccore_excessive_class_entries_check.py::test_logic[icurl_outputs1-MANUAL CHECK REQUIRED]
----------------------------------------------------- live log call ------------------------------------------------------
[10:37:53.242 INFO     init_result:1203(MainThread)] Initialized in preupgrade_validator_logs/json_results/svccore_excessive_data_check.json
[10:37:53.243 INFO     _start_thread:1122(MainThread)] (svccore_excessive_data_check) Starting thread.
[10:37:53.243 INFO     wrapper:1370(svccore_excessive_data_check)] Start svccore_excessive_data_check
Progress: |----------------------------------------------------------------------------------------------------| 0/1 check[10:37:53.244 INFO     update_result:1212(svccore_excessive_data_check)] Finalized result in preupgrade_validator_logs/json_results/svccore_excessive_data_check.json
Progress: |████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 checkPASSEDleted
tests/checks/svccore_excessive_class_entries_check/svccore_excessive_class_entries_check.py::test_logic[icurl_outputs2-MANUAL CHECK REQUIRED]
----------------------------------------------------- live log call ------------------------------------------------------
[10:37:53.256 INFO     init_result:1203(MainThread)] Initialized in preupgrade_validator_logs/json_results/svccore_excessive_data_check.json
[10:37:53.257 INFO     _start_thread:1122(MainThread)] (svccore_excessive_data_check) Starting thread.
Progress: |----------------------------------------------------------------------------------------------------| 0/1 check[10:37:53.257 INFO     wrapper:1370(svccore_excessive_data_check)] Start svccore_excessive_data_check
[10:37:53.259 INFO     update_result:1212(svccore_excessive_data_check)] Finalized result in preupgrade_validator_logs/json_results/svccore_excessive_data_check.json
Progress: |████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 checkPASSEDleted
tests/checks/svccore_excessive_class_entries_check/svccore_excessive_class_entries_check.py::test_logic[icurl_outputs3-MANUAL CHECK REQUIRED]
----------------------------------------------------- live log call ------------------------------------------------------
[10:37:53.270 INFO     init_result:1203(MainThread)] Initialized in preupgrade_validator_logs/json_results/svccore_excessive_data_check.json
[10:37:53.270 INFO     _start_thread:1122(MainThread)] (svccore_excessive_data_check) Starting thread.
[10:37:53.270 INFO     wrapper:1370(svccore_excessive_data_check)] Start svccore_excessive_data_check
Progress: |----------------------------------------------------------------------------------------------------| 0/1 check[10:37:53.271 INFO     update_result:1212(svccore_excessive_data_check)] Finalized result in preupgrade_validator_logs/json_results/svccore_excessive_data_check.json
Progress: |████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 checkPASSEDleted

=================================================== 4 passed in 0.07s ====================================================

Comment thread docs/docs/validations.md Outdated
headers = ['svccoreCtrlr Object Count','svccoreNode Object Count']
data = []
recommended_action = "Delete the core files before proceeding with upgrade. Please refer to the document linked below and contact Cisco TAC for assistance if needed."
doc_url = "https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#svccore_excessive_data_check"
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

fix the link to match the shortcut name in the validations doc

Comment thread aci-preupgrade-validation-script.py Outdated
prints(msg)
log.error(msg, exc_info=True)
sys.exit(1)
sys.exit(1) No newline at end of file
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

keep modifications scoped to the ticket, if this needs to change, file a separate issue

Comment thread docs/docs/validations.md Outdated
[Fabric Link Redundancy][g17] | :white_check_mark: | :no_entry_sign:
[APIC Database Size][g18] | :white_check_mark: | :no_entry_sign:
[APIC downgrade compatibility when crossing 6.2 release][g19]| :white_check_mark: | :no_entry_sign:
[Svccore Excessive Data Check][g20] | :white_check_mark: |
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

put no entry sign if not on built-in.

@takishida do we need to mass update these to account for 6.2 having the ability to pull latest + once metadat offline bundle it available for pull?

Comment thread docs/docs/validations.md

### Svccore Excessive Data Check

Due to excessive `svccoreCtrlr` or `svccoreNode` managed objects, Apic gui stuck in loading multiple queries.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

add a line indicating what those objects actually represent.

"moCount": {
"attributes": {
"childAction": "",
"count": "32000",
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

flip positive and negative checks. positive = hitting condition, negative = not hitting (PASS)

[
# No excessive class entries
(
{svccoreClassEntry: read_data(dir, "svccore_positive.json"),svccoreNodeEntry: read_data(dir, "svccoreNode_positive.json")},
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

modify these pointers after pos/neg files are flipped

@check_wrapper(check_title="svccore excessive data check")
def svccore_excessive_data_check(**kwargs):
result = PASS
headers = ['svccoreCtrlr Object Count','svccoreNode Object Count']
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

make the columnes more agnostic, such as [ClassName, Count].

Ten you can only have rows where they exceed your criteria;

ClassName, Count
svccore, 251

or

ClassName, Count
svccore, 251
scvother 500

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.

NewValidation for CSCws84232

5 participants