fix(rds): round-trip option-group Options, event-sub source ids, global-cluster/integration/proxy-target modifies#1950
Merged
Conversation
…al-cluster/integration/proxy-target modifies Bug-hunt 2026-06-25 Tier-1 RDS extras cluster — several Modify/Register ops parsed input but returned/persisted nothing, so read-back showed the default. - ModifyOptionGroup: maintain an effective Options list (upsert OptionsToInclude by name, drop OptionsToRemove) and render it in option_group_xml. Previously the Modify response and every DescribeOptionGroups hardcoded an empty <Options/>. - CreateEventSubscription: capture SourceIds / EventCategories and render them in SourceIdsList / EventCategoriesList; AddSourceIdentifierToSubscription / RemoveSourceIdentifierFromSubscription now mutate the persisted list and return the subscription. Fixes a perpetual diff for Terraform aws_db_event_subscription with source_ids / event_categories. - ModifyGlobalCluster / FailoverGlobalCluster / SwitchoverGlobalCluster / RemoveFromGlobalCluster: load, apply DeletionProtection / EngineVersion / rename, persist, and return the wrapped GlobalCluster (were no-op empty <GlobalCluster/>). - ModifyIntegration: load by name or ARN, apply DataFilter / Description / rename, persist, return the updated Integration (was no-op empty <Integration/>). - RegisterDBProxyTargets / DescribeDBProxyTargets / DeregisterDBProxyTargets: persist registered RDS_INSTANCE / TRACKED_CLUSTER targets and reflect them on Describe (were a register-succeeds / describe-empty stub). Updated the extras unit tests that encoded the old stub shapes (now require the AWS-mandated params + assert the round-trips); added focused round-trip tests for event-sub source ids, proxy targets, and global-cluster deletion protection. All three RDS tfacc shards (param/option/event-global) still pass end-to-end.
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.
Summary
Bug-hunt 2026-06-25 Tier-1 — the RDS extras round-trip cluster. Several Modify/Register ops parsed their input but returned/persisted nothing, so read-back showed the default (write-succeeds / read-shows-default stubs). Surfaced on the surface the recent tfacc batches (#1947-#1949) deepened.
Optionslist (upsertOptionsToIncludeby name, dropOptionsToRemove) and renders it; previously the Modify response and everyDescribeOptionGroupshardcoded empty<Options/>.CreateEventSubscriptionnow captures them and rendersSourceIdsList/EventCategoriesList;AddSourceIdentifierToSubscription/RemoveSourceIdentifierFromSubscriptionmutate the persisted list and return the subscription. Fixes a perpetual diff for Terraformaws_db_event_subscriptionwithsource_ids/event_categories.DeletionProtection/EngineVersion/ rename, persist, return the wrappedGlobalCluster(were no-op empty<GlobalCluster/>).<Integration/>).RDS_INSTANCE/TRACKED_CLUSTERtargets and reflect them on Describe (were register-succeeds / describe-empty stubs).Test plan
cargo test -p fakecloud-rds— 225 passed.cargo clippy -p fakecloud-rds --all-targets -- -D warningsclean;cargo fmtapplied.rds-param-groups,rds-option-groups,rds-event-global(1 passed each via the harness).Surface check
Summary by cubic
Fixes RDS extras round‑trip behavior by persisting and returning data for Option Groups, Event Subscriptions, Global Clusters, Integrations, and DB Proxy targets so reads match writes. Removes empty responses and resolves Terraform diffs for
aws_db_event_subscriptionand proxy targets.ModifyOptionGroupnow maintains anOptionslist (upsert includes, drop removes) andDescribeOptionGroupsrenders it.CreateEventSubscriptionsavesSourceIdsListandEventCategoriesList; add/remove source ID updates the list and returns the subscription (fixes Terraform diff).Modify/Failover/Switchover/RemoveFromGlobalClusterload, applyDeletionProtection/EngineVersion/rename, persist, and return the updatedGlobalCluster.ModifyIntegrationloads by name or ARN, appliesDataFilter/Description/rename, persists, and returns the updatedIntegration.Register/Deregisternow persistRDS_INSTANCE/TRACKED_CLUSTERtargets andDescribeDBProxyTargetsreturns them.Written for commit d5cfb84. Summary will update on new commits.