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
124130type 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