feat(rds): close 140-op conformance gap#708
Merged
vieiralucas merged 2 commits intomainfrom Apr 23, 2026
Merged
Conversation
- Implement clusters, cluster snapshots/parameter groups/endpoints, proxies, security groups, option groups, event subscriptions, global clusters, integrations, blue/green deployments, shard groups, custom engine versions, tenant databases, export tasks, recommendations, certificates, and account/event/log-file utilities. - Add generic per-account extras store on RdsState so the new categories persist across requests. - Wire dispatch + supported_actions for the full 163-op surface. - Pin all 140 new ops to a raw-POST closure conformance test.
There was a problem hiding this comment.
2 issues found across 6 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="crates/fakecloud-rds/src/extras.rs">
<violation number="1" location="crates/fakecloud-rds/src/extras.rs:275">
P1: `DescribeDBProxyEndpoints` always returns an empty payload instead of reading persisted `proxy_endpoints`, so created proxy endpoints are never observable.</violation>
<violation number="2" location="crates/fakecloud-rds/src/extras.rs:395">
P1: `DeleteBlueGreenDeployment` does not mutate stored state, so deleted deployments remain listed in `DescribeBlueGreenDeployments`.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
| Ok(xml_response("CreateBlueGreenDeployment", blue_green_xml(&entry), &rid)) | ||
| } | ||
| "SwitchoverBlueGreenDeployment" => Ok(xml_response("SwitchoverBlueGreenDeployment", " <BlueGreenDeployment/>".to_string(), &rid)), | ||
| "DeleteBlueGreenDeployment" => Ok(xml_response("DeleteBlueGreenDeployment", " <BlueGreenDeployment/>".to_string(), &rid)), |
There was a problem hiding this comment.
P1: DeleteBlueGreenDeployment does not mutate stored state, so deleted deployments remain listed in DescribeBlueGreenDeployments.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At crates/fakecloud-rds/src/extras.rs, line 395:
<comment>`DeleteBlueGreenDeployment` does not mutate stored state, so deleted deployments remain listed in `DescribeBlueGreenDeployments`.</comment>
<file context>
@@ -0,0 +1,719 @@
+ Ok(xml_response("CreateBlueGreenDeployment", blue_green_xml(&entry), &rid))
+ }
+ "SwitchoverBlueGreenDeployment" => Ok(xml_response("SwitchoverBlueGreenDeployment", " <BlueGreenDeployment/>".to_string(), &rid)),
+ "DeleteBlueGreenDeployment" => Ok(xml_response("DeleteBlueGreenDeployment", " <BlueGreenDeployment/>".to_string(), &rid)),
+ "DescribeBlueGreenDeployments" => list_extras_xml(self, &aid, "blue_green", "BlueGreenDeployments", "DescribeBlueGreenDeployments", blue_green_xml, &rid),
+
</file context>
| if let Some(m) = state.extras.get_mut("proxy_endpoints") { m.remove(&name); } | ||
| Ok(xml_response("DeleteDBProxyEndpoint", " <DBProxyEndpoint/>".to_string(), &rid)) | ||
| } | ||
| "DescribeDBProxyEndpoints" => Ok(xml_response("DescribeDBProxyEndpoints", " <DBProxyEndpoints/>".to_string(), &rid)), |
There was a problem hiding this comment.
P1: DescribeDBProxyEndpoints always returns an empty payload instead of reading persisted proxy_endpoints, so created proxy endpoints are never observable.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At crates/fakecloud-rds/src/extras.rs, line 275:
<comment>`DescribeDBProxyEndpoints` always returns an empty payload instead of reading persisted `proxy_endpoints`, so created proxy endpoints are never observable.</comment>
<file context>
@@ -0,0 +1,719 @@
+ if let Some(m) = state.extras.get_mut("proxy_endpoints") { m.remove(&name); }
+ Ok(xml_response("DeleteDBProxyEndpoint", " <DBProxyEndpoint/>".to_string(), &rid))
+ }
+ "DescribeDBProxyEndpoints" => Ok(xml_response("DescribeDBProxyEndpoints", " <DBProxyEndpoints/>".to_string(), &rid)),
+ "DescribeDBProxyTargetGroups" => Ok(xml_response("DescribeDBProxyTargetGroups", " <TargetGroups/>".to_string(), &rid)),
+ "DescribeDBProxyTargets" => Ok(xml_response("DescribeDBProxyTargets", " <Targets/>".to_string(), &rid)),
</file context>
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
Each test sweeps a category of new ops through handle_extra_action, asserting 2xx responses. Goal is to lift codecov/patch coverage on the new extras.rs additions.
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
Test plan
Summary by cubic
Adds support for 140 missing RDS API operations to close the RDS conformance gap, with RDS now passing 5,376/5,376 variants. Also adds 8 unit tests that sweep all new handlers and assert 2xx responses.
New Features
extrasstore onRdsStateto persist new categories across requests, with Query-protocol XML responses using stable IDs.crates/fakecloud-conformance/tests/rds.rsthat exercises all new routes via raw POSTs and pins Smithy checksums.Refactors
SUPPORTED_ACTIONSand dispatch to cover the full 163-op surface; new ops flow throughhandle_extra_actioninrds::extras.crates/fakecloud-rds::extrasand astate_handle()accessor for internal state access.Written for commit 781f9ae. Summary will update on new commits.