test(tfacc): wire RDS DB + cluster parameter groups + fix round-trip fidelity#1947
Merged
Conversation
…fidelity
Un-defers RDS parameter groups (previously held out of tfacc for a
Modify-then-Describe round-trip discrepancy). New rds-param-groups shard
runs TestAccRDSParameterGroup_basic and TestAccRDSClusterParameterGroup_basic;
CI matrix picks it up via the tfacc_shards bin.
Fidelity fixes the upstream suite surfaced:
- DB & cluster parameters now round-trip ApplyMethod (immediate /
pending-reboot). The provider defaults apply_method to "immediate" and
drifted on every plan because DescribeDB(Cluster)Parameters omitted the
field. Stored per-parameter (backward-compatible #[serde(default)] map for
DB groups; sibling map for cluster groups).
- ResetDBParameterGroup / ResetDBClusterParameterGroup now actually reset:
they drop the named parameters (or all, with ResetAllParameters=true) from
the user-set map so the parameter's source flips back to engine-default.
Both were previously no-ops, failing the "parameter no longer user defined"
check after a parameter was removed from config.
- DescribeDBClusterParameterGroups now wraps each element in the named
<DBClusterParameterGroup> member tag (not the generic <member>), honors the
DBClusterParameterGroupName filter, returns DBParameterGroupNotFound for an
unknown group, and includes <Description>. The generic <member> wrapper made
the AWS SDK unmarshal an empty list ("empty result" on read).
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
Second batch of the RDS acceptance-tree expansion. Un-defers RDS parameter groups, which were explicitly held out of tfacc with a note about a "Modify-then-Describe round-trip [that] returns empty parameters/groups." This roots out that discrepancy and the related ones the upstream suite surfaces.
New
rds-param-groupsshard running_basicfor:TestAccRDSParameterGroupTestAccRDSClusterParameterGroupFidelity fixes:
ApplyMethod(immediate/pending-reboot). The Terraform provider defaultsapply_method = "immediate"and produced a perpetual plan diff becauseDescribeDB(Cluster)Parametersomitted the field. Stored per-parameter via a backward-compatible#[serde(default)]map (DB groups) and a sibling JSON map (cluster groups).ResetDBParameterGroup/ResetDBClusterParameterGroupwere no-ops. They now drop the named parameters — or all of them withResetAllParameters=true— from the user-set map, so a parameter removed from config flips its source back toengine-default. Previously the "parameter no longer user defined" check failed after a parameter was removed.DescribeDBClusterParameterGroupswrapped elements in the generic<member>tag, which made the AWS SDK unmarshal an empty list ("empty result" on read). It now uses the named<DBClusterParameterGroup>member tag (matching the working DB-subnet/DB-parameter-group paths), honors theDBClusterParameterGroupNamefilter, returnsDBParameterGroupNotFoundfor an unknown group, and includes<Description>.The stale deferral comment on the
rdsService entry is updated to reflect that parameter groups are now wired (option groups remain deferred; DB instances/clusters still need Docker).Test plan
cargo test -p fakecloud-tfacc --test acc rds_param_groups_acceptance— 1 passed, 127s):TestAccRDSParameterGroup_basicPASS (was: perpetual diff, then reset check)TestAccRDSClusterParameterGroup_basicPASS (was: empty-result on read)cargo test -p fakecloud-rds— 222 passedcargo clippy -p fakecloud-rds -p fakecloud-tfacc --all-targets -- -D warningsclean;cargo fmtapplied.Surface check
DbParameterGroupgained a#[serde(default)]parameter_apply_methodsmap; cluster groups store apply methods in a sibling JSON key — both back-compatible with older persisted snapshots. CFN provisioner ctor updated for the new field.docs/about/conformance.mdunchanged:rdsalready listed; this deepens resource coverage within it.Follow-on batches
RDS option groups (separate failure), event subscriptions and global clusters (provider panic on read — need their own investigation), then the Lambda tree.
Summary by cubic
Enables RDS DB and cluster parameter groups in
fakecloud-tfaccand fixes the Modify/Describe round-trip so Terraform no longer drifts. ApplyMethod now round-trips, resets work, and cluster group listing matches AWS.New Features
rds-param-groupsshard to runTestAccRDSParameterGroup_basicandTestAccRDSClusterParameterGroup_basic.Bug Fixes
ApplyMethodfor DB and cluster parameters;DescribeDB(Cluster)Parametersnow includes it.ResetDB(Cluster)ParameterGroupclear named or all parameters (and apply methods) to restoreengine-default.DescribeDBClusterParameterGroupsto use the<DBClusterParameterGroup>member tag, honor name filtering, include<Description>, and returnDBParameterGroupNotFoundfor unknown groups.Written for commit 300f788. Summary will update on new commits.