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 { 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) record, err := findRecord(d, meta)
if err != nil { if err != nil {
switch err { 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) 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) d.Set("ttl", record.TTL)
// Only set the weight if it's non-nil, otherwise we end up with a 0 weight // 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 // which has actual contextual meaning with Route 53 records

View File

@ -53,9 +53,10 @@ func TestExpandRecordName(t *testing.T) {
func TestAccAWSRoute53Record_basic(t *testing.T) { func TestAccAWSRoute53Record_basic(t *testing.T) {
resource.Test(t, resource.TestCase{ resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) }, PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders, IDRefreshName: "aws_route53_record.default",
CheckDestroy: testAccCheckRoute53RecordDestroy, Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{ Steps: []resource.TestStep{
resource.TestStep{ resource.TestStep{
Config: testAccRoute53RecordConfig, Config: testAccRoute53RecordConfig,
@ -69,9 +70,11 @@ func TestAccAWSRoute53Record_basic(t *testing.T) {
func TestAccAWSRoute53Record_txtSupport(t *testing.T) { func TestAccAWSRoute53Record_txtSupport(t *testing.T) {
resource.Test(t, resource.TestCase{ resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) }, PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders, IDRefreshName: "aws_route53_record.default",
CheckDestroy: testAccCheckRoute53RecordDestroy, IDRefreshIgnore: []string{"zone_id"}, // just for this test
Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{ Steps: []resource.TestStep{
resource.TestStep{ resource.TestStep{
Config: testAccRoute53RecordConfigTXT, Config: testAccRoute53RecordConfigTXT,
@ -85,9 +88,10 @@ func TestAccAWSRoute53Record_txtSupport(t *testing.T) {
func TestAccAWSRoute53Record_spfSupport(t *testing.T) { func TestAccAWSRoute53Record_spfSupport(t *testing.T) {
resource.Test(t, resource.TestCase{ resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) }, PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders, IDRefreshName: "aws_route53_record.default",
CheckDestroy: testAccCheckRoute53RecordDestroy, Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{ Steps: []resource.TestStep{
resource.TestStep{ resource.TestStep{
Config: testAccRoute53RecordConfigSPF, Config: testAccRoute53RecordConfigSPF,
@ -102,9 +106,10 @@ func TestAccAWSRoute53Record_spfSupport(t *testing.T) {
} }
func TestAccAWSRoute53Record_generatesSuffix(t *testing.T) { func TestAccAWSRoute53Record_generatesSuffix(t *testing.T) {
resource.Test(t, resource.TestCase{ resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) }, PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders, IDRefreshName: "aws_route53_record.default",
CheckDestroy: testAccCheckRoute53RecordDestroy, Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{ Steps: []resource.TestStep{
resource.TestStep{ resource.TestStep{
Config: testAccRoute53RecordConfigSuffix, Config: testAccRoute53RecordConfigSuffix,
@ -118,9 +123,10 @@ func TestAccAWSRoute53Record_generatesSuffix(t *testing.T) {
func TestAccAWSRoute53Record_wildcard(t *testing.T) { func TestAccAWSRoute53Record_wildcard(t *testing.T) {
resource.Test(t, resource.TestCase{ resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) }, PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders, IDRefreshName: "aws_route53_record.wildcard",
CheckDestroy: testAccCheckRoute53RecordDestroy, Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{ Steps: []resource.TestStep{
resource.TestStep{ resource.TestStep{
Config: testAccRoute53WildCardRecordConfig, Config: testAccRoute53WildCardRecordConfig,
@ -142,9 +148,10 @@ func TestAccAWSRoute53Record_wildcard(t *testing.T) {
func TestAccAWSRoute53Record_failover(t *testing.T) { func TestAccAWSRoute53Record_failover(t *testing.T) {
resource.Test(t, resource.TestCase{ resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) }, PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders, IDRefreshName: "aws_route53_record.www-primary",
CheckDestroy: testAccCheckRoute53RecordDestroy, Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{ Steps: []resource.TestStep{
resource.TestStep{ resource.TestStep{
Config: testAccRoute53FailoverCNAMERecord, Config: testAccRoute53FailoverCNAMERecord,
@ -159,9 +166,10 @@ func TestAccAWSRoute53Record_failover(t *testing.T) {
func TestAccAWSRoute53Record_weighted_basic(t *testing.T) { func TestAccAWSRoute53Record_weighted_basic(t *testing.T) {
resource.Test(t, resource.TestCase{ resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) }, PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders, IDRefreshName: "aws_route53_record.www-live",
CheckDestroy: testAccCheckRoute53RecordDestroy, Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{ Steps: []resource.TestStep{
resource.TestStep{ resource.TestStep{
Config: testAccRoute53WeightedCNAMERecord, Config: testAccRoute53WeightedCNAMERecord,
@ -177,9 +185,10 @@ func TestAccAWSRoute53Record_weighted_basic(t *testing.T) {
func TestAccAWSRoute53Record_alias(t *testing.T) { func TestAccAWSRoute53Record_alias(t *testing.T) {
resource.Test(t, resource.TestCase{ resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) }, PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders, IDRefreshName: "aws_route53_record.alias",
CheckDestroy: testAccCheckRoute53RecordDestroy, Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{ Steps: []resource.TestStep{
resource.TestStep{ resource.TestStep{
Config: testAccRoute53ElbAliasRecord, Config: testAccRoute53ElbAliasRecord,
@ -209,9 +218,10 @@ func TestAccAWSRoute53Record_s3_alias(t *testing.T) {
func TestAccAWSRoute53Record_weighted_alias(t *testing.T) { func TestAccAWSRoute53Record_weighted_alias(t *testing.T) {
resource.Test(t, resource.TestCase{ resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) }, PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders, IDRefreshName: "aws_route53_record.elb_weighted_alias_live",
CheckDestroy: testAccCheckRoute53RecordDestroy, Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{ Steps: []resource.TestStep{
resource.TestStep{ resource.TestStep{
Config: testAccRoute53WeightedElbAliasRecord, Config: testAccRoute53WeightedElbAliasRecord,
@ -236,9 +246,10 @@ func TestAccAWSRoute53Record_weighted_alias(t *testing.T) {
func TestAccAWSRoute53Record_TypeChange(t *testing.T) { func TestAccAWSRoute53Record_TypeChange(t *testing.T) {
resource.Test(t, resource.TestCase{ resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) }, PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders, IDRefreshName: "aws_route53_record.sample",
CheckDestroy: testAccCheckRoute53RecordDestroy, Providers: testAccProviders,
CheckDestroy: testAccCheckRoute53RecordDestroy,
Steps: []resource.TestStep{ Steps: []resource.TestStep{
resource.TestStep{ resource.TestStep{
Config: testAccRoute53RecordTypeChangePre, Config: testAccRoute53RecordTypeChangePre,