Skip to content

Commit 1de8fed

Browse files
committed
Fix identity domain destruction by deactivating the identity domain before deletion
1 parent 82b2b18 commit 1de8fed

File tree

1 file changed

+28
-7
lines changed

1 file changed

+28
-7
lines changed

internal/service/identity/identity_domain_resource.go

+28-7
Original file line numberDiff line numberDiff line change
@@ -590,21 +590,42 @@ func (s *IdentityDomainResourceCrud) Update() error {
590590
}
591591

592592
func (s *IdentityDomainResourceCrud) Delete() error {
593-
request := oci_identity.DeleteDomainRequest{}
594-
595593
tmp := s.D.Id()
596-
request.DomainId = &tmp
597594

598-
request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity")
595+
deactivateRequest := oci_identity.DeactivateDomainRequest{}
596+
597+
deactivateRequest.DomainId = &tmp
598+
599+
deactivateRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity")
599600

600-
response, err := s.Client.DeleteDomain(context.Background(), request)
601+
deactivateResponse, err := s.Client.DeactivateDomain(context.Background(), deactivateRequest)
601602
if err != nil {
602603
return err
603604
}
604605

605-
workId := response.OpcWorkRequestId
606+
deactivateWorkId := deactivateResponse.OpcWorkRequestId
607+
// Wait until it finishes
608+
_, deactivateWorkRequestErr := domainWaitForWorkRequest(deactivateWorkId, "domain",
609+
oci_identity.IamWorkRequestResourceActionTypeUpdated, s.D.Timeout(schema.TimeoutDelete), s.DisableNotFoundRetries, s.Client)
610+
611+
if deactivateWorkRequestErr != nil {
612+
return deactivateWorkRequestErr
613+
}
614+
615+
deleteRequest := oci_identity.DeleteDomainRequest{}
616+
617+
deleteRequest.DomainId = &tmp
618+
619+
deleteRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity")
620+
621+
deleteResponse, err := s.Client.DeleteDomain(context.Background(), deleteRequest)
622+
if err != nil {
623+
return err
624+
}
625+
626+
deleteWorkId := deleteResponse.OpcWorkRequestId
606627
// Wait until it finishes
607-
_, delWorkRequestErr := domainWaitForWorkRequest(workId, "domain",
628+
_, delWorkRequestErr := domainWaitForWorkRequest(deleteWorkId, "domain",
608629
oci_identity.IamWorkRequestResourceActionTypeUpdated, s.D.Timeout(schema.TimeoutDelete), s.DisableNotFoundRetries, s.Client)
609630
return delWorkRequestErr
610631
}

0 commit comments

Comments
 (0)