Skip to content

Commit faf9fc7

Browse files
Added - Setting resource ID in statefile before waiting for workrequest for sub-resources
1 parent cdbf03d commit faf9fc7

26 files changed

+322
-0
lines changed

internal/service/bds/bds_bds_instance_api_key_resource.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,43 @@ func (s *BdsBdsInstanceApiKeyResourceCrud) Create() error {
184184
}
185185

186186
workId := response.OpcWorkRequestId
187+
s.setIdFromWorkRequest(workId)
187188
return s.getBdsInstanceApiKeyFromWorkRequest(workId, tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "bds"), oci_bds.ActionTypesCreated, s.D.Timeout(schema.TimeoutCreate))
188189
}
189190

191+
func (s *BdsBdsInstanceApiKeyResourceCrud) setIdFromWorkRequest(workId *string) {
192+
var identifier_str string
193+
var identifier *string
194+
var err error
195+
196+
workRequestResponse := oci_bds.GetWorkRequestResponse{}
197+
workRequestResponse, err = s.Client.GetWorkRequest(context.Background(),
198+
oci_bds.GetWorkRequestRequest{
199+
WorkRequestId: workId,
200+
RequestMetadata: oci_common.RequestMetadata{
201+
RetryPolicy: tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "bds"),
202+
},
203+
})
204+
if err == nil {
205+
// The work request response contains an array of objects
206+
for _, res := range workRequestResponse.Resources {
207+
if res.EntityType != nil && strings.Contains(strings.ToLower(*res.EntityType), "bds") && res.EntityUri != nil {
208+
var pattern = `/\d*/`
209+
var regex = regexp.MustCompile(pattern)
210+
identifier_str = regex.ReplaceAllString(*res.EntityUri, "")
211+
identifier = &identifier_str
212+
break
213+
}
214+
}
215+
}
216+
if identifier != nil {
217+
apiKeyId, _, err := parseBdsInstanceApiKeyCompositeId(*identifier)
218+
if err == nil && apiKeyId != "" {
219+
s.D.SetId(apiKeyId)
220+
}
221+
}
222+
}
223+
190224
func (s *BdsBdsInstanceApiKeyResourceCrud) getBdsInstanceApiKeyFromWorkRequest(workId *string, retryPolicy *oci_common.RetryPolicy,
191225
actionTypeEnum oci_bds.ActionTypesEnum, timeout time.Duration) error {
192226

internal/service/bds/bds_bds_instance_metastore_config_resource.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,9 +203,42 @@ func (s *BdsBdsInstanceMetastoreConfigResourceCrud) Create() error {
203203
}
204204

205205
workId := response.OpcWorkRequestId
206+
s.setIdFromWorkRequest(workId)
206207
return s.getBdsInstanceMetastoreConfigFromWorkRequest(workId, tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "bds"), oci_bds.ActionTypesCreated, s.D.Timeout(schema.TimeoutCreate))
207208
}
208209

210+
func (s *BdsBdsInstanceMetastoreConfigResourceCrud) setIdFromWorkRequest(workId *string) {
211+
var identifier_str string
212+
var identifier *string
213+
var err error
214+
workRequestResponse := oci_bds.GetWorkRequestResponse{}
215+
workRequestResponse, err = s.Client.GetWorkRequest(context.Background(),
216+
oci_bds.GetWorkRequestRequest{
217+
WorkRequestId: workId,
218+
RequestMetadata: oci_common.RequestMetadata{
219+
RetryPolicy: tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "bds"),
220+
},
221+
})
222+
if err == nil {
223+
// The work request response contains an array of objects
224+
for _, res := range workRequestResponse.Resources {
225+
if res.EntityType != nil && strings.Contains(strings.ToLower(*res.EntityType), "bds") && res.EntityUri != nil {
226+
var pattern = `/\d*/`
227+
var regex = regexp.MustCompile(pattern)
228+
identifier_str = regex.ReplaceAllString(*res.EntityUri, "")
229+
identifier = &identifier_str
230+
break
231+
}
232+
}
233+
}
234+
if identifier != nil {
235+
_, metastoreConfigId, err := parseBdsInstanceMetastoreConfigCompositeId(*identifier)
236+
if err == nil && metastoreConfigId != "" {
237+
s.D.SetId(metastoreConfigId)
238+
}
239+
}
240+
}
241+
209242
func (s *BdsBdsInstanceMetastoreConfigResourceCrud) getBdsInstanceMetastoreConfigFromWorkRequest(workId *string, retryPolicy *oci_common.RetryPolicy,
210243
actionTypeEnum oci_bds.ActionTypesEnum, timeout time.Duration) error {
211244

internal/service/blockchain/blockchain_osn_resource.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,38 @@ func (s *BlockchainOsnResourceCrud) Create() error {
157157
}
158158

159159
workId := response.OpcWorkRequestId
160+
s.setIdFromWorkRequest(workId)
160161
return s.getOsnFromWorkRequest(request.BlockchainPlatformId, workId, tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "blockchain"), oci_blockchain.WorkRequestResourceActionTypeUpdated, s.D.Timeout(schema.TimeoutCreate))
161162
}
162163

164+
func (s *BlockchainOsnResourceCrud) setIdFromWorkRequest(workId *string) {
165+
var subTypeKey *string
166+
var err error
167+
168+
workRequestResponse := oci_blockchain.GetWorkRequestResponse{}
169+
workRequestResponse, err = s.Client.GetWorkRequest(context.Background(),
170+
oci_blockchain.GetWorkRequestRequest{
171+
WorkRequestId: workId,
172+
RequestMetadata: oci_common.RequestMetadata{
173+
RetryPolicy: tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "blockchain"),
174+
},
175+
})
176+
if err == nil {
177+
// The work request response contains an array of objects
178+
for _, res := range workRequestResponse.Resources {
179+
if res.EntityType != nil && strings.Contains(strings.ToLower(*res.EntityType), "instance") {
180+
for _, subTypeDetail := range res.SubTypeDetails {
181+
subTypeKey = subTypeDetail.SubTypeKey
182+
}
183+
break
184+
}
185+
}
186+
}
187+
if subTypeKey != nil {
188+
s.D.SetId(*subTypeKey)
189+
}
190+
}
191+
163192
func (s *BlockchainOsnResourceCrud) getOsnFromWorkRequest(blockchainPlatformId *string, workId *string, retryPolicy *oci_common.RetryPolicy,
164193
actionTypeEnum oci_blockchain.WorkRequestResourceActionTypeEnum, timeout time.Duration) error {
165194

internal/service/blockchain/blockchain_peer_resource.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,9 +189,38 @@ func (s *BlockchainPeerResourceCrud) Create() error {
189189
}
190190

191191
workId := response.OpcWorkRequestId
192+
s.setIdFromWorkRequest(workId)
192193
return s.getPeerFromWorkRequest(request.BlockchainPlatformId, workId, tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "blockchain"), oci_blockchain.WorkRequestResourceActionTypeUpdated, s.D.Timeout(schema.TimeoutCreate))
193194
}
194195

196+
func (s *BlockchainPeerResourceCrud) setIdFromWorkRequest(workId *string) {
197+
var subTypeKey *string
198+
var err error
199+
200+
workRequestResponse := oci_blockchain.GetWorkRequestResponse{}
201+
workRequestResponse, err = s.Client.GetWorkRequest(context.Background(),
202+
oci_blockchain.GetWorkRequestRequest{
203+
WorkRequestId: workId,
204+
RequestMetadata: oci_common.RequestMetadata{
205+
RetryPolicy: tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "blockchain"),
206+
},
207+
})
208+
if err == nil {
209+
// The work request response contains an array of objects
210+
for _, res := range workRequestResponse.Resources {
211+
if res.EntityType != nil && strings.Contains(strings.ToLower(*res.EntityType), "instance") {
212+
for _, subTypeDetail := range res.SubTypeDetails {
213+
subTypeKey = subTypeDetail.SubTypeKey
214+
}
215+
break
216+
}
217+
}
218+
}
219+
if subTypeKey != nil {
220+
s.D.SetId(*subTypeKey)
221+
}
222+
}
223+
195224
func (s *BlockchainPeerResourceCrud) getPeerFromWorkRequest(blockchainPlatformId *string, workId *string, retryPolicy *oci_common.RetryPolicy,
196225
actionTypeEnum oci_blockchain.WorkRequestResourceActionTypeEnum, timeout time.Duration) error {
197226

internal/service/containerengine/containerengine_addon_resource.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@ func (s *ContainerengineAddonResourceCrud) Create() error {
234234
return err
235235
}
236236

237+
s.D.SetId(s.ID())
237238
workId := response.OpcWorkRequestId
238239
err = s.getAddonFromWorkRequest(workId, s.D.Timeout(schema.TimeoutCreate))
239240

internal/service/core/core_instance_pool_instance_resource.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,7 @@ func (s *CoreInstancePoolInstanceResourceCrud) Create() error {
213213
if workId != nil {
214214
var identifier *string
215215
var err error
216+
s.D.SetId(s.ID())
216217
identifier, err = tfresource.WaitForWorkRequestWithErrorHandling(s.WorkRequestClient, workId, "instancepool", oci_work_requests.WorkRequestResourceActionTypeRelated, s.D.Timeout(schema.TimeoutCreate), s.DisableNotFoundRetries)
217218
if identifier != nil {
218219
s.D.SetId(*identifier)

internal/service/data_safe/data_safe_masking_policies_masking_column_resource.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,9 +435,36 @@ func (s *DataSafeMaskingPoliciesMaskingColumnResourceCrud) Create() error {
435435
}
436436

437437
workId := response.OpcWorkRequestId
438+
s.setIdFromWorkRequest(workId)
438439
return s.getMaskingPoliciesMaskingColumnFromWorkRequest(workId, tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "data_safe"), oci_data_safe.WorkRequestResourceActionTypeCreated, s.D.Timeout(schema.TimeoutCreate))
439440
}
440441

442+
func (s *DataSafeMaskingPoliciesMaskingColumnResourceCrud) setIdFromWorkRequest(workId *string) {
443+
var identifier *string
444+
var err error
445+
446+
workRequestResponse := oci_data_safe.GetWorkRequestResponse{}
447+
workRequestResponse, err = s.Client.GetWorkRequest(context.Background(),
448+
oci_data_safe.GetWorkRequestRequest{
449+
WorkRequestId: workId,
450+
RequestMetadata: oci_common.RequestMetadata{
451+
RetryPolicy: tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "data_safe"),
452+
},
453+
})
454+
if err == nil {
455+
// The work request response contains an array of objects
456+
for _, res := range workRequestResponse.Resources {
457+
if res.EntityType != nil && strings.Contains(strings.ToLower(*res.EntityType), "maskingcolumn") {
458+
identifier = res.EntityUri
459+
break
460+
}
461+
}
462+
}
463+
if identifier != nil {
464+
s.D.SetId(*identifier)
465+
}
466+
}
467+
441468
func (s *DataSafeMaskingPoliciesMaskingColumnResourceCrud) getMaskingPoliciesMaskingColumnFromWorkRequest(workId *string, retryPolicy *oci_common.RetryPolicy,
442469
actionTypeEnum oci_data_safe.WorkRequestResourceActionTypeEnum, timeout time.Duration) error {
443470

internal/service/data_safe/data_safe_sensitive_data_models_sensitive_column_resource.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,9 +324,36 @@ func (s *DataSafeSensitiveDataModelsSensitiveColumnResourceCrud) Create() error
324324
}
325325

326326
workId := response.OpcWorkRequestId
327+
s.setIdFromWorkRequest(workId)
327328
return s.getSensitiveDataModelsSensitiveColumnFromWorkRequest(workId, tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "data_safe"), oci_data_safe.WorkRequestResourceActionTypeUpdated, s.D.Timeout(schema.TimeoutCreate))
328329
}
329330

331+
func (s *DataSafeSensitiveDataModelsSensitiveColumnResourceCrud) setIdFromWorkRequest(workId *string) {
332+
var identifier *string
333+
var err error
334+
335+
workRequestResponse := oci_data_safe.GetWorkRequestResponse{}
336+
workRequestResponse, err = s.Client.GetWorkRequest(context.Background(),
337+
oci_data_safe.GetWorkRequestRequest{
338+
WorkRequestId: workId,
339+
RequestMetadata: oci_common.RequestMetadata{
340+
RetryPolicy: tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "data_safe"),
341+
},
342+
})
343+
if err == nil {
344+
// The work request response contains an array of objects
345+
for _, res := range workRequestResponse.Resources {
346+
if res.EntityType != nil && strings.Contains(strings.ToLower(*res.EntityType), "sensitivecolumn") {
347+
identifier = res.EntityUri
348+
break
349+
}
350+
}
351+
}
352+
if identifier != nil {
353+
s.D.SetId(*identifier)
354+
}
355+
}
356+
330357
func (s *DataSafeSensitiveDataModelsSensitiveColumnResourceCrud) getSensitiveDataModelsSensitiveColumnFromWorkRequest(workId *string, retryPolicy *oci_common.RetryPolicy,
331358
actionTypeEnum oci_data_safe.WorkRequestResourceActionTypeEnum, timeout time.Duration) error {
332359

internal/service/fusion_apps/fusion_apps_fusion_environment_admin_user_resource.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ func (s *FusionAppsFusionEnvironmentAdminUserResourceCrud) Create() error {
178178
}
179179

180180
workId := response.OpcWorkRequestId
181+
s.D.SetId(s.ID())
181182
return s.getFusionEnvironmentAdminUserFromWorkRequest(workId, tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "fusion_apps"), oci_fusion_apps.WorkRequestResourceActionTypeUpdated, s.D.Timeout(schema.TimeoutCreate))
182183
}
183184

internal/service/fusion_apps/fusion_apps_fusion_environment_refresh_activity_resource.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,9 +181,37 @@ func (s *FusionAppsFusionEnvironmentRefreshActivityResourceCrud) Create() error
181181
}
182182

183183
workId := response.OpcWorkRequestId
184+
s.setIdFromWorkRequest(workId)
184185
return s.getFusionEnvironmentRefreshActivityFromWorkRequest(workId, tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "fusion_apps"), oci_fusion_apps.WorkRequestResourceActionTypeCreated, s.D.Timeout(schema.TimeoutCreate))
185186
}
186187

188+
func (s *FusionAppsFusionEnvironmentRefreshActivityResourceCrud) setIdFromWorkRequest(workId *string) {
189+
var identifier *string
190+
var err error
191+
192+
workRequestResponse := oci_fusion_apps.GetWorkRequestResponse{}
193+
workRequestResponse, err = s.Client.GetWorkRequest(context.Background(),
194+
oci_fusion_apps.GetWorkRequestRequest{
195+
WorkRequestId: workId,
196+
RequestMetadata: oci_common.RequestMetadata{
197+
RetryPolicy: tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "fusion_apps"),
198+
},
199+
})
200+
if err == nil {
201+
// The work request response contains an array of objects
202+
for _, res := range workRequestResponse.Resources {
203+
if res.EntityType != nil && strings.Contains(strings.ToLower(*res.EntityType), "refreshactivity") {
204+
identifier = res.Identifier
205+
break
206+
}
207+
}
208+
}
209+
if identifier != nil {
210+
compositeId := GetFusionEnvironmentRefreshActivityCompositeId(s.D.Get("fusion_environment_id").(string), *identifier)
211+
s.D.SetId(compositeId)
212+
}
213+
}
214+
187215
func (s *FusionAppsFusionEnvironmentRefreshActivityResourceCrud) getFusionEnvironmentRefreshActivityFromWorkRequest(workId *string, retryPolicy *oci_common.RetryPolicy,
188216
actionTypeEnum oci_fusion_apps.WorkRequestResourceActionTypeEnum, timeout time.Duration) error {
189217

0 commit comments

Comments
 (0)