checks: report APIC database collection errors - #410
Conversation
Report missing, empty, unavailable, or malformed mitmocounters data as an explicit error instead of passing incomplete collection. Preserve any oversized-class findings and add regression coverage for sorting and threshold behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Live validation findings on APIC 6.0(8e):
I am updating this PR to retry each legacy counter read a bounded number of times, capture the final command error instead of discarding stderr, and retain ERROR behavior when all attempts fail. |
Retry each legacy mitmocounters read up to three times and capture the final command error when collection remains unavailable. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Integration validation update:
This validates the successful collection path in the live environment. Unit coverage separately verifies fail-once/succeed-on-retry and persistent-failure behavior. The overall integration job remains red for unrelated existing fabric/check failures. |
Integration Test SummaryPipeline executed against seven current/target version combinations.
The retry logic was exercised in six runs. Each retried an unavailable counter file three times, reported the persistent collection error, and preserved valid data collected from other DME services. Other non-passing results consisted of:
No integration run encountered an empty successful response, so that specific retry path remains covered by unit tests. Overall, the results confirm the original retry behavior works as expected and does not discard successfully collected findings. |
Summary
apic_database_size_checkfrom reporting PASS when legacymitmocountersfiles are missing, empty, unavailable, or malformed/debugpopulationWhy
On affected pre-6.1(3a) releases, a missing
mitmocounters/mofile causedcatto fail while the finalsortprocess returned success. The check then received no rows and incorrectly reported PASS. Live 6.0(8e) testing also showed that the dynamic/debugfiles can be transiently unavailable even though they are subsequently readable by the sametechsupportuser.Validation
The overall integration job remains red due to unrelated existing fabric/check failures.
Fixes #327