From 333984ffb59e5145c509410fa9fda731f60f8a51 Mon Sep 17 00:00:00 2001 From: stack72 Date: Fri, 20 May 2016 14:43:45 +0100 Subject: [PATCH] provider/aws: Add support for Skipping Final Snapshot in RDS Cluster This works exactly the same as in DB Instance. We cannot use an empty string to skip the final snapshot or we get the following error: ``` only alphanumeric characters and hyphens allowed in "final_snapshot_identifier" ``` Therefore, we need to wrap this with another parameter. The we DO NOT skip final snapshots by default as we currently create them right now and this would change the user functionality --- builtin/providers/aws/resource_aws_rds_cluster.go | 9 ++++++++- .../docs/providers/aws/r/rds_cluster.html.markdown | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/builtin/providers/aws/resource_aws_rds_cluster.go b/builtin/providers/aws/resource_aws_rds_cluster.go index 06104082ead1..aed8b82c9fbc 100644 --- a/builtin/providers/aws/resource_aws_rds_cluster.go +++ b/builtin/providers/aws/resource_aws_rds_cluster.go @@ -103,6 +103,12 @@ func resourceAwsRDSCluster() *schema.Resource { }, }, + "skip_final_snapshot": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Default: false, + }, + "master_username": &schema.Schema{ Type: schema.TypeString, Required: true, @@ -372,8 +378,9 @@ func resourceAwsRDSClusterDelete(d *schema.ResourceData, meta interface{}) error DBClusterIdentifier: aws.String(d.Id()), } + skipFinalSnapshot := d.Get("skip_final_snapshot").(bool) finalSnapshot := d.Get("final_snapshot_identifier").(string) - if finalSnapshot == "" { + if skipFinalSnapshot == true { deleteOpts.SkipFinalSnapshot = aws.Bool(true) } else { deleteOpts.FinalDBSnapshotIdentifier = aws.String(finalSnapshot) diff --git a/website/source/docs/providers/aws/r/rds_cluster.html.markdown b/website/source/docs/providers/aws/r/rds_cluster.html.markdown index 14e2d7b6d080..7414c4b1f809 100644 --- a/website/source/docs/providers/aws/r/rds_cluster.html.markdown +++ b/website/source/docs/providers/aws/r/rds_cluster.html.markdown @@ -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. Default is false. * `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