provider/aws: Add support for Skipping Final Snapshot in RDS Cluster (#6795)

* provider/aws: Add support for Skipping Final Snapshot in RDS Cluster
This commit is contained in:
Paul Stack 2016-05-20 18:52:26 +01:00 committed by Clint
parent 890eebabc4
commit ec8c242ebf
2 changed files with 16 additions and 6 deletions

View File

@ -103,6 +103,12 @@ func resourceAwsRDSCluster() *schema.Resource {
},
},
"skip_final_snapshot": &schema.Schema{
Type: schema.TypeBool,
Optional: true,
Default: true,
},
"master_username": &schema.Schema{
Type: schema.TypeString,
Required: true,
@ -372,12 +378,15 @@ func resourceAwsRDSClusterDelete(d *schema.ResourceData, meta interface{}) error
DBClusterIdentifier: aws.String(d.Id()),
}
finalSnapshot := d.Get("final_snapshot_identifier").(string)
if finalSnapshot == "" {
deleteOpts.SkipFinalSnapshot = aws.Bool(true)
} else {
deleteOpts.FinalDBSnapshotIdentifier = aws.String(finalSnapshot)
deleteOpts.SkipFinalSnapshot = aws.Bool(false)
skipFinalSnapshot := d.Get("skip_final_snapshot").(bool)
deleteOpts.SkipFinalSnapshot = aws.Bool(skipFinalSnapshot)
if skipFinalSnapshot == false {
if name, present := d.GetOk("final_snapshot_identifier"); present {
deleteOpts.FinalDBSnapshotIdentifier = aws.String(name.(string))
} else {
return fmt.Errorf("RDS Cluster FinalSnapshotIdentifier is required when a final snapshot is required")
}
}
log.Printf("[DEBUG] RDS Cluster delete options: %s", deleteOpts)

View File

@ -61,6 +61,7 @@ string.
* `final_snapshot_identifier` - (Optional) The name of your final DB snapshot
when this DB cluster is deleted. If omitted, no final snapshot will be
made.
* `skip_final_snapshot` - (Optional) Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DBSnapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from `final_snapshot_identifier`. Default is true.
* `availability_zones` - (Optional) A list of EC2 Availability Zones that
instances in the DB cluster can be created in
* `backup_retention_period` - (Optional) The days to retain backups for. Default