fix(rds): persist Copy/Modify/Restore extras + activity-stream + PI fields (bug-hunt)#2298
Open
vieiralucas wants to merge 2 commits into
Open
fix(rds): persist Copy/Modify/Restore extras + activity-stream + PI fields (bug-hunt)#2298vieiralucas wants to merge 2 commits into
vieiralucas wants to merge 2 commits into
Conversation
CI test build (fakecloud bin --tests) failed E0063: the ctor sweep for the new DbInstance.activity_stream field missed two #[cfg(test)] initializers in the server bin (reset.rs seed + introspection.rs test). Both set None.
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
A cluster of RDS
Copy*/Modify*/Restore*"extras" ops returned canned/hardcoded XML but never persisted to state, so a subsequentDescribeshowed nothing (or a default). Their cluster-level analogs already persisted correctly a few hundred lines away in the same file. This mirrors that persistence pattern so every op round-trips through itsDescribe.Behavior-only fix. No SDK/doc/operation-count surface change.
HIGH
DBSnapshot, clones it (including dump data) intostate.snapshotsunder the target id, and renders from the persisted record.DescribeDBSnapshots --db-snapshot-identifier <target>now returns the copy instead ofDBSnapshotNotFoundFault.MEDIUM
state.parameter_groups.restoreadd/remove values) on the snapshot and read it back; rejects a value present in both add and remove lists. ModifyDBSnapshot now appliesEngineVersion/OptionGroupName.Capacityto the cluster and echoes real values (was hardcodedCurrentCapacity=4+ cluster idx); the capacity round-trips throughDescribeDBClusters.HttpEndpointEnabledonto the cluster (viaResourceArn) the same wayModifyDBClusterdoes;DescribeDBClustersreflects it. Unknown resource returns the declaredResourceNotFoundFault.<DBCluster/>).MonitoringRoleArn,PerformanceInsightsKMSKeyId,PerformanceInsightsRetentionPeriod(their companions were already applied).LOW
DBSubnetGroupDescription.MaxACU/MinACU/ComputeRedundancy.DbInstance::activity_streamfield) or Aurora cluster named byResourceArn, rendered byDescribeDBInstances/DescribeDBClusters(was hardcoded<ActivityStreamStatus>stopped).ModifyActivityStream/HTTP-endpoint ops now return only Smithy-declared error shapes.State-struct change: added
DbInstance::activity_stream(+ActivityStreamConfig) andDbSnapshot::snapshot_attributes; swept all constructors repo-wide (includingfakecloud-cloudformation).Test plan
crates/fakecloud-rds/src/service_tests.rsandextras/tests.rs: copy-then-describe, modify-attribute-then-describe, enable-http-endpoint-then-describe, capacity echo + describe round-trip, restore-from-s3, shard-group capacity, activity-stream persist, PI/monitoring-role apply, subnet-group description.crates/fakecloud-e2e/tests/rds_extras_persistence.rs(real AWS SDK, container-free): http endpoint, capacity, copy param group, restore-from-s3, activity stream on a cluster, subnet-group description. All 6 pass.cargo nextest run -p fakecloud-rds— 255 passing.cargo clippy -p fakecloud-rds --all-targets -- -D warningsclean;cargo fmt.checkPASSED with no regressions; RDS moved from 5487/5487 baseline to 5500/5518 with every changed op at 100% (fixed an initial regression where http-endpoint/activity-stream ops returned undeclared error shapes).Summary by cubic
Fixes RDS extras so Copy/Modify/Restore operations persist to state and round-trip through Describe, and makes activity stream and performance insights settings stick. Removes canned responses, returns correct error shapes, and improves parity with AWS.
Bug Fixes
Migration
DbInstance::activity_streamandDbSnapshot::snapshot_attributes. Constructors updated across crates and tests to defaultactivity_streamto None. No SDK or operation surface changes.Written for commit b23b1f4. Summary will update on new commits.