Skip to content

Commit ba72019

Browse files
committed
Fix exadata infrastructure resource to update state in case of activation error
* Fix backup destination details to force new in db home * Fix db home test for backup destinations
1 parent 96cadca commit ba72019

File tree

3 files changed

+10
-16
lines changed

3 files changed

+10
-16
lines changed

oci/database_db_home_resource.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ func DatabaseDbHomeResource() *schema.Resource {
9191
Type: schema.TypeList,
9292
Optional: true,
9393
Computed: true,
94+
ForceNew: true,
9495
Elem: &schema.Resource{
9596
Schema: map[string]*schema.Schema{
9697

oci/database_db_home_test.go

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,9 @@ var (
6767
"db_name": Representation{repType: Required, create: `dbNone0`},
6868
})
6969
dbHomeDatabaseDbBackupConfigRepresentation = map[string]interface{}{
70-
"auto_backup_enabled": Representation{repType: Optional, create: `true`, update: `false`},
71-
"auto_backup_window": Representation{repType: Optional, create: `SLOT_TWO`, update: `SLOT_TWO`},
72-
"backup_destination_details": RepresentationGroup{Optional, dbHomeDatabaseDbBackupConfigBackupDestinationDetails1Representation},
73-
}
74-
dbHomeDatabaseDbBackupConfigBackupDestinationDetails1Representation = map[string]interface{}{
75-
"id": Representation{repType: Optional, create: `${oci_database_backup_destination.test_backup_destination1.id}`},
76-
"type": Representation{repType: Optional, create: `NFS`},
70+
"auto_backup_enabled": Representation{repType: Optional, create: `true`, update: `false`},
71+
"auto_backup_window": Representation{repType: Optional, create: `SLOT_TWO`},
72+
"recovery_window_in_days": Representation{repType: Optional, create: `10`},
7773
}
7874
dbHomeRepresentationSourceDbBackup = representationCopyWithNewProperties(dbHomeRepresentationBase, map[string]interface{}{
7975
"database": RepresentationGroup{Required, dbHomeDatabaseRepresentationSourceDbBackup},
@@ -116,12 +112,11 @@ var (
116112
}
117113

118114
dbHomeDatabaseDbBackupConfigBackupDestinationDetails2Representation = map[string]interface{}{
119-
"id": Representation{repType: Optional, create: `${oci_database_backup_destination.test_backup_destination2.id}`},
115+
"id": Representation{repType: Optional, create: `${oci_database_backup_destination.test_backup_destination.id}`},
120116
"type": Representation{repType: Required, create: `NFS`},
121117
}
122118

123-
DbHomeResourceDependencies = BackupResourceDependencies + DefinedTagsDependencies + generateResourceFromRepresentationMap("oci_database_backup_destination", "test_backup_destination1", Optional, Create, backupDestinationNFSRepresentation) +
124-
generateResourceFromRepresentationMap("oci_database_backup_destination", "test_backup_destination2", Optional, Create, backupDestinationNFSRepresentation) +
119+
DbHomeResourceDependencies = BackupResourceDependencies + DefinedTagsDependencies + generateResourceFromRepresentationMap("oci_database_backup_destination", "test_backup_destination", Optional, Create, backupDestinationNFSRepresentation) +
125120
generateResourceFromRepresentationMap("oci_database_exadata_infrastructure", "test_exadata_infrastructure", Optional, Update,
126121
representationCopyWithNewProperties(exadataInfrastructureActivateRepresentation, map[string]interface{}{"activation_file": Representation{repType: Optional, update: activationFilePath}})) +
127122
generateResourceFromRepresentationMap("oci_database_vm_cluster_network", "test_vm_cluster_network", Optional, Update, vmClusterNetworkValidateRepresentation) +
@@ -199,9 +194,7 @@ func TestDatabaseDbHomeResource_basic(t *testing.T) {
199194
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.0.db_backup_config.#", "1"),
200195
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.0.db_backup_config.0.auto_backup_enabled", "true"),
201196
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.0.db_backup_config.0.auto_backup_window", "SLOT_TWO"),
202-
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.0.db_backup_config.0.backup_destination_details.#", "1"),
203-
resource.TestCheckResourceAttrSet(resourceName+"_source_none", "database.0.db_backup_config.0.backup_destination_details.0.id"),
204-
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.0.db_backup_config.0.backup_destination_details.0.type", "NFS"),
197+
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.0.db_backup_config.0.recovery_window_in_days", "10"),
205198
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.0.db_name", "dbNone"),
206199
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.0.db_workload", "OLTP"),
207200
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.0.defined_tags.%", "1"),
@@ -267,9 +260,7 @@ func TestDatabaseDbHomeResource_basic(t *testing.T) {
267260
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.0.db_backup_config.#", "1"),
268261
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.0.db_backup_config.0.auto_backup_enabled", "false"),
269262
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.0.db_backup_config.0.auto_backup_window", "SLOT_TWO"),
270-
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.0.db_backup_config.0.backup_destination_details.#", "1"),
271-
resource.TestCheckResourceAttrSet(resourceName+"_source_none", "database.0.db_backup_config.0.backup_destination_details.0.id"),
272-
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.0.db_backup_config.0.backup_destination_details.0.type", "NFS"),
263+
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.0.db_backup_config.0.recovery_window_in_days", "10"),
273264
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.0.db_name", "dbNone"),
274265
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.0.db_workload", "OLTP"),
275266
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.0.defined_tags.%", "1"),

oci/database_exadata_infrastructure_resource.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,7 @@ func (s *DatabaseExadataInfrastructureResourceCrud) Create() error {
328328
if activationFile, ok := s.D.GetOkExists("activation_file"); ok {
329329
response, err := s.activateExadataInfrastructure(activationFile.(string), s.D.Id())
330330
if err != nil {
331+
s.D.Set("activation_file", "")
331332
return err
332333
}
333334
s.Res = &response.ExadataInfrastructure
@@ -466,6 +467,7 @@ func (s *DatabaseExadataInfrastructureResourceCrud) Update() error {
466467
if activationFile, ok := s.D.GetOkExists("activation_file"); ok {
467468
response, err := s.activateExadataInfrastructure(activationFile.(string), s.D.Id())
468469
if err != nil {
470+
s.D.Set("activation_file", "")
469471
return err
470472
}
471473
s.Res = &response.ExadataInfrastructure

0 commit comments

Comments
 (0)