-
Notifications
You must be signed in to change notification settings - Fork 9.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(route53): handle escape codes correctly in zone and record name #40154
base: main
Are you sure you want to change the base?
Conversation
Community NoteVoting for Prioritization
For Submitters
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Welcome @nabeken 👋
It looks like this is your first Pull Request submission to the Terraform AWS Provider! If you haven’t already done so please make sure you have checked out our CONTRIBUTOR guide and FAQ to make sure your contribution is adhering to best practice and has all the necessary elements in place for a successful approval.
Also take a look at our FAQ which details how we prioritize Pull Requests for inclusion.
Thanks again, and welcome to the community! 😃
cf2f8c4
to
7771b37
Compare
36b02dd
to
71a8967
Compare
71a8967
to
a5f6d1d
Compare
@justinretzolk Sorry for the quiet for a while.
I found that my initial fix didn't fully resolve the issue described above the case. I pushed commits taking another approach and I believe then it closes #11445. Could you take another look? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🚀.
% make testacc TESTARGS='-run=TestAccRoute53Zone_' PKG=route53 ACCTEST_PARALLELISM=3
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.23.3 test ./internal/service/route53/... -v -count 1 -parallel 3 -run=TestAccRoute53Zone_ -timeout 360m
2024/12/26 15:29:50 Initializing Terraform AWS Provider...
=== RUN TestAccRoute53Zone_basic
=== PAUSE TestAccRoute53Zone_basic
=== RUN TestAccRoute53Zone_disappears
=== PAUSE TestAccRoute53Zone_disappears
=== RUN TestAccRoute53Zone_multiple
=== PAUSE TestAccRoute53Zone_multiple
=== RUN TestAccRoute53Zone_comment
=== PAUSE TestAccRoute53Zone_comment
=== RUN TestAccRoute53Zone_delegationSetID
=== PAUSE TestAccRoute53Zone_delegationSetID
=== RUN TestAccRoute53Zone_forceDestroy
=== PAUSE TestAccRoute53Zone_forceDestroy
=== RUN TestAccRoute53Zone_ForceDestroy_trailingPeriod
=== PAUSE TestAccRoute53Zone_ForceDestroy_trailingPeriod
=== RUN TestAccRoute53Zone_tags
=== PAUSE TestAccRoute53Zone_tags
=== RUN TestAccRoute53Zone_VPC_single
=== PAUSE TestAccRoute53Zone_VPC_single
=== RUN TestAccRoute53Zone_VPC_multiple
=== PAUSE TestAccRoute53Zone_VPC_multiple
=== RUN TestAccRoute53Zone_VPC_updates
=== PAUSE TestAccRoute53Zone_VPC_updates
=== RUN TestAccRoute53Zone_VPC_single_forceDestroy
=== PAUSE TestAccRoute53Zone_VPC_single_forceDestroy
=== RUN TestAccRoute53Zone_escapedCharacter
=== PAUSE TestAccRoute53Zone_escapedCharacter
=== RUN TestAccRoute53Zone_classlessDelegation
=== PAUSE TestAccRoute53Zone_classlessDelegation
=== RUN TestAccRoute53Zone_escapedSlash
=== PAUSE TestAccRoute53Zone_escapedSlash
=== RUN TestAccRoute53Zone_escapedSpace
=== PAUSE TestAccRoute53Zone_escapedSpace
=== CONT TestAccRoute53Zone_basic
=== CONT TestAccRoute53Zone_VPC_single_forceDestroy
=== CONT TestAccRoute53Zone_ForceDestroy_trailingPeriod
--- PASS: TestAccRoute53Zone_basic (103.12s)
=== CONT TestAccRoute53Zone_escapedSlash
--- PASS: TestAccRoute53Zone_escapedSlash (84.68s)
=== CONT TestAccRoute53Zone_escapedSpace
--- PASS: TestAccRoute53Zone_ForceDestroy_trailingPeriod (242.85s)
=== CONT TestAccRoute53Zone_classlessDelegation
--- PASS: TestAccRoute53Zone_VPC_single_forceDestroy (249.86s)
=== CONT TestAccRoute53Zone_VPC_multiple
--- PASS: TestAccRoute53Zone_escapedSpace (86.31s)
=== CONT TestAccRoute53Zone_VPC_updates
--- PASS: TestAccRoute53Zone_classlessDelegation (93.94s)
=== CONT TestAccRoute53Zone_escapedCharacter
--- PASS: TestAccRoute53Zone_escapedCharacter (91.58s)
=== CONT TestAccRoute53Zone_VPC_single
--- PASS: TestAccRoute53Zone_VPC_multiple (224.23s)
=== CONT TestAccRoute53Zone_comment
--- PASS: TestAccRoute53Zone_VPC_updates (288.80s)
=== CONT TestAccRoute53Zone_forceDestroy
--- PASS: TestAccRoute53Zone_comment (101.20s)
=== CONT TestAccRoute53Zone_delegationSetID
--- PASS: TestAccRoute53Zone_VPC_single (147.10s)
=== CONT TestAccRoute53Zone_multiple
--- PASS: TestAccRoute53Zone_delegationSetID (84.12s)
=== CONT TestAccRoute53Zone_disappears
--- PASS: TestAccRoute53Zone_multiple (96.95s)
=== CONT TestAccRoute53Zone_tags
--- PASS: TestAccRoute53Zone_disappears (78.13s)
--- PASS: TestAccRoute53Zone_tags (84.84s)
--- PASS: TestAccRoute53Zone_forceDestroy (223.54s)
PASS
ok github.com/hashicorp/terraform-provider-aws/internal/service/route53 791.870s
% make testacc TESTARGS='-run=TestAccRoute53Record_' PKG=route53 ACCTEST_PARALLELISM=3
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.23.3 test ./internal/service/route53/... -v -count 1 -parallel 3 -run=TestAccRoute53Record_ -timeout 360m
2024/12/26 15:53:38 Initializing Terraform AWS Provider...
=== RUN TestAccRoute53Record_basic
=== PAUSE TestAccRoute53Record_basic
=== RUN TestAccRoute53Record_disappears
=== PAUSE TestAccRoute53Record_disappears
=== RUN TestAccRoute53Record_Disappears_multipleRecords
=== PAUSE TestAccRoute53Record_Disappears_multipleRecords
=== RUN TestAccRoute53Record_underscored
=== PAUSE TestAccRoute53Record_underscored
=== RUN TestAccRoute53Record_fqdn
=== PAUSE TestAccRoute53Record_fqdn
=== RUN TestAccRoute53Record_trailingPeriodAndZoneID
=== PAUSE TestAccRoute53Record_trailingPeriodAndZoneID
=== RUN TestAccRoute53Record_Support_txt
=== PAUSE TestAccRoute53Record_Support_txt
=== RUN TestAccRoute53Record_Support_spf
=== PAUSE TestAccRoute53Record_Support_spf
=== RUN TestAccRoute53Record_Support_caa
=== PAUSE TestAccRoute53Record_Support_caa
=== RUN TestAccRoute53Record_Support_ds
=== PAUSE TestAccRoute53Record_Support_ds
=== RUN TestAccRoute53Record_generatesSuffix
=== PAUSE TestAccRoute53Record_generatesSuffix
=== RUN TestAccRoute53Record_wildcard
=== PAUSE TestAccRoute53Record_wildcard
=== RUN TestAccRoute53Record_failover
=== PAUSE TestAccRoute53Record_failover
=== RUN TestAccRoute53Record_Weighted_basic
=== PAUSE TestAccRoute53Record_Weighted_basic
=== RUN TestAccRoute53Record_WeightedToSimple_basic
=== PAUSE TestAccRoute53Record_WeightedToSimple_basic
=== RUN TestAccRoute53Record_Alias_elb
=== PAUSE TestAccRoute53Record_Alias_elb
=== RUN TestAccRoute53Record_Alias_s3
=== PAUSE TestAccRoute53Record_Alias_s3
=== RUN TestAccRoute53Record_Alias_vpcEndpoint
=== PAUSE TestAccRoute53Record_Alias_vpcEndpoint
=== RUN TestAccRoute53Record_Alias_uppercase
=== PAUSE TestAccRoute53Record_Alias_uppercase
=== RUN TestAccRoute53Record_Weighted_alias
=== PAUSE TestAccRoute53Record_Weighted_alias
=== RUN TestAccRoute53Record_cidr
=== PAUSE TestAccRoute53Record_cidr
=== RUN TestAccRoute53Record_Geolocation_basic
=== PAUSE TestAccRoute53Record_Geolocation_basic
=== RUN TestAccRoute53Record_Geoproximity_basic
=== PAUSE TestAccRoute53Record_Geoproximity_basic
=== RUN TestAccRoute53Record_HealthCheckID_setIdentifierChange
=== PAUSE TestAccRoute53Record_HealthCheckID_setIdentifierChange
=== RUN TestAccRoute53Record_HealthCheckID_typeChange
=== PAUSE TestAccRoute53Record_HealthCheckID_typeChange
=== RUN TestAccRoute53Record_Latency_basic
=== PAUSE TestAccRoute53Record_Latency_basic
=== RUN TestAccRoute53Record_typeChange
=== PAUSE TestAccRoute53Record_typeChange
=== RUN TestAccRoute53Record_nameChange
=== PAUSE TestAccRoute53Record_nameChange
=== RUN TestAccRoute53Record_setIdentifierChangeBasicToWeighted
=== PAUSE TestAccRoute53Record_setIdentifierChangeBasicToWeighted
=== RUN TestAccRoute53Record_SetIdentifierRename_geolocationContinent
=== PAUSE TestAccRoute53Record_SetIdentifierRename_geolocationContinent
=== RUN TestAccRoute53Record_SetIdentifierRename_geolocationCountryDefault
=== PAUSE TestAccRoute53Record_SetIdentifierRename_geolocationCountryDefault
=== RUN TestAccRoute53Record_SetIdentifierRename_geolocationCountrySpecified
=== PAUSE TestAccRoute53Record_SetIdentifierRename_geolocationCountrySpecified
=== RUN TestAccRoute53Record_SetIdentifierRename_geolocationCountrySubdivision
=== PAUSE TestAccRoute53Record_SetIdentifierRename_geolocationCountrySubdivision
=== RUN TestAccRoute53Record_SetIdentifierRename_geoproximityRegion
=== PAUSE TestAccRoute53Record_SetIdentifierRename_geoproximityRegion
=== RUN TestAccRoute53Record_SetIdentifierRename_geoproximityLocalZoneGroup
=== PAUSE TestAccRoute53Record_SetIdentifierRename_geoproximityLocalZoneGroup
=== RUN TestAccRoute53Record_SetIdentifierRename_geoproximityCoordinates
=== PAUSE TestAccRoute53Record_SetIdentifierRename_geoproximityCoordinates
=== RUN TestAccRoute53Record_SetIdentifierRename_failover
=== PAUSE TestAccRoute53Record_SetIdentifierRename_failover
=== RUN TestAccRoute53Record_SetIdentifierRename_latency
=== PAUSE TestAccRoute53Record_SetIdentifierRename_latency
=== RUN TestAccRoute53Record_SetIdentifierRename_multiValueAnswer
=== PAUSE TestAccRoute53Record_SetIdentifierRename_multiValueAnswer
=== RUN TestAccRoute53Record_SetIdentifierRename_weighted
=== PAUSE TestAccRoute53Record_SetIdentifierRename_weighted
=== RUN TestAccRoute53Record_Alias_change
=== PAUSE TestAccRoute53Record_Alias_change
=== RUN TestAccRoute53Record_Alias_changeDualstack
=== PAUSE TestAccRoute53Record_Alias_changeDualstack
=== RUN TestAccRoute53Record_empty
=== PAUSE TestAccRoute53Record_empty
=== RUN TestAccRoute53Record_longTXTrecord
=== PAUSE TestAccRoute53Record_longTXTrecord
=== RUN TestAccRoute53Record_MultiValueAnswer_basic
=== PAUSE TestAccRoute53Record_MultiValueAnswer_basic
=== RUN TestAccRoute53Record_Allow_doNotOverwrite
=== PAUSE TestAccRoute53Record_Allow_doNotOverwrite
=== RUN TestAccRoute53Record_Allow_overwrite
=== PAUSE TestAccRoute53Record_Allow_overwrite
=== RUN TestAccRoute53Record_ttl0
=== PAUSE TestAccRoute53Record_ttl0
=== RUN TestAccRoute53Record_aliasWildcardName
=== PAUSE TestAccRoute53Record_aliasWildcardName
=== RUN TestAccRoute53Record_escapedSlash
=== PAUSE TestAccRoute53Record_escapedSlash
=== RUN TestAccRoute53Record_escapedSpace
=== PAUSE TestAccRoute53Record_escapedSpace
=== RUN TestAccRoute53Record_secapedJustSpace
=== PAUSE TestAccRoute53Record_secapedJustSpace
=== CONT TestAccRoute53Record_basic
=== CONT TestAccRoute53Record_secapedJustSpace
=== CONT TestAccRoute53Record_SetIdentifierRename_weighted
--- PASS: TestAccRoute53Record_basic (146.97s)
=== CONT TestAccRoute53Record_Allow_doNotOverwrite
--- PASS: TestAccRoute53Record_secapedJustSpace (155.44s)
=== CONT TestAccRoute53Record_escapedSpace
--- PASS: TestAccRoute53Record_SetIdentifierRename_weighted (206.80s)
=== CONT TestAccRoute53Record_escapedSlash
--- PASS: TestAccRoute53Record_Allow_doNotOverwrite (159.32s)
=== CONT TestAccRoute53Record_aliasWildcardName
--- PASS: TestAccRoute53Record_escapedSpace (152.44s)
=== CONT TestAccRoute53Record_ttl0
--- PASS: TestAccRoute53Record_escapedSlash (152.38s)
=== CONT TestAccRoute53Record_Allow_overwrite
--- PASS: TestAccRoute53Record_ttl0 (261.92s)
=== CONT TestAccRoute53Record_empty
--- PASS: TestAccRoute53Record_Allow_overwrite (220.20s)
=== CONT TestAccRoute53Record_MultiValueAnswer_basic
--- PASS: TestAccRoute53Record_MultiValueAnswer_basic (167.51s)
=== CONT TestAccRoute53Record_longTXTrecord
--- PASS: TestAccRoute53Record_empty (188.58s)
=== CONT TestAccRoute53Record_cidr
--- PASS: TestAccRoute53Record_aliasWildcardName (532.64s)
=== CONT TestAccRoute53Record_SetIdentifierRename_multiValueAnswer
--- PASS: TestAccRoute53Record_longTXTrecord (166.86s)
=== CONT TestAccRoute53Record_SetIdentifierRename_latency
--- PASS: TestAccRoute53Record_cidr (268.20s)
=== CONT TestAccRoute53Record_SetIdentifierRename_failover
=== CONT TestAccRoute53Record_SetIdentifierRename_geoproximityCoordinates
--- PASS: TestAccRoute53Record_SetIdentifierRename_multiValueAnswer (235.27s)
--- PASS: TestAccRoute53Record_SetIdentifierRename_latency (217.37s)
=== CONT TestAccRoute53Record_SetIdentifierRename_geoproximityLocalZoneGroup
--- PASS: TestAccRoute53Record_SetIdentifierRename_failover (211.88s)
=== CONT TestAccRoute53Record_SetIdentifierRename_geoproximityRegion
--- PASS: TestAccRoute53Record_SetIdentifierRename_geoproximityCoordinates (236.43s)
=== CONT TestAccRoute53Record_SetIdentifierRename_geolocationCountrySubdivision
--- PASS: TestAccRoute53Record_SetIdentifierRename_geoproximityLocalZoneGroup (226.13s)
=== CONT TestAccRoute53Record_SetIdentifierRename_geolocationCountrySpecified
--- PASS: TestAccRoute53Record_SetIdentifierRename_geoproximityRegion (229.27s)
=== CONT TestAccRoute53Record_SetIdentifierRename_geolocationCountryDefault
--- PASS: TestAccRoute53Record_SetIdentifierRename_geolocationCountrySubdivision (222.28s)
=== CONT TestAccRoute53Record_SetIdentifierRename_geolocationContinent
--- PASS: TestAccRoute53Record_SetIdentifierRename_geolocationCountrySpecified (216.66s)
=== CONT TestAccRoute53Record_setIdentifierChangeBasicToWeighted
--- PASS: TestAccRoute53Record_SetIdentifierRename_geolocationCountryDefault (213.20s)
=== CONT TestAccRoute53Record_nameChange
--- PASS: TestAccRoute53Record_SetIdentifierRename_geolocationContinent (222.20s)
=== CONT TestAccRoute53Record_typeChange
--- PASS: TestAccRoute53Record_setIdentifierChangeBasicToWeighted (216.05s)
=== CONT TestAccRoute53Record_Latency_basic
--- PASS: TestAccRoute53Record_nameChange (249.08s)
=== CONT TestAccRoute53Record_HealthCheckID_typeChange
--- PASS: TestAccRoute53Record_typeChange (197.96s)
=== CONT TestAccRoute53Record_HealthCheckID_setIdentifierChange
--- PASS: TestAccRoute53Record_Latency_basic (179.44s)
=== CONT TestAccRoute53Record_Geoproximity_basic
--- PASS: TestAccRoute53Record_HealthCheckID_typeChange (213.37s)
=== CONT TestAccRoute53Record_Geolocation_basic
--- PASS: TestAccRoute53Record_HealthCheckID_setIdentifierChange (197.18s)
=== CONT TestAccRoute53Record_Alias_elb
--- PASS: TestAccRoute53Record_Geoproximity_basic (186.24s)
=== CONT TestAccRoute53Record_Weighted_alias
--- PASS: TestAccRoute53Record_Alias_elb (170.50s)
=== CONT TestAccRoute53Record_generatesSuffix
--- PASS: TestAccRoute53Record_Geolocation_basic (177.78s)
=== CONT TestAccRoute53Record_Alias_uppercase
--- PASS: TestAccRoute53Record_Weighted_alias (301.74s)
=== CONT TestAccRoute53Record_WeightedToSimple_basic
--- PASS: TestAccRoute53Record_Alias_uppercase (169.70s)
=== CONT TestAccRoute53Record_Alias_vpcEndpoint
--- PASS: TestAccRoute53Record_generatesSuffix (178.20s)
=== CONT TestAccRoute53Record_Weighted_basic
--- PASS: TestAccRoute53Record_WeightedToSimple_basic (213.67s)
=== CONT TestAccRoute53Record_Alias_s3
--- PASS: TestAccRoute53Record_Weighted_basic (177.31s)
=== CONT TestAccRoute53Record_failover
--- PASS: TestAccRoute53Record_failover (151.34s)
=== CONT TestAccRoute53Record_Alias_changeDualstack
--- PASS: TestAccRoute53Record_Alias_s3 (164.21s)
=== CONT TestAccRoute53Record_wildcard
--- PASS: TestAccRoute53Record_Alias_vpcEndpoint (408.90s)
=== CONT TestAccRoute53Record_Alias_change
--- PASS: TestAccRoute53Record_Alias_changeDualstack (196.65s)
=== CONT TestAccRoute53Record_trailingPeriodAndZoneID
--- PASS: TestAccRoute53Record_wildcard (201.55s)
=== CONT TestAccRoute53Record_underscored
--- PASS: TestAccRoute53Record_Alias_change (206.71s)
=== CONT TestAccRoute53Record_Support_ds
=== CONT TestAccRoute53Record_fqdn
--- PASS: TestAccRoute53Record_trailingPeriodAndZoneID (1068.99s)
--- PASS: TestAccRoute53Record_underscored (1056.84s)
=== CONT TestAccRoute53Record_Support_caa
--- PASS: TestAccRoute53Record_Support_ds (1068.87s)
=== CONT TestAccRoute53Record_Support_txt
--- PASS: TestAccRoute53Record_Support_caa (157.55s)
=== CONT TestAccRoute53Record_Support_spf
--- PASS: TestAccRoute53Record_fqdn (167.03s)
=== CONT TestAccRoute53Record_Disappears_multipleRecords
--- PASS: TestAccRoute53Record_Support_txt (169.48s)
=== CONT TestAccRoute53Record_disappears
--- PASS: TestAccRoute53Record_Support_spf (168.44s)
--- PASS: TestAccRoute53Record_Disappears_multipleRecords (212.88s)
--- PASS: TestAccRoute53Record_disappears (158.91s)
PASS
ok github.com/hashicorp/terraform-provider-aws/internal/service/route53 4508.922s
Description
When Route53 hosted zone name and/or record name contains escaped characters, Terraform can't recognize its resources so it continues showing the diff repeatedly.
This PR normalizes an user input into strings in Route53 API's representation so that Terraform can find the resources correctly.
Relations
Closes #40153
Closes #11445
Plese find the details in the above issue.
Output from Acceptance Testing