Skip to content

Commit

Permalink
Fix sql_database_instance to include backup_configuration in create r…
Browse files Browse the repository at this point in the history
…equest (#6836) (#13092)

Signed-off-by: Modular Magician <magic-modules@google.com>

Signed-off-by: Modular Magician <magic-modules@google.com>
  • Loading branch information
modular-magician committed Nov 21, 2022
1 parent 2777206 commit 111f811
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 9 deletions.
3 changes: 3 additions & 0 deletions .changelog/6836.txt
@@ -0,0 +1,3 @@
```release-note:bug
sql: fix `googe_sql_database_instance` to include `backup_configuration` in initial create request
```
12 changes: 6 additions & 6 deletions google/resource_sql_database_instance.go
Expand Up @@ -930,12 +930,12 @@ func resourceSqlDatabaseInstanceCreate(d *schema.ResourceData, meta interface{})
var patchData *sqladmin.DatabaseInstance

// BinaryLogging can be enabled on replica instances but only after creation.
if instance.MasterInstanceName != "" && instance.Settings != nil && instance.Settings.BackupConfiguration != nil {
bc := instance.Settings.BackupConfiguration
instance.Settings.BackupConfiguration = nil
if bc.BinaryLogEnabled {
patchData = &sqladmin.DatabaseInstance{Settings: &sqladmin.Settings{BackupConfiguration: bc}}
}
if instance.MasterInstanceName != "" && instance.Settings != nil && instance.Settings.BackupConfiguration != nil && instance.Settings.BackupConfiguration.BinaryLogEnabled {
settingsCopy := expandSqlDatabaseInstanceSettings(s.([]interface{}))
bc := settingsCopy.BackupConfiguration
patchData = &sqladmin.DatabaseInstance{Settings: &sqladmin.Settings{BackupConfiguration: bc}}

instance.Settings.BackupConfiguration.BinaryLogEnabled = false
}

var op *sqladmin.Operation
Expand Down
15 changes: 12 additions & 3 deletions google/resource_sql_database_instance_test.go
Expand Up @@ -471,7 +471,12 @@ func TestAccSqlDatabaseInstance_replica(t *testing.T) {
Steps: []resource.TestStep{
{
Config: fmt.Sprintf(
testGoogleSqlDatabaseInstance_replica, databaseID, databaseID, databaseID),
testGoogleSqlDatabaseInstance_replica, databaseID, databaseID, databaseID, "true"),
ExpectError: regexp.MustCompile("Error, failed to create instance tf-lw-\\d+-2: googleapi: Error 400: Invalid request: Invalid flag for instance role: Backups cannot be enabled for read replica instance.., invalid"),
},
{
Config: fmt.Sprintf(
testGoogleSqlDatabaseInstance_replica, databaseID, databaseID, databaseID, "false"),
},
{
ResourceName: "google_sql_database_instance.instance_master",
Expand Down Expand Up @@ -1985,9 +1990,10 @@ resource "google_sql_database_instance" "replica1" {
settings {
tier = "db-n1-standard-1"
backup_configuration {
backup_configuration {
enabled = false
binary_log_enabled = true
}
}
}
master_instance_name = google_sql_database_instance.instance_master.name
Expand All @@ -2010,6 +2016,9 @@ resource "google_sql_database_instance" "replica2" {
settings {
tier = "db-n1-standard-1"
backup_configuration {
enabled = %s
}
}
master_instance_name = google_sql_database_instance.instance_master.name
Expand Down

0 comments on commit 111f811

Please sign in to comment.