Skip to content

Commit c33f2ac

Browse files
committed
add workrequest to exadata database
1 parent 06b8d9c commit c33f2ac

File tree

3 files changed

+52
-5
lines changed

3 files changed

+52
-5
lines changed

oci/database_exadata_infrastructure_resource.go

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import (
99
"fmt"
1010
"io/ioutil"
1111

12+
oci_work_requests "github.com/oracle/oci-go-sdk/v47/workrequests"
13+
1214
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
1315

1416
oci_database "github.com/oracle/oci-go-sdk/v47/database"
@@ -313,6 +315,7 @@ func createDatabaseExadataInfrastructure(d *schema.ResourceData, m interface{})
313315
sync := &DatabaseExadataInfrastructureResourceCrud{}
314316
sync.D = d
315317
sync.Client = m.(*OracleClients).databaseClient()
318+
sync.WorkRequestClient = m.(*OracleClients).workRequestClient
316319

317320
return CreateResource(d, sync)
318321
}
@@ -321,6 +324,7 @@ func readDatabaseExadataInfrastructure(d *schema.ResourceData, m interface{}) er
321324
sync := &DatabaseExadataInfrastructureResourceCrud{}
322325
sync.D = d
323326
sync.Client = m.(*OracleClients).databaseClient()
327+
sync.WorkRequestClient = m.(*OracleClients).workRequestClient
324328

325329
return ReadResource(sync)
326330
}
@@ -329,6 +333,7 @@ func updateDatabaseExadataInfrastructure(d *schema.ResourceData, m interface{})
329333
sync := &DatabaseExadataInfrastructureResourceCrud{}
330334
sync.D = d
331335
sync.Client = m.(*OracleClients).databaseClient()
336+
sync.WorkRequestClient = m.(*OracleClients).workRequestClient
332337

333338
return UpdateResource(d, sync)
334339
}
@@ -337,6 +342,7 @@ func deleteDatabaseExadataInfrastructure(d *schema.ResourceData, m interface{})
337342
sync := &DatabaseExadataInfrastructureResourceCrud{}
338343
sync.D = d
339344
sync.Client = m.(*OracleClients).databaseClient()
345+
sync.WorkRequestClient = m.(*OracleClients).workRequestClient
340346
sync.DisableNotFoundRetries = true
341347

342348
return DeleteResource(d, sync)
@@ -345,6 +351,7 @@ func deleteDatabaseExadataInfrastructure(d *schema.ResourceData, m interface{})
345351
type DatabaseExadataInfrastructureResourceCrud struct {
346352
BaseCrud
347353
Client *oci_database.DatabaseClient
354+
WorkRequestClient *oci_work_requests.WorkRequestClient
348355
Res *oci_database.ExadataInfrastructure
349356
DisableNotFoundRetries bool
350357
}
@@ -743,10 +750,6 @@ func (s *DatabaseExadataInfrastructureResourceCrud) Update() error {
743750
return waitErr
744751
}
745752

746-
//if s.Res.Shape != s.D.Get("state") {
747-
// s.D.Set("shape", s.Res.Shape)
748-
//}
749-
750753
return nil
751754
}
752755

@@ -1138,5 +1141,13 @@ func (s *DatabaseExadataInfrastructureResourceCrud) activateExadataInfrastructur
11381141
return nil, err
11391142
}
11401143

1144+
workId := response.OpcWorkRequestId
1145+
if workId != nil {
1146+
_, err = WaitForWorkRequestWithErrorHandling(s.WorkRequestClient, workId, "exadataInfrastructure", oci_work_requests.WorkRequestResourceActionTypeUpdated, s.D.Timeout(schema.TimeoutUpdate), s.DisableNotFoundRetries)
1147+
if err != nil {
1148+
return nil, err
1149+
}
1150+
}
1151+
11411152
return &response, nil
11421153
}

oci/database_exadata_infrastructure_storage_resource.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ package oci
66
import (
77
"context"
88

9+
oci_work_requests "github.com/oracle/oci-go-sdk/v47/workrequests"
10+
911
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
1012
oci_database "github.com/oracle/oci-go-sdk/v47/database"
1113
)
@@ -308,13 +310,15 @@ func updateDatabaseExadataInfrastructureStorage(d *schema.ResourceData, m interf
308310
sync := &DatabaseExadataInfrastructureStorageResourceCrud{}
309311
sync.D = d
310312
sync.Client = m.(*OracleClients).databaseClient()
313+
sync.WorkRequestClient = m.(*OracleClients).workRequestClient
311314

312315
return UpdateResource(d, sync)
313316
}
314317

315318
type DatabaseExadataInfrastructureStorageResourceCrud struct {
316319
BaseCrud
317320
Client *oci_database.DatabaseClient
321+
WorkRequestClient *oci_work_requests.WorkRequestClient
318322
Res *oci_database.ExadataInfrastructure
319323
DisableNotFoundRetries bool
320324
}
@@ -338,6 +342,14 @@ func (s *DatabaseExadataInfrastructureStorageResourceCrud) Update() error {
338342
return err
339343
}
340344

345+
workId := response.OpcWorkRequestId
346+
if workId != nil {
347+
_, err = WaitForWorkRequestWithErrorHandling(s.WorkRequestClient, workId, "exadataInfrastructure", oci_work_requests.WorkRequestResourceActionTypeUpdated, s.D.Timeout(schema.TimeoutUpdate), s.DisableNotFoundRetries)
348+
if err != nil {
349+
return err
350+
}
351+
}
352+
341353
s.Res = &response.ExadataInfrastructure
342354

343355
return nil

oci/database_exadata_iorm_config_resource.go

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import (
88
"context"
99
"fmt"
1010

11+
oci_work_requests "github.com/oracle/oci-go-sdk/v47/workrequests"
12+
1113
"github.com/hashicorp/terraform-plugin-sdk/helper/hashcode"
1214
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
1315
"github.com/hashicorp/terraform-plugin-sdk/helper/validation"
@@ -93,6 +95,7 @@ func createDatabaseExadataIormConfig(d *schema.ResourceData, m interface{}) erro
9395
sync := &DatabaseExadataIormConfigResourceCrud{}
9496
sync.D = d
9597
sync.Client = m.(*OracleClients).databaseClient()
98+
sync.WorkRequestClient = m.(*OracleClients).workRequestClient
9699

97100
return CreateResource(d, sync)
98101
}
@@ -101,6 +104,7 @@ func readDatabaseExadataIormConfig(d *schema.ResourceData, m interface{}) error
101104
sync := &DatabaseExadataIormConfigResourceCrud{}
102105
sync.D = d
103106
sync.Client = m.(*OracleClients).databaseClient()
107+
sync.WorkRequestClient = m.(*OracleClients).workRequestClient
104108

105109
return ReadResource(sync)
106110
}
@@ -109,6 +113,7 @@ func updateDatabaseExadataIormConfig(d *schema.ResourceData, m interface{}) erro
109113
sync := &DatabaseExadataIormConfigResourceCrud{}
110114
sync.D = d
111115
sync.Client = m.(*OracleClients).databaseClient()
116+
sync.WorkRequestClient = m.(*OracleClients).workRequestClient
112117

113118
return UpdateResource(d, sync)
114119
}
@@ -117,13 +122,15 @@ func deleteDatabaseExadataIormConfig(d *schema.ResourceData, m interface{}) erro
117122
sync := &DatabaseExadataIormConfigResourceCrud{}
118123
sync.D = d
119124
sync.Client = m.(*OracleClients).databaseClient()
125+
sync.WorkRequestClient = m.(*OracleClients).workRequestClient
120126

121127
return DeleteResource(d, sync)
122128
}
123129

124130
type DatabaseExadataIormConfigResourceCrud struct {
125131
BaseCrud
126132
Client *oci_database.DatabaseClient
133+
WorkRequestClient *oci_work_requests.WorkRequestClient
127134
Res *oci_database.ExadataIormConfig
128135
DisableNotFoundRetries bool
129136
}
@@ -232,10 +239,19 @@ func (s *DatabaseExadataIormConfigResourceCrud) Update() error {
232239

233240
request.RequestMetadata.RetryPolicy = getRetryPolicy(s.DisableNotFoundRetries, "database")
234241

235-
if _, err := s.Client.UpdateExadataIormConfig(context.Background(), request); err != nil {
242+
response, err := s.Client.UpdateExadataIormConfig(context.Background(), request)
243+
if err != nil {
236244
return err
237245
}
238246

247+
workId := response.OpcWorkRequestId
248+
if workId != nil {
249+
_, err = WaitForWorkRequestWithErrorHandling(s.WorkRequestClient, workId, "dbSystem", oci_work_requests.WorkRequestResourceActionTypeUpdated, s.D.Timeout(schema.TimeoutUpdate), s.DisableNotFoundRetries)
250+
if err != nil {
251+
return err
252+
}
253+
}
254+
239255
retentionPolicyFunc := func() bool { return s.Res.LifecycleState == oci_database.ExadataIormConfigLifecycleStateEnabled }
240256
return WaitForResourceCondition(s, retentionPolicyFunc, s.D.Timeout(schema.TimeoutUpdate))
241257
}
@@ -330,6 +346,14 @@ func (s *DatabaseExadataIormConfigResourceCrud) Delete() error {
330346
return err
331347
}
332348

349+
workId := response.OpcWorkRequestId
350+
if workId != nil {
351+
_, err = WaitForWorkRequestWithErrorHandling(s.WorkRequestClient, workId, "dbSystem", oci_work_requests.WorkRequestResourceActionTypeUpdated, s.D.Timeout(schema.TimeoutUpdate), s.DisableNotFoundRetries)
352+
if err != nil {
353+
return err
354+
}
355+
}
356+
333357
s.Res = &response.ExadataIormConfig
334358
return nil
335359
}

0 commit comments

Comments
 (0)