provider/aws: Add Support for maintenance_window and back_window to rds_cluster_instance (#13134)
* provider/aws: Add Support for maintenance_window and back_window to rds_cluster_instance Fixes: #9489 ``` % make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSRDSClusterInstance_basic' ==> Checking that code complies with gofmt requirements... go generate $(go list ./... | grep -v /terraform/vendor/) 2017/03/28 23:08:45 Generated command/internal_plugin_list.go TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSRDSClusterInstance_basic -timeout 120m === RUN TestAccAWSRDSClusterInstance_basic --- PASS: TestAccAWSRDSClusterInstance_basic (1433.41s) PASS ok github.com/hashicorp/terraform/builtin/providers/aws 1433.438s ``` * Update rds_cluster_instance.html.markdown * Update rds_cluster_instance.html.markdown
This commit is contained in:
parent
6c967d95b9
commit
f44f0d8c86
|
@ -3,6 +3,7 @@ package aws
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/aws/aws-sdk-go/aws"
|
"github.com/aws/aws-sdk-go/aws"
|
||||||
|
@ -105,6 +106,27 @@ func resourceAwsRDSClusterInstance() *schema.Resource {
|
||||||
Computed: true,
|
Computed: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"preferred_maintenance_window": {
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Optional: true,
|
||||||
|
Computed: true,
|
||||||
|
StateFunc: func(v interface{}) string {
|
||||||
|
if v != nil {
|
||||||
|
value := v.(string)
|
||||||
|
return strings.ToLower(value)
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
},
|
||||||
|
ValidateFunc: validateOnceAWeekWindowFormat,
|
||||||
|
},
|
||||||
|
|
||||||
|
"preferred_backup_window": {
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Optional: true,
|
||||||
|
Computed: true,
|
||||||
|
ValidateFunc: validateOnceADayWindowFormat,
|
||||||
|
},
|
||||||
|
|
||||||
"monitoring_interval": {
|
"monitoring_interval": {
|
||||||
Type: schema.TypeInt,
|
Type: schema.TypeInt,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
|
@ -154,6 +176,14 @@ func resourceAwsRDSClusterInstanceCreate(d *schema.ResourceData, meta interface{
|
||||||
createOpts.MonitoringRoleArn = aws.String(attr.(string))
|
createOpts.MonitoringRoleArn = aws.String(attr.(string))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if attr, ok := d.GetOk("preferred_backup_window"); ok {
|
||||||
|
createOpts.PreferredBackupWindow = aws.String(attr.(string))
|
||||||
|
}
|
||||||
|
|
||||||
|
if attr, ok := d.GetOk("preferred_maintenance_window"); ok {
|
||||||
|
createOpts.PreferredMaintenanceWindow = aws.String(attr.(string))
|
||||||
|
}
|
||||||
|
|
||||||
if attr, ok := d.GetOk("monitoring_interval"); ok {
|
if attr, ok := d.GetOk("monitoring_interval"); ok {
|
||||||
createOpts.MonitoringInterval = aws.Int64(int64(attr.(int)))
|
createOpts.MonitoringInterval = aws.Int64(int64(attr.(int)))
|
||||||
}
|
}
|
||||||
|
@ -239,6 +269,8 @@ func resourceAwsRDSClusterInstanceRead(d *schema.ResourceData, meta interface{})
|
||||||
d.Set("kms_key_id", db.KmsKeyId)
|
d.Set("kms_key_id", db.KmsKeyId)
|
||||||
d.Set("auto_minor_version_upgrade", db.AutoMinorVersionUpgrade)
|
d.Set("auto_minor_version_upgrade", db.AutoMinorVersionUpgrade)
|
||||||
d.Set("promotion_tier", db.PromotionTier)
|
d.Set("promotion_tier", db.PromotionTier)
|
||||||
|
d.Set("preferred_backup_window", db.PreferredBackupWindow)
|
||||||
|
d.Set("preferred_maintenance_window", db.PreferredMaintenanceWindow)
|
||||||
|
|
||||||
if db.MonitoringInterval != nil {
|
if db.MonitoringInterval != nil {
|
||||||
d.Set("monitoring_interval", db.MonitoringInterval)
|
d.Set("monitoring_interval", db.MonitoringInterval)
|
||||||
|
@ -290,6 +322,18 @@ func resourceAwsRDSClusterInstanceUpdate(d *schema.ResourceData, meta interface{
|
||||||
requestUpdate = true
|
requestUpdate = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if d.HasChange("preferred_backup_window") {
|
||||||
|
d.SetPartial("preferred_backup_window")
|
||||||
|
req.PreferredBackupWindow = aws.String(d.Get("preferred_backup_window").(string))
|
||||||
|
requestUpdate = true
|
||||||
|
}
|
||||||
|
|
||||||
|
if d.HasChange("preferred_maintenance_window") {
|
||||||
|
d.SetPartial("preferred_maintenance_window")
|
||||||
|
req.PreferredMaintenanceWindow = aws.String(d.Get("preferred_maintenance_window").(string))
|
||||||
|
requestUpdate = true
|
||||||
|
}
|
||||||
|
|
||||||
if d.HasChange("monitoring_interval") {
|
if d.HasChange("monitoring_interval") {
|
||||||
d.SetPartial("monitoring_interval")
|
d.SetPartial("monitoring_interval")
|
||||||
req.MonitoringInterval = aws.Int64(int64(d.Get("monitoring_interval").(int)))
|
req.MonitoringInterval = aws.Int64(int64(d.Get("monitoring_interval").(int)))
|
||||||
|
|
|
@ -30,6 +30,8 @@ func TestAccAWSRDSClusterInstance_basic(t *testing.T) {
|
||||||
testAccCheckAWSClusterInstanceExists("aws_rds_cluster_instance.cluster_instances", &v),
|
testAccCheckAWSClusterInstanceExists("aws_rds_cluster_instance.cluster_instances", &v),
|
||||||
testAccCheckAWSDBClusterInstanceAttributes(&v),
|
testAccCheckAWSDBClusterInstanceAttributes(&v),
|
||||||
resource.TestCheckResourceAttr("aws_rds_cluster_instance.cluster_instances", "auto_minor_version_upgrade", "true"),
|
resource.TestCheckResourceAttr("aws_rds_cluster_instance.cluster_instances", "auto_minor_version_upgrade", "true"),
|
||||||
|
resource.TestCheckResourceAttrSet("aws_rds_cluster_instance.cluster_instances", "preferred_maintenance_window"),
|
||||||
|
resource.TestCheckResourceAttrSet("aws_rds_cluster_instance.cluster_instances", "preferred_backup_window"),
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -70,7 +70,11 @@ details on controlling this property.
|
||||||
enhanced monitoring metrics to CloudWatch Logs. You can find more information on the [AWS Documentation](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html)
|
enhanced monitoring metrics to CloudWatch Logs. You can find more information on the [AWS Documentation](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html)
|
||||||
what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances.
|
what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances.
|
||||||
* `monitoring_interval` - (Optional) The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60.
|
* `monitoring_interval` - (Optional) The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60.
|
||||||
* `promotion_tier` - (Optional) Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoter to writer
|
* `promotion_tier` - (Optional) Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoter to writer.
|
||||||
|
* `preferred_backup_window` - (Optional) The daily time range during which automated backups are created if automated backups are enabled.
|
||||||
|
Eg: "04:00-09:00"
|
||||||
|
* `preferred_maintenance_window` - (Optional) The window to perform maintenance in.
|
||||||
|
Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00".
|
||||||
* `tags` - (Optional) A mapping of tags to assign to the instance.
|
* `tags` - (Optional) A mapping of tags to assign to the instance.
|
||||||
|
|
||||||
## Attributes Reference
|
## Attributes Reference
|
||||||
|
|
Loading…
Reference in New Issue