@@ -10,6 +10,8 @@ import (
1010 "strings"
1111 "time"
1212
13+ oci_work_requests "github.com/oracle/oci-go-sdk/v47/workrequests"
14+
1315 oci_common "github.com/oracle/oci-go-sdk/v47/common"
1416
1517 "github.com/hashicorp/terraform-plugin-sdk/helper/schema"
@@ -407,6 +409,7 @@ func createDatabaseDatabase(d *schema.ResourceData, m interface{}) error {
407409 sync := & DatabaseDatabaseResourceCrud {}
408410 sync .D = d
409411 sync .Client = m .(* OracleClients ).databaseClient ()
412+ sync .WorkRequestClient = m .(* OracleClients ).workRequestClient
410413
411414 return CreateResource (d , sync )
412415}
@@ -415,6 +418,7 @@ func readDatabaseDatabase(d *schema.ResourceData, m interface{}) error {
415418 sync := & DatabaseDatabaseResourceCrud {}
416419 sync .D = d
417420 sync .Client = m .(* OracleClients ).databaseClient ()
421+ sync .WorkRequestClient = m .(* OracleClients ).workRequestClient
418422
419423 return ReadResource (sync )
420424}
@@ -423,6 +427,7 @@ func deleteDatabaseDatabase(d *schema.ResourceData, m interface{}) error {
423427 sync := & DatabaseDatabaseResourceCrud {}
424428 sync .D = d
425429 sync .Client = m .(* OracleClients ).databaseClient ()
430+ sync .WorkRequestClient = m .(* OracleClients ).workRequestClient
426431 sync .DisableNotFoundRetries = true
427432
428433 return DeleteResource (d , sync )
@@ -431,6 +436,7 @@ func deleteDatabaseDatabase(d *schema.ResourceData, m interface{}) error {
431436type DatabaseDatabaseResourceCrud struct {
432437 BaseCrud
433438 Client * oci_database.DatabaseClient
439+ WorkRequestClient * oci_work_requests.WorkRequestClient
434440 Res * oci_database.Database
435441 DisableNotFoundRetries bool
436442}
@@ -491,6 +497,13 @@ func (s *DatabaseDatabaseResourceCrud) Create() error {
491497 if err != nil {
492498 return err
493499 }
500+ workId := response .OpcWorkRequestId
501+ if workId != nil {
502+ _ , err = WaitForWorkRequestWithErrorHandling (s .WorkRequestClient , workId , "database" , oci_work_requests .WorkRequestResourceActionTypeCreated , s .D .Timeout (schema .TimeoutCreate ), s .DisableNotFoundRetries )
503+ if err != nil {
504+ return err
505+ }
506+ }
494507
495508 s .Res = & response .Database
496509 return nil
@@ -918,6 +931,7 @@ func updateDatabaseDatabase(d *schema.ResourceData, m interface{}) error {
918931 sync := & DatabaseDatabaseResourceCrud {}
919932 sync .D = d
920933 sync .Client = m .(* OracleClients ).databaseClient ()
934+ sync .WorkRequestClient = m .(* OracleClients ).workRequestClient
921935
922936 return UpdateResource (d , sync )
923937}
@@ -957,6 +971,14 @@ func (s *DatabaseDatabaseResourceCrud) Update() error {
957971 return err
958972 }
959973
974+ workId := response .OpcWorkRequestId
975+ if workId != nil {
976+ _ , err = WaitForWorkRequestWithErrorHandling (s .WorkRequestClient , workId , "database" , oci_work_requests .WorkRequestResourceActionTypeUpdated , s .D .Timeout (schema .TimeoutUpdate ), s .DisableNotFoundRetries )
977+ if err != nil {
978+ return err
979+ }
980+ }
981+
960982 s .Res = & response .Database
961983 return nil
962984}
@@ -1088,8 +1110,18 @@ func (s *DatabaseDatabaseResourceCrud) kmsRotation(databaseId string) error {
10881110 rotateKeyRequest := oci_database.RotateVaultKeyRequest {}
10891111 rotateKeyRequest .DatabaseId = & databaseId
10901112 rotateKeyRequest .RequestMetadata .RetryPolicy = getRetryPolicy (s .DisableNotFoundRetries , "database" )
1091- _ , err := s .Client .RotateVaultKey (context .Background (), rotateKeyRequest )
1092- return err
1113+ response , err := s .Client .RotateVaultKey (context .Background (), rotateKeyRequest )
1114+ if err != nil {
1115+ return err
1116+ }
1117+ workId := response .OpcWorkRequestId
1118+ if workId != nil {
1119+ _ , err = WaitForWorkRequestWithErrorHandling (s .WorkRequestClient , workId , "database" , oci_work_requests .WorkRequestResourceActionTypeUpdated , s .D .Timeout (schema .TimeoutUpdate ), s .DisableNotFoundRetries )
1120+ if err != nil {
1121+ return err
1122+ }
1123+ }
1124+ return nil
10931125 }
10941126 return nil
10951127}
@@ -1115,10 +1147,16 @@ func (s *DatabaseDatabaseResourceCrud) kmsMigration(databaseId string) error {
11151147 migrationKeyRequest .KmsKeyVersionId = & temp
11161148 }
11171149 }
1118- _ , err := s .Client .MigrateVaultKey (context .Background (), migrationKeyRequest )
1150+ response , err := s .Client .MigrateVaultKey (context .Background (), migrationKeyRequest )
11191151 if err != nil {
11201152 return err
11211153 }
1154+ workId := response .OpcWorkRequestId
1155+ if workId != nil {
1156+ _ , err = WaitForWorkRequestWithErrorHandling (s .WorkRequestClient , workId , "database" , oci_work_requests .WorkRequestResourceActionTypeUpdated , s .D .Timeout (schema .TimeoutUpdate ), s .DisableNotFoundRetries )
1157+ if err != nil {
1158+ }
1159+ }
11221160 migrateOperation = true
11231161 }
11241162
0 commit comments