Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix sql_database_instance to include backup_configuration in create request #13092

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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