Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CSCwm92166 new validation #179

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 45 additions & 1 deletion aci-preupgrade-validation-script.py
Original file line number Diff line number Diff line change
Expand Up @@ -4243,6 +4243,49 @@ def validate_32_64_bit_image_check(index, total_checks, tversion, **kwargs):
return result


def fc_ex_model_check(index, total_checks, tversion, **kwargs):
title = 'FC/FCOE support for -EX platforms'
result = PASS
msg = ''
headers = ["Potential Defect", "Reason"]
data = []
recommended_action = 'The target version is not recommended. Refer to bug CSCwm92166 for further details.'
doc_url = 'https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwm92166'
print_title(title, index, total_checks)

if not tversion:
print_result(title, MANUAL, "Target version not supplied. Skipping.")
return MANUAL

if tversion.same_as("6.0(7e)") or tversion.same_as("6.1(1f)"):
fcEntitys = icurl('class', 'fcEntity.json')
node_dns = []

if fcEntitys:
for fcEntity in fcEntitys:
node_dns.append(fcEntity['fcEntity']['attributes']['dn'].split('/sys')[0])
else:
result = NA
msg = 'No FC/FCOE configuration found'


if node_dns:
fabricNodes = icurl('class', 'fabricNode.json')
for node in fabricNodes:
node_dn = node['fabricNode']['attributes']['dn']
if node_dn in node_dns:
model = node['fabricNode']['attributes']['model']
if model not in ["N9K-C93180YC-FX", "N9K-C93108TC-FX"]:
result = FAIL_O
data.append(["CSCwm92166", "Target Version susceptible to Defect"])
break
else:
result = NA
msg = 'Target version not applicable'

print_result(title, result, msg, headers, data, recommended_action=recommended_action, doc_url=doc_url)
return result

if __name__ == "__main__":
prints(' ==== %s%s, Script Version %s ====\n' % (ts, tz, SCRIPT_VERSION))
prints('!!!! Check https://github.com/datacenter/ACI-Pre-Upgrade-Validation-Script for Latest Release !!!!\n')
Expand Down Expand Up @@ -4341,7 +4384,8 @@ def validate_32_64_bit_image_check(index, total_checks, tversion, **kwargs):
invalid_fex_rs_check,
lldp_custom_int_description_defect_check,
rtmap_comm_match_defect_check,
static_route_overlap_check
static_route_overlap_check,
fc_ex_model_check

]
summary = {PASS: 0, FAIL_O: 0, FAIL_UF: 0, ERROR: 0, MANUAL: 0, POST: 0, NA: 0, 'TOTAL': len(checks)}
Expand Down
15 changes: 15 additions & 0 deletions docs/docs/validations.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,8 @@ Items | Defect | This Script
[LLDP Custom Interface Description][d15] | CSCwf00416 | :white_check_mark: | :no_entry_sign: |:no_entry_sign:
[Route-map Community Match][d16] | CSCwb08081 | :white_check_mark: | :no_entry_sign: |:no_entry_sign:
[L3out /32 overlap with BD Subnet][d17] | CSCwb91766 | :white_check_mark: | :no_entry_sign: |:no_entry_sign:
[FC/FCOE support for -EX switches][d18] | CSCwm92166 | :white_check_mark: | :no_entry_sign: |:no_entry_sign:



[d1]: #ep-announce-compatibility
Expand All @@ -178,6 +180,7 @@ Items | Defect | This Script
[d15]: #lldp-custom-interface-description
[d16]: #route-map-community-match
[d17]: #l3out-32-overlap-with-bd-subnet
[d18]: #fcfcoe-support-for--ex-switches


## General Check Details
Expand Down Expand Up @@ -2181,6 +2184,16 @@ Due to defect [CSCwb91766][27], L3out /32 Static Routes that overlap with BD Sub

If found, the target version of your upgrade should be a version with a fix for CSCwb91766. Otherwise, the other option is to change the routing design of the affected fabric.

### FC/FCOE support for -EX switches

Due to defect [CSCwm92166][31], ACI switches with model numbers ending in -EX no longer support FC/FCOE configurations after upgrading to releases 6.0(7e) or 6.1(1f). The FC/FCOE interface will remain down, and fault F4511 will be raised.

For a complete list of devices supported for FC/FCOE, refer to the [Cisco APIC Layer 2 Networking Configuration Guide, Release 6.1(x)][32].

The script checks if your upgrade is susceptible to this defect from both version and configuration perspectives. If the defect is found, avoid upgrading to the affected release or ensure your upgrade includes a version that addresses the CSCwm92166 fix.




[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
Expand Down Expand Up @@ -2213,3 +2226,5 @@ If found, the target version of your upgrade should be a version with a fix for
[28]: https://www.cisco.com/c/en/us/td/docs/dcn/aci/apic/all/apic-installation-aci-upgrade-downgrade/Cisco-APIC-Installation-ACI-Upgrade-Downgrade-Guide/m-aci-upgrade-downgrade-architecture.html#Cisco_Reference.dita_22480abb-4138-416b-8dd5-ecde23f707b4
[29]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwb86706
[30]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwf44222
[31]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwm92166
[32]: https://www.cisco.com/c/en/us/td/docs/dcn/aci/apic/6x/l2-configuration/cisco-apic-layer-2-networking-configuration-guide-61x/fcoe-connections-61x.html
121 changes: 121 additions & 0 deletions tests/fc_ex_model_check/fabricNode_NEG.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
{
"totalCount": "4",
"imdata": [
{
"fabricNode": {
"attributes": {
"adSt": "on",
"annotation": "",
"apicType": "apic",
"childAction": "",
"delayedHeartbeat": "no",
"dn": "topology/pod-1/node-101",
"extMngdBy": "",
"fabricSt": "active",
"id": "101",
"lastStateModTs": "2024-07-31T08:15:33.395+00:00",
"lcOwn": "local",
"modTs": "2024-07-31T07:47:19.724+00:00",
"model": "N9K-C93180YC-FX",
"monPolDn": "uni/fabric/monfab-default",
"nameAlias": "",
"nodeType": "unspecified",
"rn": "node-101",
"role": "leaf",
"status": "",
"uid": "0",
"userdom": "",
"vendor": "Cisco Systems, Inc",
"version": "n9000-15.2(7g)"
}
}
},
{
"fabricNode": {
"attributes": {
"adSt": "on",
"annotation": "",
"apicType": "apic",
"childAction": "",
"delayedHeartbeat": "no",
"dn": "topology/pod-1/node-102",
"extMngdBy": "",
"fabricSt": "active",
"id": "102",
"lastStateModTs": "2024-07-31T08:19:39.145+00:00",
"lcOwn": "local",
"modTs": "2024-07-31T07:51:25.474+00:00",
"model": "N9K-C93180YC-FX",
"monPolDn": "uni/fabric/monfab-default",
"nameAlias": "",
"nodeType": "unspecified",
"rn": "node-102",
"role": "leaf",
"status": "",
"uid": "0",
"userdom": "",
"vendor": "Cisco Systems, Inc",
"version": "n9000-15.2(7g)"
}
}
},
{
"fabricNode": {
"attributes": {
"adSt": "on",
"annotation": "",
"apicType": "apic",
"childAction": "",
"delayedHeartbeat": "no",
"dn": "topology/pod-1/node-1",
"extMngdBy": "",
"fabricSt": "unknown",
"id": "1",
"lastStateModTs": "2024-07-31T08:14:41.486+00:00",
"lcOwn": "local",
"modTs": "2024-07-31T07:46:27.815+00:00",
"model": "APIC-SERVER-M2",
"monPolDn": "uni/fabric/monfab-default",
"nameAlias": "",
"nodeType": "unspecified",
"rn": "node-1",
"role": "controller",
"status": "",
"uid": "0",
"userdom": "",
"vendor": "Cisco Systems, Inc",
"version": "5.2(7g)"
}
}
},
{
"fabricNode": {
"attributes": {
"adSt": "on",
"annotation": "",
"apicType": "apic",
"childAction": "",
"delayedHeartbeat": "no",
"dn": "topology/pod-1/node-201",
"extMngdBy": "",
"fabricSt": "active",
"id": "201",
"lastStateModTs": "2024-07-31T07:46:20.513+00:00",
"lcOwn": "local",
"modTs": "2024-07-31T07:47:11.927+00:00",
"model": "N9K-C9332C",
"monPolDn": "uni/fabric/monfab-default",
"nameAlias": "",
"nodeType": "unspecified",
"rn": "node-201",
"role": "spine",
"status": "",
"uid": "0",
"userdom": "",
"vendor": "Cisco Systems, Inc",
"version": "n9000-15.2(7g)"
}
}
}
]
}
121 changes: 121 additions & 0 deletions tests/fc_ex_model_check/fabricNode_POS.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
{
"totalCount": "4",
"imdata": [
{
"fabricNode": {
"attributes": {
"adSt": "on",
"annotation": "",
"apicType": "apic",
"childAction": "",
"delayedHeartbeat": "no",
"dn": "topology/pod-1/node-101",
"extMngdBy": "",
"fabricSt": "active",
"id": "101",
"lastStateModTs": "2024-07-31T08:15:33.395+00:00",
"lcOwn": "local",
"modTs": "2024-07-31T07:47:19.724+00:00",
"model": "N9K-C93180YC-EX",
"monPolDn": "uni/fabric/monfab-default",
"nameAlias": "",
"nodeType": "unspecified",
"rn": "node-101",
"role": "leaf",
"status": "",
"uid": "0",
"userdom": "",
"vendor": "Cisco Systems, Inc",
"version": "n9000-15.2(7g)"
}
}
},
{
"fabricNode": {
"attributes": {
"adSt": "on",
"annotation": "",
"apicType": "apic",
"childAction": "",
"delayedHeartbeat": "no",
"dn": "topology/pod-1/node-102",
"extMngdBy": "",
"fabricSt": "active",
"id": "102",
"lastStateModTs": "2024-07-31T08:19:39.145+00:00",
"lcOwn": "local",
"modTs": "2024-07-31T07:51:25.474+00:00",
"model": "N9K-C93180YC-FX",
"monPolDn": "uni/fabric/monfab-default",
"nameAlias": "",
"nodeType": "unspecified",
"rn": "node-102",
"role": "leaf",
"status": "",
"uid": "0",
"userdom": "",
"vendor": "Cisco Systems, Inc",
"version": "n9000-15.2(7g)"
}
}
},
{
"fabricNode": {
"attributes": {
"adSt": "on",
"annotation": "",
"apicType": "apic",
"childAction": "",
"delayedHeartbeat": "no",
"dn": "topology/pod-1/node-1",
"extMngdBy": "",
"fabricSt": "unknown",
"id": "1",
"lastStateModTs": "2024-07-31T08:14:41.486+00:00",
"lcOwn": "local",
"modTs": "2024-07-31T07:46:27.815+00:00",
"model": "APIC-SERVER-M2",
"monPolDn": "uni/fabric/monfab-default",
"nameAlias": "",
"nodeType": "unspecified",
"rn": "node-1",
"role": "controller",
"status": "",
"uid": "0",
"userdom": "",
"vendor": "Cisco Systems, Inc",
"version": "5.2(7g)"
}
}
},
{
"fabricNode": {
"attributes": {
"adSt": "on",
"annotation": "",
"apicType": "apic",
"childAction": "",
"delayedHeartbeat": "no",
"dn": "topology/pod-1/node-201",
"extMngdBy": "",
"fabricSt": "active",
"id": "201",
"lastStateModTs": "2024-07-31T07:46:20.513+00:00",
"lcOwn": "local",
"modTs": "2024-07-31T07:47:11.927+00:00",
"model": "N9K-C9332C",
"monPolDn": "uni/fabric/monfab-default",
"nameAlias": "",
"nodeType": "unspecified",
"rn": "node-201",
"role": "spine",
"status": "",
"uid": "0",
"userdom": "",
"vendor": "Cisco Systems, Inc",
"version": "n9000-15.2(7g)"
}
}
}
]
}
1 change: 1 addition & 0 deletions tests/fc_ex_model_check/fcEntity_NEG.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[]
39 changes: 39 additions & 0 deletions tests/fc_ex_model_check/fcEntity_POS.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"totalCount": "2",
"imdata": [
{
"fcEntity": {
"attributes": {
"adminSt": "enabled",
"childAction": "",
"dn": "topology/pod-1/node-102/sys/fc",
"lcOwn": "local",
"modTs": "2024-07-31T08:05:17.632+00:00",
"monPolDn": "uni/fabric/monfab-default",
"name": "",
"operErr": "",
"operSt": "enabled",
"rn": "fc",
"status": ""
}
}
},
{
"fcEntity": {
"attributes": {
"adminSt": "enabled",
"childAction": "",
"dn": "topology/pod-1/node-101/sys/fc",
"lcOwn": "local",
"modTs": "2024-07-31T08:06:14.752+00:00",
"monPolDn": "uni/fabric/monfab-default",
"name": "",
"operErr": "",
"operSt": "enabled",
"rn": "fc",
"status": ""
}
}
}
]
}
Loading