feat(cmd): collect RDS live and unlock the storage-parity seam - #48
Merged
Merged
Conversation
--rds-region REGION drives the same pkg/rds collector through pkg/provider's SDK adapters. --rds-fixture is untouched and remains a sibling; TestTheLiveRDSCollectorIsReachableFromTheBinary asserts both sources produce a byte-identical report over the same account. --rds-parity fills rds.Config.Parity from DescribeValidDBInstanceModifications and DescribeEvents, on both sources. Without it four fixture instances refuse with no-storage-performance-model; with it that code is gone and 4 no-io-measurement, 2 provisioning-envelope-unknown and 1 gp2-band-unpublished take its place. The cmd-side holder returns a suppression, never ok=false, which would emit neither proposal nor refusal. Degraded is not broken: one retry gated on IsAccessDenied and a get-metric-data error, so a throttle stays fatal and a denied DescribeDBInstances stays fatal. An unreadable tag is not an absent tag — a denied ListTagsForResource warns naming the ARN and the key, and the guardrail refusal disappears rather than collapsing into 'looked and found none'. buildRuntime returns nil on error, so rdsFailure folds warnings recorded before a hard failure into the error. No actuator becomes reachable: TestNoActuatorBecomesReachableThroughTheLivePath asserts a live parity-enabled domain still yields actuatable=false, 0 steps, RefuseReportOnly. 19 test functions, zero credentials or sockets. go.mod and go.sum unchanged. Co-authored-by: kording <74226694+kording@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
--rds-region REGION drives the same pkg/rds collector through pkg/provider's
SDK adapters. --rds-fixture is untouched and remains a sibling;
TestTheLiveRDSCollectorIsReachableFromTheBinary asserts both sources produce a
byte-identical report over the same account.
--rds-parity fills rds.Config.Parity from DescribeValidDBInstanceModifications
and DescribeEvents, on both sources. Without it four fixture instances refuse
with no-storage-performance-model; with it that code is gone and 4
no-io-measurement, 2 provisioning-envelope-unknown and 1 gp2-band-unpublished
take its place. The cmd-side holder returns a suppression, never ok=false, which
would emit neither proposal nor refusal.
Degraded is not broken: one retry gated on IsAccessDenied and a get-metric-data
error, so a throttle stays fatal and a denied DescribeDBInstances stays fatal.
An unreadable tag is not an absent tag — a denied ListTagsForResource warns
naming the ARN and the key, and the guardrail refusal disappears rather than
collapsing into 'looked and found none'. buildRuntime returns nil on error, so
rdsFailure folds warnings recorded before a hard failure into the error.
No actuator becomes reachable: TestNoActuatorBecomesReachableThroughTheLivePath
asserts a live parity-enabled domain still yields actuatable=false, 0 steps,
RefuseReportOnly. 19 test functions, zero credentials or sockets. go.mod and
go.sum unchanged.