Skip to content

Commit ef6d1ce

Browse files
committed
issue NewValidation for CSCws84232
Fixes #333 solved
1 parent 128ab55 commit ef6d1ce

7 files changed

Lines changed: 17085 additions & 0 deletions

File tree

aci-preupgrade-validation-script.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6026,6 +6026,50 @@ def apic_downgrade_compat_warning_check(cversion, tversion, **kwargs):
60266026
return Result(result=result, headers=headers, data=data, recommended_action=recommended_action, doc_url=doc_url)
60276027

60286028

6029+
@check_wrapper(check_title="Ctrlr and Node svccore count")
6030+
def svccore_ctrl_and_node_check(tversion, **kwargs):
6031+
result = FAIL_UF
6032+
headers = ["Node ID", "svccoreCtrlr/Node Count"]
6033+
data = []
6034+
recommended_action = 'Contact TAC to remove the exceeding svccoreCtrlr, svccoreNode MOs before upgrade.'
6035+
doc_url = "https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#ctrlr-and-node-svccore-count"
6036+
6037+
if not tversion:
6038+
return Result(result=MANUAL, msg=TVER_MISSING)
6039+
6040+
if tversion.newer_than("6.2(1a)"):
6041+
return Result(result=NA, msg='Targer version not affected')
6042+
6043+
svccoreCtrlr = icurl("class","svccoreCtrlr.json")
6044+
svccoreNode = icurl( "class","svccoreNode.json")
6045+
6046+
svccoreCtrlr_mos = len(svccoreCtrlr)
6047+
svccoreNode_mos = len(svccoreNode)
6048+
total_mos = svccoreCtrlr_mos + svccoreNode_mos
6049+
6050+
if total_mos > 240:
6051+
files_per_node = {}
6052+
for mo in chain(svccoreCtrlr, svccoreNode):
6053+
if mo.get("svccoreCtrlr"):
6054+
node = mo["svccoreCtrlr"]["attributes"]["ctrlrId"]
6055+
else:
6056+
node = mo["svccoreNode"]["attributes"]["nodeId"]
6057+
files_per_node[node] = files_per_node.get(node, 0 ) + 1
6058+
6059+
for node, files in files_per_node.items():
6060+
data.append([node, files])
6061+
6062+
if not data:
6063+
result = PASS
6064+
return Result(
6065+
result=result,
6066+
headers=headers,
6067+
data=data,
6068+
recommended_action=recommended_action,
6069+
doc_url=doc_url,
6070+
)
6071+
6072+
60296073
# ---- Script Execution ----
60306074

60316075

@@ -6188,6 +6232,7 @@ class CheckManager:
61886232
standby_sup_sync_check,
61896233
isis_database_byte_check,
61906234
configpush_shard_check,
6235+
svccore_ctrl_and_node_check,
61916236

61926237
]
61936238
ssh_checks = [

docs/docs/validations.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ Items | Defect | This Script
193193
[Stale pconsRA Object][d26] | CSCwp22212 | :warning:{title="Deprecated"} | :no_entry_sign:
194194
[ISIS DTEPs Byte Size][d27] | CSCwp15375 | :white_check_mark: | :no_entry_sign:
195195
[Policydist configpushShardCont Crash][d28] | CSCwp95515 | :white_check_mark: |
196+
[Ctrlr and Node svccore count][d29] | CSCws84232 | :white_check_mark: | :no_entry_sign:
196197

197198
[d1]: #ep-announce-compatibility
198199
[d2]: #eventmgr-db-size-defect-susceptibility
@@ -222,6 +223,7 @@ Items | Defect | This Script
222223
[d26]: #stale-pconsra-object
223224
[d27]: #isis-dteps-byte-size
224225
[d28]: #policydist-configpushshardcont-crash
226+
[d29]: #ctrlr-and-node-svccore-count
225227

226228

227229
## General Check Details
@@ -2648,6 +2650,15 @@ Due to [CSCwp95515][59], upgrading to an affected version while having any `conf
26482650
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.
26492651

26502652

2653+
### Ctrlr and Node svcore count
2654+
2655+
ACI creates a svccoreCtrlr (for APICs) or svccoreNode (for ACI Switches) MO any time a Service crashes with a Core, thus maintaining a record per services per node.
2656+
2657+
Due to [CSCws84232][62] if the number of these records is considerable (+200), upon upgrade the APIC dashboards can become stuck in "Loading..." and the GUI becomes unresponsive.
2658+
2659+
If the script alerts about the number of MOs in the database, Cisco TAC must be contacted to clean any exceeding record before the upgrade.
2660+
2661+
26512662
[0]: https://github.com/datacenter/ACI-Pre-Upgrade-Validation-Script
26522663
[1]: https://www.cisco.com/c/dam/en/us/td/docs/Website/datacenter/apicmatrix/index.html
26532664
[2]: https://www.cisco.com/c/en/us/support/switches/nexus-9000-series-switches/products-release-notes-list.html
@@ -2710,3 +2721,4 @@ If any instances of `configpushShardCont` are flagged by this script, Cisco TAC
27102721
[59]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwp95515
27112722
[60]: https://www.cisco.com/c/en/us/solutions/collateral/data-center-virtualization/application-centric-infrastructure/white-paper-c11-743951.html#Inter
27122723
[61]: https://www.cisco.com/c/en/us/solutions/collateral/data-center-virtualization/application-centric-infrastructure/white-paper-c11-743951.html#EnablePolicyCompression
2724+
[62]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCws84232

0 commit comments

Comments
 (0)