diff --git a/aci-preupgrade-validation-script.py b/aci-preupgrade-validation-script.py index 5e79f56e..a0e8e2ec 100644 --- a/aci-preupgrade-validation-script.py +++ b/aci-preupgrade-validation-script.py @@ -5630,7 +5630,12 @@ def clock_signal_component_failure_check(**kwargs): result = PASS headers = ['Pod', "Node", "Slot", "Model", "Serial Number"] data = [] - recommended_action = 'Run the SN string through the Serial Number Validation tool (linked within doc url) to check for FN64251.\n\tSN String:\n\t' + recommended_action = ( + 'Review the listed serial numbers using FN64251. Products shipped after December 5, 2016 are not affected ' + 'and can be ignored. For products shipped on or before December 5, 2016, or with an unknown ship date, ' + 'contact Cisco TAC to confirm whether they are affected. A V01 Version ID (VID) is only possibly affected ' + 'and is not conclusive because some unaffected products also use V01.\n\tSN String:\n\t' + ) doc_url = 'https://datacenter.github.io/ACI-Pre-Upgrade-Validation-Script/validations/#nexus-950x-fm-or-lc-might-fail-to-boot-after-reload' eqptFC_api = 'eqptFC.json' diff --git a/docs/docs/validations.md b/docs/docs/validations.md index f7886811..05a2d799 100644 --- a/docs/docs/validations.md +++ b/docs/docs/validations.md @@ -2645,7 +2645,7 @@ The script checks if your upgrade is susceptible to this defect from both versio ### Nexus 950X FM or LC Might Fail to boot after reload A clock signal component manufactured by one supplier, and included in some Cisco products, has been seen to degrade over time in some units. -Although the Cisco products with these components are currently performing normally, we expect product failures to increase over the years, beginning after the unit has been in operation for approximately 18 months. Additional details are document in [FN64251][39] +Although the Cisco products with these components are currently performing normally, we expect product failures to increase over the years, beginning after the unit has been in operation for approximately 18 months. Additional details are documented in [FN64251][39]. The matching defect is [CSCvg26013][40]. @@ -2660,7 +2660,9 @@ Line Card - N9K-X9732C-EX -If alerted, check if identified Serial Numbers are affected using the [Serial Number Validation Tool][41]. +If alerted, review the serial numbers reported by the check against [FN64251][39]. Products shipped after December 5, 2016 are not affected and can be ignored. For products shipped on or before December 5, 2016, or with an unknown ship date, contact Cisco TAC with the reported serial numbers to confirm whether they are affected. + +The Field Notice identifies V01 as possibly affected, but the VID is not conclusive because some unaffected products also use V01. The VID of a working module can be obtained with the `show inventory` command; a failed module will not be recognized. ### Stale Decommissioned Spine @@ -2887,7 +2889,6 @@ Contact Cisco TAC for next steps. For more details, refer to the workaround in [ [38]: https://www.cisco.com/c/en/us/td/docs/dcn/aci/apic/6x/verified-scalability/cisco-aci-verified-scalability-guide-612.html [39]: https://www.cisco.com/c/en/us/support/docs/field-notices/642/fn64251.html [40]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCvg26013 -[41]: https://snvui.cisco.com/snv/FN64251 [42]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwf58763 [43]: https://www.cisco.com/c/en/us/support/docs/field-notices/740/fn74050.html [44]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwd65255 @@ -2923,4 +2924,3 @@ Contact Cisco TAC for next steps. For more details, refer to the workaround in [ [74]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwm42741 [75]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwt69100 [76]: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwt38698 - diff --git a/tests/checks/clock_signal_component_failure_check/test_clock_signal_component_failure_check.py b/tests/checks/clock_signal_component_failure_check/test_clock_signal_component_failure_check.py index a1b017e5..7d4b1fcd 100644 --- a/tests/checks/clock_signal_component_failure_check/test_clock_signal_component_failure_check.py +++ b/tests/checks/clock_signal_component_failure_check/test_clock_signal_component_failure_check.py @@ -19,7 +19,7 @@ @pytest.mark.parametrize( - "icurl_outputs, expected_result", + "icurl_outputs, expected_result, expected_serials", # Positive cases, one or both classes return an affected model [ ( @@ -28,6 +28,7 @@ eqptLC_api: read_data(dir, "eqptLC_POS.json") }, script.MANUAL, + ["FOC235053QS", "FOC23506V60", "FOC23506V3J", "FOC235053QU", "FOC235053MR", "FDO23260QX5"], ), ( { @@ -35,6 +36,7 @@ eqptLC_api: read_data(dir, "eqptLC_NEG.json") }, script.MANUAL, + ["FOC235053QS", "FOC23506V60", "FOC23506V3J", "FOC235053QU", "FOC235053MR"], ), ( { @@ -42,6 +44,7 @@ eqptLC_api: read_data(dir, "eqptLC_POS.json") }, script.MANUAL, + ["FDO23260QX5"], ), # Both classes return empty ( @@ -50,9 +53,18 @@ eqptLC_api: read_data(dir, "eqptLC_NEG.json") }, script.PASS, + [], ) ], ) -def test_logic(run_check, mock_icurl, expected_result): +def test_logic(run_check, mock_icurl, expected_result, expected_serials): result = run_check() assert result.result == expected_result + if expected_result == script.MANUAL: + assert "shipped after December 5, 2016 are not affected" in result.recommended_action + assert "on or before December 5, 2016" in result.recommended_action + assert "contact Cisco TAC" in result.recommended_action + assert "V01 Version ID (VID) is only possibly affected" in result.recommended_action + assert all(serial in result.recommended_action for serial in expected_serials) + assert "chat interface" not in result.recommended_action + assert "Serial Number Validation tool" not in result.recommended_action