Skip to content

Commit f8222f0

Browse files
committed
Fix identity domain destruction by deactivating the identity domain before deletion
1 parent d1fce11 commit f8222f0

File tree

1 file changed

+28
-7
lines changed

1 file changed

+28
-7
lines changed

Diff for: internal/service/identity/identity_domain_resource.go

+28-7
Original file line numberDiff line numberDiff line change
@@ -573,21 +573,42 @@ func (s *IdentityDomainResourceCrud) Update() error {
573573
}
574574

575575
func (s *IdentityDomainResourceCrud) Delete() error {
576-
request := oci_identity.DeleteDomainRequest{}
577-
578576
tmp := s.D.Id()
579-
request.DomainId = &tmp
580577

581-
request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity")
578+
deactivateRequest := oci_identity.DeactivateDomainRequest{}
579+
580+
deactivateRequest.DomainId = &tmp
581+
582+
deactivateRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity")
582583

583-
response, err := s.Client.DeleteDomain(context.Background(), request)
584+
deactivateResponse, err := s.Client.DeactivateDomain(context.Background(), deactivateRequest)
584585
if err != nil {
585586
return err
586587
}
587588

588-
workId := response.OpcWorkRequestId
589+
deactivateWorkId := deactivateResponse.OpcWorkRequestId
590+
// Wait until it finishes
591+
_, deactivateWorkRequestErr := domainWaitForWorkRequest(deactivateWorkId, "domain",
592+
oci_identity.IamWorkRequestResourceActionTypeUpdated, s.D.Timeout(schema.TimeoutDelete), s.DisableNotFoundRetries, s.Client)
593+
594+
if deactivateWorkRequestErr != nil {
595+
return deactivateWorkRequestErr
596+
}
597+
598+
deleteRequest := oci_identity.DeleteDomainRequest{}
599+
600+
deleteRequest.DomainId = &tmp
601+
602+
deleteRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity")
603+
604+
deleteResponse, err := s.Client.DeleteDomain(context.Background(), deleteRequest)
605+
if err != nil {
606+
return err
607+
}
608+
609+
deleteWorkId := deleteResponse.OpcWorkRequestId
589610
// Wait until it finishes
590-
_, delWorkRequestErr := domainWaitForWorkRequest(workId, "domain",
611+
_, delWorkRequestErr := domainWaitForWorkRequest(deleteWorkId, "domain",
591612
oci_identity.IamWorkRequestResourceActionTypeUpdated, s.D.Timeout(schema.TimeoutDelete), s.DisableNotFoundRetries, s.Client)
592613
return delWorkRequestErr
593614
}

0 commit comments

Comments
 (0)