Skip to content

Commit

Permalink
Merge pull request #5895 from terraform-providers/b-aws_redshift_clus…
Browse files Browse the repository at this point in the history
…ter-disablelogging

resource/aws_redshift_cluster: Properly disable logging when using logging nested argument
  • Loading branch information
bflad authored Sep 19, 2018
2 parents a23fab8 + 0b518be commit f2ecfa4
Showing 1 changed file with 24 additions and 17 deletions.
41 changes: 24 additions & 17 deletions aws/resource_aws_redshift_cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -787,31 +787,38 @@ func resourceAwsRedshiftClusterUpdate(d *schema.ResourceData, meta interface{})
}
}

deprecatedHasChange := (d.HasChange("enable_logging") || d.HasChange("bucket_name") || d.HasChange("s3_key_prefix"))
if d.HasChange("logging") || deprecatedHasChange {
var loggingErr error

logging, ok := d.GetOk("logging.0.enable")
_, deprecatedOk := d.GetOk("enable_logging")

if (ok && logging.(bool)) || deprecatedOk {
if d.HasChange("logging") {
if loggingEnabled, ok := d.GetOk("logging.0.enable"); ok && loggingEnabled.(bool) {
log.Printf("[INFO] Enabling Logging for Redshift Cluster %q", d.Id())
loggingErr = enableRedshiftClusterLogging(d, conn)
if loggingErr != nil {
return loggingErr
err := enableRedshiftClusterLogging(d, conn)
if err != nil {
return err
}
} else {
log.Printf("[INFO] Disabling Logging for Redshift Cluster %q", d.Id())
_, loggingErr = conn.DisableLogging(&redshift.DisableLoggingInput{
_, err := conn.DisableLogging(&redshift.DisableLoggingInput{
ClusterIdentifier: aws.String(d.Id()),
})
if loggingErr != nil {
return loggingErr
if err != nil {
return err
}
}
} else if d.HasChange("enable_logging") || d.HasChange("bucket_name") || d.HasChange("s3_key_prefix") {
if enableLogging, ok := d.GetOk("enable_logging"); ok && enableLogging.(bool) {
log.Printf("[INFO] Enabling Logging for Redshift Cluster %q", d.Id())
err := enableRedshiftClusterLogging(d, conn)
if err != nil {
return err
}
} else {
log.Printf("[INFO] Disabling Logging for Redshift Cluster %q", d.Id())
_, err := conn.DisableLogging(&redshift.DisableLoggingInput{
ClusterIdentifier: aws.String(d.Id()),
})
if err != nil {
return err
}
}

d.SetPartial("enable_logging")
d.SetPartial("logging")
}

d.Partial(false)
Expand Down

0 comments on commit f2ecfa4

Please sign in to comment.