provider/aws: route53 record import

This commit is contained in:
Mitchell Hashimoto 2016-04-21 13:46:37 -07:00
parent 6f091efd9b
commit 2274bb8c4a
No known key found for this signature in database
GPG Key ID: 744E147AA52F5B0A
2 changed files with 66 additions and 30 deletions

View File

@ -246,6 +246,19 @@ func resourceAwsRoute53RecordCreate(d *schema.ResourceData, meta interface{}) er
}
func resourceAwsRoute53RecordRead(d *schema.ResourceData, meta interface{}) error {
// If we don't have a zone ID we're doing an import. Parse it from the ID.
if _, ok := d.GetOk("zone_id"); !ok {
parts := strings.Split(d.Id(), "_")
d.Set("zone_id", parts[0])
d.Set("name", parts[1])
d.Set("type", parts[2])
if len(parts) > 3 {
d.Set("set_identifier", parts[3])
}
d.Set("weight", -1)
}
record, err := findRecord(d, meta)
if err != nil {
switch err {
@ -263,6 +276,18 @@ func resourceAwsRoute53RecordRead(d *schema.ResourceData, meta interface{}) erro
return fmt.Errorf("[DEBUG] Error setting records for: %s, error: %#v", d.Id(), err)
}
if alias := record.AliasTarget; alias != nil {
if _, ok := d.GetOk("alias"); !ok {
d.Set("alias", []interface{}{
map[string]interface{}{
"zone_id": *alias.HostedZoneId,
"name": *alias.DNSName,
"evaluate_target_health": *alias.EvaluateTargetHealth,
},
})
}
}
d.Set("ttl", record.TTL)
// Only set the weight if it's non-nil, otherwise we end up with a 0 weight
// which has actual contextual meaning with Route 53 records

View File

@ -54,6 +54,7 @@ func TestExpandRecordName(t *testing.T) {
func TestAccAWSRoute53Record_basic(t *testing.T) {
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
IDRefreshName: "aws_route53_record.default",
Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{
@ -70,6 +71,8 @@ func TestAccAWSRoute53Record_basic(t *testing.T) {
func TestAccAWSRoute53Record_txtSupport(t *testing.T) {
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
IDRefreshName: "aws_route53_record.default",
IDRefreshIgnore: []string{"zone_id"}, // just for this test
Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{
@ -86,6 +89,7 @@ func TestAccAWSRoute53Record_txtSupport(t *testing.T) {
func TestAccAWSRoute53Record_spfSupport(t *testing.T) {
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
IDRefreshName: "aws_route53_record.default",
Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{
@ -103,6 +107,7 @@ func TestAccAWSRoute53Record_spfSupport(t *testing.T) {
func TestAccAWSRoute53Record_generatesSuffix(t *testing.T) {
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
IDRefreshName: "aws_route53_record.default",
Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{
@ -119,6 +124,7 @@ func TestAccAWSRoute53Record_generatesSuffix(t *testing.T) {
func TestAccAWSRoute53Record_wildcard(t *testing.T) {
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
IDRefreshName: "aws_route53_record.wildcard",
Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{
@ -143,6 +149,7 @@ func TestAccAWSRoute53Record_wildcard(t *testing.T) {
func TestAccAWSRoute53Record_failover(t *testing.T) {
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
IDRefreshName: "aws_route53_record.www-primary",
Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{
@ -160,6 +167,7 @@ func TestAccAWSRoute53Record_failover(t *testing.T) {
func TestAccAWSRoute53Record_weighted_basic(t *testing.T) {
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
IDRefreshName: "aws_route53_record.www-live",
Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{
@ -178,6 +186,7 @@ func TestAccAWSRoute53Record_weighted_basic(t *testing.T) {
func TestAccAWSRoute53Record_alias(t *testing.T) {
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
IDRefreshName: "aws_route53_record.alias",
Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{
@ -210,6 +219,7 @@ func TestAccAWSRoute53Record_s3_alias(t *testing.T) {
func TestAccAWSRoute53Record_weighted_alias(t *testing.T) {
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
IDRefreshName: "aws_route53_record.elb_weighted_alias_live",
Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{
@ -237,6 +247,7 @@ func TestAccAWSRoute53Record_weighted_alias(t *testing.T) {
func TestAccAWSRoute53Record_TypeChange(t *testing.T) {
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
IDRefreshName: "aws_route53_record.sample",
Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{