88 "github.com/hashicorp/terraform/helper/schema"
99
1010 oci_core "github.com/oracle/oci-go-sdk/core"
11+ oci_work_requests "github.com/oracle/oci-go-sdk/workrequests"
1112)
1213
1314func CoreDedicatedVmHostResource () * schema.Resource {
@@ -89,6 +90,7 @@ func createCoreDedicatedVmHost(d *schema.ResourceData, m interface{}) error {
8990 sync := & CoreDedicatedVmHostResourceCrud {}
9091 sync .D = d
9192 sync .Client = m .(* OracleClients ).computeClient
93+ sync .workRequestClient = m .(* OracleClients ).workRequestClient
9294
9395 return CreateResource (d , sync )
9496}
@@ -105,6 +107,7 @@ func updateCoreDedicatedVmHost(d *schema.ResourceData, m interface{}) error {
105107 sync := & CoreDedicatedVmHostResourceCrud {}
106108 sync .D = d
107109 sync .Client = m .(* OracleClients ).computeClient
110+ sync .workRequestClient = m .(* OracleClients ).workRequestClient
108111
109112 return UpdateResource (d , sync )
110113}
@@ -113,6 +116,7 @@ func deleteCoreDedicatedVmHost(d *schema.ResourceData, m interface{}) error {
113116 sync := & CoreDedicatedVmHostResourceCrud {}
114117 sync .D = d
115118 sync .Client = m .(* OracleClients ).computeClient
119+ sync .workRequestClient = m .(* OracleClients ).workRequestClient
116120 sync .DisableNotFoundRetries = true
117121
118122 return DeleteResource (d , sync )
@@ -121,6 +125,7 @@ func deleteCoreDedicatedVmHost(d *schema.ResourceData, m interface{}) error {
121125type CoreDedicatedVmHostResourceCrud struct {
122126 BaseCrud
123127 Client * oci_core.ComputeClient
128+ workRequestClient * oci_work_requests.WorkRequestClient
124129 Res * oci_core.DedicatedVmHost
125130 DisableNotFoundRetries bool
126131}
@@ -200,8 +205,13 @@ func (s *CoreDedicatedVmHostResourceCrud) Create() error {
200205 return err
201206 }
202207
203- s .Res = & response .DedicatedVmHost
204- return nil
208+ workId := response .OpcWorkRequestId
209+ identifier , err := WaitForWorkRequestWithErrorHandling (s .workRequestClient , workId , "dedicatedvmhost" , oci_work_requests .WorkRequestResourceActionTypeCreated , s .D .Timeout (schema .TimeoutCreate ), s .DisableNotFoundRetries )
210+ if err != nil {
211+ return err
212+ }
213+ s .D .SetId (* identifier )
214+ return s .Get ()
205215}
206216
207217func (s * CoreDedicatedVmHostResourceCrud ) Get () error {
@@ -272,8 +282,19 @@ func (s *CoreDedicatedVmHostResourceCrud) Delete() error {
272282
273283 request .RequestMetadata .RetryPolicy = getRetryPolicy (s .DisableNotFoundRetries , "core" )
274284
275- _ , err := s .Client .DeleteDedicatedVmHost (context .Background (), request )
276- return err
285+ response , err := s .Client .DeleteDedicatedVmHost (context .Background (), request )
286+ if err != nil {
287+ return err
288+ }
289+
290+ workId := response .OpcWorkRequestId
291+ if workId != nil {
292+ _ , err = WaitForWorkRequestWithErrorHandling (s .workRequestClient , workId , "dedicatedvmhost" , oci_work_requests .WorkRequestResourceActionTypeDeleted , s .D .Timeout (schema .TimeoutDelete ), s .DisableNotFoundRetries )
293+ if err != nil {
294+ return err
295+ }
296+ }
297+ return nil
277298}
278299
279300func (s * CoreDedicatedVmHostResourceCrud ) SetData () error {
@@ -331,9 +352,16 @@ func (s *CoreDedicatedVmHostResourceCrud) updateCompartment(compartment interfac
331352
332353 changeCompartmentRequest .RequestMetadata .RetryPolicy = getRetryPolicy (s .DisableNotFoundRetries , "core" )
333354
334- _ , err := s .Client .ChangeDedicatedVmHostCompartment (context .Background (), changeCompartmentRequest )
355+ response , err := s .Client .ChangeDedicatedVmHostCompartment (context .Background (), changeCompartmentRequest )
335356 if err != nil {
336357 return err
337358 }
359+ workId := response .OpcWorkRequestId
360+ if workId != nil {
361+ _ , err = WaitForWorkRequestWithErrorHandling (s .workRequestClient , workId , "dedicatedvmhost" , oci_work_requests .WorkRequestResourceActionTypeUpdated , s .D .Timeout (schema .TimeoutUpdate ), s .DisableNotFoundRetries )
362+ if err != nil {
363+ return err
364+ }
365+ }
338366 return nil
339367}
0 commit comments