Skip to content

Commit 4eff7b6

Browse files
authored
Merge branch 'v4.1.0-dev' into muthuk-CSCwd37387
2 parents 1a8d3cd + 69d6a4b commit 4eff7b6

7 files changed

Lines changed: 129 additions & 2 deletions

File tree

aci-preupgrade-validation-script.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6293,7 +6293,7 @@ def multipod_modular_spine_bootscript_check(tversion, fabric_nodes, username, pa
62936293

62946294
return Result(result=result, headers=headers, data=data, recommended_action=recommended_action, doc_url=doc_url)
62956295

6296-
6296+
62976297
@check_wrapper(check_title="Inband Management Policy Misconfiguration")
62986298
def inband_management_policy_misconfig_check(cversion, tversion, **kwargs):
62996299
result = PASS
@@ -6318,6 +6318,29 @@ def inband_management_policy_misconfig_check(cversion, tversion, **kwargs):
63186318
return Result(result=result, headers=headers, data=data, recommended_action=recommended_action, doc_url=doc_url)
63196319

63206320

6321+
@check_wrapper(check_title="svccore excessive data check")
6322+
def svccore_excessive_data_check(**kwargs):
6323+
result = PASS
6324+
headers = ['Class Name','Count']
6325+
data = []
6326+
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."
6327+
doc_url = "https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#svccore-excessive-data-check"
6328+
try:
6329+
svccoreCtrlr_classes_count = icurl('class', 'svccoreCtrlr.json?query-target=self&rsp-subtree-include=count')
6330+
svccoreNode_classes_count = icurl('class', 'svccoreNode.json?query-target=self&rsp-subtree-include=count')
6331+
6332+
if int(svccoreCtrlr_classes_count[0]['moCount']['attributes']['count']) > 240:
6333+
data.append(['svccoreCtrlr', svccoreCtrlr_classes_count[0]['moCount']['attributes']['count']])
6334+
if int(svccoreNode_classes_count[0]['moCount']['attributes']['count']) > 240:
6335+
data.append(['svccoreNode', svccoreNode_classes_count[0]['moCount']['attributes']['count']])
6336+
if data:
6337+
result = MANUAL
6338+
6339+
return Result(result=result,headers=headers,data=data,recommended_action=recommended_action,doc_url=doc_url)
6340+
except Exception as e:
6341+
return Result(result=ERROR, msg="Error occurred while fetching svccore object counts: {}".format(str(e)), doc_url=doc_url)
6342+
6343+
63216344
# ---- Script Execution ----
63226345

63236346

@@ -6409,6 +6432,7 @@ class CheckManager:
64096432
validate_32_64_bit_image_check,
64106433
fabric_link_redundancy_check,
64116434
apic_downgrade_compat_warning_check,
6435+
svccore_excessive_data_check,
64126436

64136437
# Faults
64146438
apic_disk_space_faults_check,

docs/docs/validations.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ Items | This Script
3737
[Fabric Link Redundancy][g17] | :white_check_mark: | :no_entry_sign:
3838
[APIC Database Size][g18] | :white_check_mark: | :no_entry_sign:
3939
[APIC downgrade compatibility when crossing 6.2 release][g19]| :white_check_mark: | :no_entry_sign:
40+
[Svccore Excessive Data Check][g20] | :white_check_mark: | :no_entry_sign:
4041

4142
[g1]: #compatibility-target-aci-version
4243
[g2]: #compatibility-cimc-version
@@ -57,6 +58,7 @@ Items | This Script
5758
[g17]: #fabric-link-redundancy
5859
[g18]: #apic-database-size
5960
[g19]: #apic-downgrade-compatibility-when-crossing-62-release
61+
[g20]: #svccore-excessive-data-check
6062

6163
### Fault Checks
6264
Items | Faults | This Script | APIC built-in
@@ -2768,6 +2770,19 @@ Suggestion:
27682770
Contact Cisco TAC to remove any identified misconfigured objects before performing the upgrade to prevent policyelem crashes.
27692771
The [CSCwd40071][68] defect affects versions 5.2(5c) and later with a fix available in 6.0(1g). However, the issue will only be triggered during Apic upgrades crossing 6.0(4c) due to [CSCwh80837][67].
27702772

2773+
2774+
### Svccore Excessive Data Check
2775+
2776+
Due to excessive `svccoreCtrlr` or `svccoreNode` managed objects, Apic gui stuck in loading multiple queries.
2777+
2778+
The svccoreCtrlr and svccoreNode objects represent core files related to Apic and Leaf/Spines process respectively.
2779+
2780+
Due to [CSCws84232][67], the APIC GUI may become unresponsive after login, with dashboards stuck in a continuous “Loading…”state.
2781+
Administrators may be unable to access or operate the APIC GUI, potentially impacting day-to-day management or upgrade.
2782+
2783+
This check will verify the count of the `svccoreCtrlr` Managed Object and raise and alarm with the bug if object count found more than 240. Remove the content or objects of `svccoreCtrlr` or `svccoreNode`. Contact Cisco TAC or upgrade to a release containing the fix for CSCws84232 before proceeding with an upgrade.
2784+
2785+
27712786
[0]: https://github.com/datacenter/ACI-Pre-Upgrade-Validation-Script
27722787
[1]: https://www.cisco.com/c/dam/en/us/td/docs/Website/datacenter/apicmatrix/index.html
27732788
[2]: https://www.cisco.com/c/en/us/support/switches/nexus-9000-series-switches/products-release-notes-list.html
@@ -2838,4 +2853,4 @@ The [CSCwd40071][68] defect affects versions 5.2(5c) and later with a fix availa
28382853
[67]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwh80837
28392854
[68]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwd40071
28402855
[69]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCws84232
2841-
[70]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCvo27498
2856+
[70]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCvo27498
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[
2+
{
3+
"moCount": {
4+
"attributes": {
5+
"childAction": "",
6+
"count": "3",
7+
"dn": "",
8+
"status": ""
9+
}
10+
}
11+
}
12+
]
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[
2+
{
3+
"moCount": {
4+
"attributes": {
5+
"childAction": "",
6+
"count": "32000",
7+
"dn": "",
8+
"status": ""
9+
}
10+
}
11+
}
12+
]
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import os
2+
import pytest
3+
import logging
4+
import importlib
5+
from helpers.utils import read_data
6+
7+
script = importlib.import_module("aci-preupgrade-validation-script")
8+
log = logging.getLogger(__name__)
9+
dir = os.path.dirname(os.path.abspath(__file__))
10+
test_function = "svccore_excessive_data_check"
11+
svccoreClassEntry = 'svccoreCtrlr.json?query-target=self&rsp-subtree-include=count'
12+
svccoreNodeEntry = 'svccoreNode.json?query-target=self&rsp-subtree-include=count'
13+
14+
@pytest.mark.parametrize(
15+
"icurl_outputs, expected_result",
16+
[
17+
# No excessive class entries
18+
(
19+
{svccoreClassEntry: read_data(dir, "svccore_negative.json"),svccoreNodeEntry: read_data(dir, "svccoreNode_negative.json")},
20+
script.PASS,
21+
),
22+
# Excessive class entries found
23+
(
24+
{svccoreClassEntry: read_data(dir, "svccore_positive.json"),svccoreNodeEntry: read_data(dir, "svccoreNode_negative.json")},
25+
script.MANUAL,
26+
),
27+
(
28+
{svccoreClassEntry: read_data(dir, "svccore_positive.json"),svccoreNodeEntry: read_data(dir, "svccoreNode_positive.json")},
29+
script.MANUAL,
30+
),
31+
(
32+
{svccoreClassEntry: read_data(dir, "svccore_negative.json"),svccoreNodeEntry: read_data(dir, "svccoreNode_positive.json")},
33+
script.MANUAL,
34+
)
35+
],
36+
)
37+
38+
def test_logic(run_check,mock_icurl,expected_result):
39+
result = run_check()
40+
assert result.result == expected_result
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[
2+
{
3+
"moCount": {
4+
"attributes": {
5+
"childAction": "",
6+
"count": "3",
7+
"dn": "",
8+
"status": ""
9+
}
10+
}
11+
}
12+
]
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[
2+
{
3+
"moCount": {
4+
"attributes": {
5+
"childAction": "",
6+
"count": "500",
7+
"dn": "",
8+
"status": ""
9+
}
10+
}
11+
}
12+
]

0 commit comments

Comments
 (0)