Skip to content

Commit c96c5a1

Browse files
Terraform Team Automationsrinioci
authored andcommitted
Bug Fix: fix dbHome deletion and CEI polling workrequest.
1 parent 0687824 commit c96c5a1

File tree

3 files changed

+25
-10
lines changed

3 files changed

+25
-10
lines changed

internal/integrationtest/database_cloud_exadata_infrastructure_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ func TestDatabaseCloudExadataInfrastructureResource_basic(t *testing.T) {
304304
resource.TestCheckResourceAttr(datasourceName, "cloud_exadata_infrastructures.0.compartment_id", compartmentId),
305305
resource.TestCheckResourceAttr(datasourceName, "cloud_exadata_infrastructures.0.compute_count", "2"),
306306
resource.TestCheckResourceAttr(datasourceName, "cloud_exadata_infrastructures.0.customer_contacts.#", "1"),
307-
resource.TestCheckResourceAttr(datasourceName, "cloud_exadata_infrastructures.0.defined_file_system_configurations.#", "7"),
307+
resource.TestCheckResourceAttr(datasourceName, "cloud_exadata_infrastructures.0.defined_file_system_configurations.#", "9"),
308308
//resource.TestCheckResourceAttrSet(datasourceName, "cloud_exadata_infrastructures.0.db_server_version"),
309309
resource.TestCheckResourceAttr(datasourceName, "cloud_exadata_infrastructures.0.customer_contacts.0.email", "test2@oracle.com"),
310310
resource.TestCheckResourceAttr(datasourceName, "cloud_exadata_infrastructures.0.display_name", "displayName2"),
@@ -348,7 +348,7 @@ func TestDatabaseCloudExadataInfrastructureResource_basic(t *testing.T) {
348348
resource.TestCheckResourceAttr(singularDatasourceName, "compartment_id", compartmentId),
349349
resource.TestCheckResourceAttr(singularDatasourceName, "compute_count", "2"),
350350
resource.TestCheckResourceAttr(singularDatasourceName, "customer_contacts.#", "1"),
351-
resource.TestCheckResourceAttr(singularDatasourceName, "defined_file_system_configurations.#", "7"),
351+
resource.TestCheckResourceAttr(singularDatasourceName, "defined_file_system_configurations.#", "9"),
352352
//resource.TestCheckResourceAttrSet(singularDatasourceName, "db_server_version"),
353353
resource.TestCheckResourceAttr(singularDatasourceName, "customer_contacts.0.email", "test2@oracle.com"),
354354
resource.TestCheckResourceAttr(singularDatasourceName, "display_name", "displayName2"),

internal/service/database/database_cloud_exadata_infrastructure_resource.go

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,7 @@ func createDatabaseCloudExadataInfrastructure(d *schema.ResourceData, m interfac
340340
sync := &DatabaseCloudExadataInfrastructureResourceCrud{}
341341
sync.D = d
342342
sync.Client = m.(*client.OracleClients).DatabaseClient()
343+
sync.WorkRequestClient = m.(*client.OracleClients).WorkRequestClient
343344

344345
return tfresource.CreateResource(d, sync)
345346
}
@@ -504,6 +505,20 @@ func (s *DatabaseCloudExadataInfrastructureResourceCrud) Create() error {
504505
return err
505506
}
506507

508+
workId := response.OpcWorkRequestId
509+
if workId != nil {
510+
var identifier *string
511+
var err error
512+
identifier = response.Id
513+
if identifier != nil {
514+
s.D.SetId(*identifier)
515+
}
516+
_, err = tfresource.WaitForWorkRequestWithErrorHandling(s.WorkRequestClient, workId, "cloudExadataInfrastructure", oci_work_requests.WorkRequestResourceActionTypeCreated, s.D.Timeout(schema.TimeoutCreate), s.DisableNotFoundRetries)
517+
if err != nil {
518+
return err
519+
}
520+
}
521+
507522
s.Res = &response.CloudExadataInfrastructure
508523
return nil
509524
}
@@ -607,6 +622,7 @@ func (s *DatabaseCloudExadataInfrastructureResourceCrud) Update() error {
607622
retentionPolicyFunc := func() bool {
608623
return s.Res.LifecycleState == oci_database.CloudExadataInfrastructureLifecycleStateAvailable
609624
}
625+
// Cannot poll by workrequest because we do not set affected resources during update. We only set them during scale.
610626
if err := tfresource.WaitForResourceCondition(s, retentionPolicyFunc, s.D.Timeout(schema.TimeoutUpdate)); err != nil {
611627
return err
612628
}
@@ -988,13 +1004,17 @@ func (s *DatabaseCloudExadataInfrastructureResourceCrud) addStorageMVM() error {
9881004

9891005
addStorageRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "database")
9901006

991-
_, err := s.Client.AddStorageCapacityCloudExadataInfrastructure(context.Background(), addStorageRequest)
1007+
response, err := s.Client.AddStorageCapacityCloudExadataInfrastructure(context.Background(), addStorageRequest)
9921008
if err != nil {
9931009
return err
9941010
}
9951011

996-
if waitErr := tfresource.WaitForUpdatedState(s.D, s); waitErr != nil {
997-
return waitErr
1012+
workId := response.OpcWorkRequestId
1013+
if workId != nil {
1014+
_, err = tfresource.WaitForWorkRequestWithErrorHandling(s.WorkRequestClient, workId, "cloudExadataInfrastructure", oci_work_requests.WorkRequestResourceActionTypeUpdated, s.D.Timeout(schema.TimeoutUpdate), s.DisableNotFoundRetries)
1015+
if err != nil {
1016+
return err
1017+
}
9981018
}
9991019

10001020
return nil

internal/service/database/database_db_home_resource.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -783,11 +783,6 @@ func (s *DatabaseDbHomeResourceCrud) Delete() error {
783783
deleteDbHomeRetryDurationFn := tfresource.GetDbHomeRetryDurationFunction(s.D.Timeout(schema.TimeoutDelete))
784784
request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "database", deleteDbHomeRetryDurationFn)
785785

786-
dbErr := s.deleteNestedDB()
787-
if dbErr != nil {
788-
log.Printf("[WARN] Could not delete nested database in DbHome. Will proceed to delete dbHome: %v", dbErr)
789-
}
790-
791786
_, err := s.Client.DeleteDbHome(context.Background(), request)
792787
if err != nil {
793788
return err

0 commit comments

Comments
 (0)