Skip to content

faults: Add F2421 RTC battery validation - #412

Merged
monrog2 merged 7 commits into
v4.2.0-devfrom
issue-351-rtc-battery-fault
Aug 12, 2026
Merged

faults: Add F2421 RTC battery validation#412
monrog2 merged 7 commits into
v4.2.0-devfrom
issue-351-rtc-battery-fault

Conversation

@monrog2

@monrog2 monrog2 commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add an upgrade-blocking check for active F2421 faults reporting the exact The RTC battery voltage is low reason
  • scope the APIC faultInst query by both fault code and RTC-low description, then enforce exact reason matching client-side
  • report affected pod, node, supervisor, severity, and lifecycle while preserving malformed active rows
  • document remediation and add issue-derived coverage for active, stale, unrelated-reason, empty, and malformed responses

Validation

  • python3 -m py_compile aci-preupgrade-validation-script.py tests/checks/rtc_battery_voltage_low_check/test_rtc_battery_voltage_low_check.py
  • git diff --check
  • focused tests: 5 passed
  • full suite: 921 passed

Closes #351

Fixes #351

Block upgrades when an active F2421 reports the exact RTC battery voltage low reason, while ignoring stale and unrelated fault instances. Include issue-derived coverage and validation guidance.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

@monrog2 monrog2 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Blocking feedback: the RTC battery fault is detected correctly, but its result category understates the documented operational impact. GitHub does not allow the PR author to submit a Request changes review on their own PR.

Comment thread aci-preupgrade-validation-script.py Outdated
monrog2 and others added 5 commits August 3, 2026 14:42
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add resource_group for sequential execution across jobs
- Split single integration test into 6 version-specific jobs:
  - 5.2(4d) -> 5.2(8f): 5.x internal upgrades
  - 5.2(4d) -> 6.0(2h): 5.x to 6.0.x upgrades
  - 5.2(6e) -> 6.0(5a): 5.x to 6.0.x upgrades
  - 5.2(8d) -> 6.1(1f): 5.x to 6.1.x upgrades
  - 5.3(2d) -> 6.1(4h): 5.x to 6.1.x upgrades
  - 6.0(2a) -> 6.1(4h): 6.x internal upgrades
- Add --cversion and --tversion flags to runner.py invocation
- Add timeout (45m) and retry on runner failure
- Use YAML template to reduce duplication

This enables testing version-dependent check logic across
multiple upgrade paths while protecting scale fabrics via
resource_group sequential execution.
@monrog2

monrog2 commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator Author

Integration run summary (pipeline 202, sanitized):

  • Python 2.7 and 3.8 unit-test jobs passed.
  • The RTC battery/F2421 validation executed successfully in 110 captured fabric runs: all reported passed, with no failure detail.
  • Every corresponding F2421 API query returned zero matching active faults, so this run validates the APIC-compatible query and clean-fabric path.
  • The active-fault FAIL - OUTAGE WARNING!! path remains covered by the focused unit test (5 passed); it was not exercised because no test fabric reported F2421.
  • The seven integration jobs ended failed due to pre-existing validation findings in the test environment; the RTC validation did not produce any of those findings.

Individual fabric identifiers and artifact locations intentionally omitted.

@monrog2
monrog2 merged commit f1dc584 into v4.2.0-dev Aug 12, 2026
3 checks passed
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.

1 participant