terraform/builtin/providers
Paul Stack 98c385723c provider/aws: Fix aws_route53_record alias perpetual diff (#9704)
Fixes #9628
Fixes #9298

When a route53_record alias is updated in the console, AWS prepends
`dualstack.` to the name. This is there incase IPV6 is wanted. It is
exactly the same without it as it is with it

In order to stop perpetual diffs, I introduced a normalizeFunc that will
that tke alias name and strip known issues:

* dualstack
* trailing dot

This normalize fun will continue to grow I'm sure

```
% make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSRoute53Record_'                                         ✹
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2016/10/29 00:28:12 Generated command/internal_plugin_list.go
TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSRoute53Record_ -timeout 120m
=== RUN   TestAccAWSRoute53Record_basic
--- PASS: TestAccAWSRoute53Record_basic (124.64s)
=== RUN   TestAccAWSRoute53Record_basic_fqdn
--- PASS: TestAccAWSRoute53Record_basic_fqdn (132.07s)
=== RUN   TestAccAWSRoute53Record_txtSupport
--- PASS: TestAccAWSRoute53Record_txtSupport (134.07s)
=== RUN   TestAccAWSRoute53Record_spfSupport
--- PASS: TestAccAWSRoute53Record_spfSupport (113.36s)
=== RUN   TestAccAWSRoute53Record_generatesSuffix
--- PASS: TestAccAWSRoute53Record_generatesSuffix (112.62s)
=== RUN   TestAccAWSRoute53Record_wildcard
--- PASS: TestAccAWSRoute53Record_wildcard (162.84s)
=== RUN   TestAccAWSRoute53Record_failover
--- PASS: TestAccAWSRoute53Record_failover (126.18s)
=== RUN   TestAccAWSRoute53Record_weighted_basic
--- PASS: TestAccAWSRoute53Record_weighted_basic (121.10s)
=== RUN   TestAccAWSRoute53Record_alias
--- PASS: TestAccAWSRoute53Record_alias (118.14s)
=== RUN   TestAccAWSRoute53Record_s3_alias
--- PASS: TestAccAWSRoute53Record_s3_alias (155.07s)
=== RUN   TestAccAWSRoute53Record_weighted_alias
--- PASS: TestAccAWSRoute53Record_weighted_alias (235.41s)
=== RUN   TestAccAWSRoute53Record_geolocation_basic
^[[C--- PASS: TestAccAWSRoute53Record_geolocation_basic (125.32s)
=== RUN   TestAccAWSRoute53Record_latency_basic
--- PASS: TestAccAWSRoute53Record_latency_basic (122.23s)
=== RUN   TestAccAWSRoute53Record_TypeChange
--- PASS: TestAccAWSRoute53Record_TypeChange (231.98s)
=== RUN   TestAccAWSRoute53Record_empty
--- PASS: TestAccAWSRoute53Record_empty (116.48s)
PASS
ok  	github.com/hashicorp/terraform/builtin/providers/aws	2131.526s
```

Before this fix, I was getting the following by recreating the code in

```
~ aws_route53_record.alias
    alias.1563903989.evaluate_target_health: "true" => "false"
    alias.1563903989.name:                   "9828-recreation-106795730.us-west-2.elb.amazonaws.com." => ""
    alias.1563903989.zone_id:                "Z1H1FL5HABSF5" => ""
    alias.318754017.evaluate_target_health:  "" => "true"
    alias.318754017.name:                    "" => "9828-recreation-106795730.us-west-2.elb.amazonaws.com"
    alias.318754017.zone_id:                 "" => "Z1H1FL5HABSF5"

Plan: 0 to add, 1 to change, 0 to destroy.
```

After this fix:

```

No changes. Infrastructure is up-to-date. This means that Terraform
could not detect any differences between your configuration and
the real physical resources that exist. As a result, Terraform
doesn't need to do anything.
2016-10-31 19:18:00 +00:00
..
archive provider/archive: Converting to datasource. (#8492) 2016-10-25 15:59:06 +01:00
atlas
aws provider/aws: Fix aws_route53_record alias perpetual diff (#9704) 2016-10-31 19:18:00 +00:00
azure
azurerm provider/azurerm: Guard against panic when importing arm_virtual_network (#9739) 2016-10-31 17:03:12 +00:00
bitbucket provider/bitbucket: Remove unnecessary casts. 2016-09-22 17:35:03 +10:00
chef
clc
cloudflare
cloudstack Adding private gateway and static route resource to cloudstack provider (#9637) 2016-10-27 21:06:39 +02:00
cobbler
consul Fixes for consul_service resource (#9366) 2016-10-26 13:07:00 +01:00
datadog provider/datadog: Reduce diff on thresholds 2016-10-20 10:22:24 -05:00
digitalocean provider/digitalocean: Ingore resize_disk on the import DO droplet tests 2016-10-25 11:40:56 +01:00
dme
dnsimple
docker provider/docker: Fixes for docker_container host object and documentation (#9367) 2016-10-27 10:54:05 +01:00
dyn
fastly
github provider/github: github_repository resource 2016-10-13 08:04:17 -07:00
google provider/google Support MySQL 5.7 instances (#9673) 2016-10-28 14:41:03 +02:00
grafana
heroku
influxdb
librato provider/librato: Randomize the test case names as dangling resources were causing failures 2016-09-22 12:43:06 +01:00
logentries
mailgun
mysql
null
openstack Merge pull request #9617 from jtopjian/openstack-fwaas-proto-any 2016-10-26 12:56:11 -06:00
packet
pagerduty Remove the unnecessary use of &schema.Schema 2016-10-24 16:43:53 +02:00
postgresql
powerdns
rabbitmq Fix vet issues 2016-10-18 11:11:12 -04:00
random
rundeck
scaleway provider/scaleway server volume property (#9695) 2016-10-29 12:07:35 +01:00
softlayer
statuscake
template
terraform
test
tls Restore tls_cert_request to being a managed resource 2016-09-24 12:22:07 -07:00
triton
ultradns
vcd
vsphere Adding 'detach_unknown_disks_on_delete' flag for VM resource 2016-09-26 18:16:02 -07:00