@@ -10,6 +10,8 @@ import (
1010 "strings"
1111 "time"
1212
13+ oci_work_requests "github.com/oracle/oci-go-sdk/v47/workrequests"
14+
1315 "github.com/hashicorp/terraform-plugin-sdk/helper/schema"
1416 "github.com/hashicorp/terraform-plugin-sdk/helper/validation"
1517
@@ -27,7 +29,7 @@ func DatabaseDbSystemResource() *schema.Resource {
2729 State : schema .ImportStatePassthrough ,
2830 },
2931 Timeouts : & schema.ResourceTimeout {
30- Create : getTimeoutDuration ("0h " ),
32+ Create : getTimeoutDuration ("2h " ),
3133 Update : getTimeoutDuration ("2h" ),
3234 Delete : getTimeoutDuration ("2h" ),
3335 },
@@ -827,6 +829,7 @@ func createDatabaseDbSystem(d *schema.ResourceData, m interface{}) error {
827829 sync := & DatabaseDbSystemResourceCrud {}
828830 sync .D = d
829831 sync .Client = m .(* OracleClients ).databaseClient ()
832+ sync .WorkRequestClient = m .(* OracleClients ).workRequestClient
830833
831834 return CreateDBSystemResource (d , sync )
832835}
@@ -835,6 +838,7 @@ func readDatabaseDbSystem(d *schema.ResourceData, m interface{}) error {
835838 sync := & DatabaseDbSystemResourceCrud {}
836839 sync .D = d
837840 sync .Client = m .(* OracleClients ).databaseClient ()
841+ sync .WorkRequestClient = m .(* OracleClients ).workRequestClient
838842
839843 return ReadResource (sync )
840844}
@@ -843,6 +847,7 @@ func updateDatabaseDbSystem(d *schema.ResourceData, m interface{}) error {
843847 sync := & DatabaseDbSystemResourceCrud {}
844848 sync .D = d
845849 sync .Client = m .(* OracleClients ).databaseClient ()
850+ sync .WorkRequestClient = m .(* OracleClients ).workRequestClient
846851
847852 return UpdateResource (d , sync )
848853}
@@ -851,6 +856,7 @@ func deleteDatabaseDbSystem(d *schema.ResourceData, m interface{}) error {
851856 sync := & DatabaseDbSystemResourceCrud {}
852857 sync .D = d
853858 sync .Client = m .(* OracleClients ).databaseClient ()
859+ sync .WorkRequestClient = m .(* OracleClients ).workRequestClient
854860 sync .DisableNotFoundRetries = true
855861
856862 return DeleteResource (d , sync )
@@ -859,6 +865,7 @@ func deleteDatabaseDbSystem(d *schema.ResourceData, m interface{}) error {
859865type DatabaseDbSystemResourceCrud struct {
860866 BaseCrud
861867 Client * oci_database.DatabaseClient
868+ WorkRequestClient * oci_work_requests.WorkRequestClient
862869 Res * oci_database.DbSystem
863870 DbHome * oci_database.DbHome
864871 Database * oci_database.Database
@@ -931,6 +938,14 @@ func (s *DatabaseDbSystemResourceCrud) Create() error {
931938
932939 s .Res = & response .DbSystem
933940
941+ workId := response .OpcWorkRequestId
942+ if workId != nil {
943+ _ , err = WaitForWorkRequestWithErrorHandling (s .WorkRequestClient , workId , "database" , oci_work_requests .WorkRequestResourceActionTypeCreated , s .D .Timeout (schema .TimeoutCreate ), s .DisableNotFoundRetries )
944+ if err != nil {
945+ return err
946+ }
947+ }
948+
934949 err = s .getDbHomeInfo ()
935950 if err != nil {
936951 log .Printf ("[WARN] Could not get info about the first DbHome in the dbSystem: %v" , err )
@@ -1070,8 +1085,17 @@ func (s *DatabaseDbSystemResourceCrud) Update() error {
10701085 return err
10711086 }
10721087
1088+ workId := response .OpcWorkRequestId
1089+ if workId != nil {
1090+ _ , err = WaitForWorkRequestWithErrorHandling (s .WorkRequestClient , workId , "database" , oci_work_requests .WorkRequestResourceActionTypeUpdated , s .D .Timeout (schema .TimeoutUpdate ), s .DisableNotFoundRetries )
1091+ if err != nil {
1092+ return err
1093+ }
1094+ }
1095+
10731096 s .Res = & response .DbSystem
10741097
1098+ // Check lifecycle state of db system
10751099 getDbSystemResponse , err := waitForDbSystemIfItIsUpdating (s .Res .Id , s .Client , s .D .Timeout (schema .TimeoutUpdate ))
10761100 if err != nil {
10771101 err = s .SetData ()
@@ -2915,6 +2939,14 @@ func (s *DatabaseDbSystemResourceCrud) UpdateDatabaseOperation() error {
29152939 return err
29162940 }
29172941
2942+ workId := updateDatabaseResponse .OpcWorkRequestId
2943+ if workId != nil {
2944+ _ , err = WaitForWorkRequestWithErrorHandling (s .WorkRequestClient , workId , "database" , oci_work_requests .WorkRequestResourceActionTypeUpdated , s .D .Timeout (schema .TimeoutUpdate ), s .DisableNotFoundRetries )
2945+ if err != nil {
2946+ return err
2947+ }
2948+ }
2949+
29182950 getDatabaseRequest := oci_database.GetDatabaseRequest {}
29192951
29202952 getDatabaseRequest .DatabaseId = s .Database .Id
@@ -2947,6 +2979,14 @@ func (s *DatabaseDbSystemResourceCrud) sendUpdateForLicenseModel(dbSystemId stri
29472979 return err
29482980 }
29492981
2982+ workId := response .OpcWorkRequestId
2983+ if workId != nil {
2984+ _ , err = WaitForWorkRequestWithErrorHandling (s .WorkRequestClient , workId , "database" , oci_work_requests .WorkRequestResourceActionTypeUpdated , s .D .Timeout (schema .TimeoutUpdate ), s .DisableNotFoundRetries )
2985+ if err != nil {
2986+ return err
2987+ }
2988+ }
2989+
29502990 s .Res = & response .DbSystem
29512991
29522992 getDbSystemResponse , err := waitForDbSystemIfItIsUpdating (s .Res .Id , s .Client , s .D .Timeout (schema .TimeoutUpdate ))
0 commit comments