provider/aws: Fixup skip_final_snapshot import

Neither skip_final_snapshot nor final_snapshot_identifier can be fetched
from any API call, so we need to default skip_final_snapshot to true
during import so that final_snapshot_identifier is not required
This commit is contained in:
Paul Hinze 2016-07-15 11:24:58 -06:00
parent ddffb47492
commit 93832527b1
No known key found for this signature in database
GPG Key ID: B69DEDF2D55501C0
2 changed files with 16 additions and 7 deletions

View File

@ -23,7 +23,10 @@ func TestAccAWSDBInstance_importBasic(t *testing.T) {
ImportState: true, ImportState: true,
ImportStateVerify: true, ImportStateVerify: true,
ImportStateVerifyIgnore: []string{ ImportStateVerifyIgnore: []string{
"password", "skip_final_snapshot"}, "password",
"skip_final_snapshot",
"final_snapshot_identifier",
},
}, },
}, },
}) })

View File

@ -23,7 +23,7 @@ func resourceAwsDbInstance() *schema.Resource {
Update: resourceAwsDbInstanceUpdate, Update: resourceAwsDbInstanceUpdate,
Delete: resourceAwsDbInstanceDelete, Delete: resourceAwsDbInstanceDelete,
Importer: &schema.ResourceImporter{ Importer: &schema.ResourceImporter{
State: schema.ImportStatePassthrough, State: resourceAwsDbInstanceImport,
}, },
Schema: map[string]*schema.Schema{ Schema: map[string]*schema.Schema{
@ -757,11 +757,8 @@ func resourceAwsDbInstanceDelete(d *schema.ResourceData, meta interface{}) error
opts := rds.DeleteDBInstanceInput{DBInstanceIdentifier: aws.String(d.Id())} opts := rds.DeleteDBInstanceInput{DBInstanceIdentifier: aws.String(d.Id())}
skipFinalSnapshot, exists := d.GetOk("skip_final_snapshot") skipFinalSnapshot := d.Get("skip_final_snapshot").(bool)
if !exists { opts.SkipFinalSnapshot = aws.Bool(skipFinalSnapshot)
skipFinalSnapshot = true
}
opts.SkipFinalSnapshot = aws.Bool(skipFinalSnapshot.(bool))
if skipFinalSnapshot == false { if skipFinalSnapshot == false {
if name, present := d.GetOk("final_snapshot_identifier"); present { if name, present := d.GetOk("final_snapshot_identifier"); present {
@ -1023,6 +1020,15 @@ func resourceAwsDbInstanceRetrieve(
return resp.DBInstances[0], nil return resp.DBInstances[0], nil
} }
func resourceAwsDbInstanceImport(
d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
// Neither skip_final_snapshot nor final_snapshot_identifier can be fetched
// from any API call, so we need to default skip_final_snapshot to true so
// that final_snapshot_identifier is not required
d.Set("skip_final_snapshot", true)
return []*schema.ResourceData{d}, nil
}
func resourceAwsDbInstanceStateRefreshFunc( func resourceAwsDbInstanceStateRefreshFunc(
d *schema.ResourceData, meta interface{}) resource.StateRefreshFunc { d *schema.ResourceData, meta interface{}) resource.StateRefreshFunc {
return func() (interface{}, string, error) { return func() (interface{}, string, error) {