From 108e60a30d691ea24669cb9740126ed159cbe3b0 Mon Sep 17 00:00:00 2001 From: Jingxian Guo Date: Fri, 2 Aug 2024 11:25:12 +0800 Subject: [PATCH] fix 2155 add SourceRegionWRClient to request boot-volume * volume backup copy, and helpers --- .../core/core_boot_volume_backup_resource.go | 4 ++- .../core/core_volume_backup_resource.go | 4 ++- internal/service/core/helpers_core.go | 28 +++++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/internal/service/core/core_boot_volume_backup_resource.go b/internal/service/core/core_boot_volume_backup_resource.go index 2ddb0204ec8..4179ba3cb3b 100644 --- a/internal/service/core/core_boot_volume_backup_resource.go +++ b/internal/service/core/core_boot_volume_backup_resource.go @@ -215,6 +215,7 @@ type CoreBootVolumeBackupResourceCrud struct { Client *oci_core.BlockstorageClient SourceRegionClient *oci_core.BlockstorageClient workRequestClient *oci_work_requests.WorkRequestClient + SourceRegionWRClient *oci_work_requests.WorkRequestClient Res *oci_core.BootVolumeBackup DisableNotFoundRetries bool } @@ -371,7 +372,8 @@ func (s *CoreBootVolumeBackupResourceCrud) createBootVolumeBackupCopy() error { s.Res = &response.BootVolumeBackup if workRequestId != nil { - _, err := tfresource.WaitForWorkRequestWithErrorHandling(s.workRequestClient, workRequestId, "bootVolumeBackup", oci_work_requests.WorkRequestResourceActionTypeCreated, s.D.Timeout(schema.TimeoutCreate), s.DisableNotFoundRetries) + //_, err := tfresource.WaitForWorkRequestWithErrorHandling(s.workRequestClient, workRequestId, "bootVolumeBackup", oci_work_requests.WorkRequestResourceActionTypeCreated, s.D.Timeout(schema.TimeoutCreate), s.DisableNotFoundRetries) + _, err := tfresource.WaitForWorkRequestWithErrorHandling(s.SourceRegionWRClient, workRequestId, "bootVolumeBackup", oci_work_requests.WorkRequestResourceActionTypeCreated, s.D.Timeout(schema.TimeoutCreate), s.DisableNotFoundRetries) if err != nil { return err } diff --git a/internal/service/core/core_volume_backup_resource.go b/internal/service/core/core_volume_backup_resource.go index bdc12aea093..8f34aa83c3e 100644 --- a/internal/service/core/core_volume_backup_resource.go +++ b/internal/service/core/core_volume_backup_resource.go @@ -220,6 +220,7 @@ type CoreVolumeBackupResourceCrud struct { Client *oci_core.BlockstorageClient SourceRegionClient *oci_core.BlockstorageClient workRequestClient *oci_work_requests.WorkRequestClient + SourceRegionWRClient *oci_work_requests.WorkRequestClient Res *oci_core.VolumeBackup DisableNotFoundRetries bool } @@ -323,7 +324,8 @@ func (s *CoreVolumeBackupResourceCrud) createVolumeBackupCopy() error { s.Res = &response.VolumeBackup if workRequestId != nil { - _, err := tfresource.WaitForWorkRequestWithErrorHandling(s.workRequestClient, workRequestId, "volumeBackup", oci_work_requests.WorkRequestResourceActionTypeCreated, s.D.Timeout(schema.TimeoutCreate), s.DisableNotFoundRetries) + //_, err := tfresource.WaitForWorkRequestWithErrorHandling(s.workRequestClient, workRequestId, "volumeBackup", oci_work_requests.WorkRequestResourceActionTypeCreated, s.D.Timeout(schema.TimeoutCreate), s.DisableNotFoundRetries) + _, err := tfresource.WaitForWorkRequestWithErrorHandling(s.SourceRegionWRClient, workRequestId, "volumeBackup", oci_work_requests.WorkRequestResourceActionTypeCreated, s.D.Timeout(schema.TimeoutCreate), s.DisableNotFoundRetries) if err != nil { return err } diff --git a/internal/service/core/helpers_core.go b/internal/service/core/helpers_core.go index e7fb4644eb0..2db53604b48 100644 --- a/internal/service/core/helpers_core.go +++ b/internal/service/core/helpers_core.go @@ -14,6 +14,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" oci_core "github.com/oracle/oci-go-sdk/v65/core" + oci_work_requests "github.com/oracle/oci-go-sdk/v65/workrequests" ) // This applies the differences between the regular schema and the one @@ -100,9 +101,23 @@ func (s *CoreVolumeBackupResourceCrud) createBlockStorageSourceRegionClient(regi return fmt.Errorf("cannot configure client for the source region: %v", err) } s.SourceRegionClient = &sourceBlockStorageClient + } s.SourceRegionClient.SetRegion(region) + if s.SourceRegionWRClient == nil { + sourceWorkRequestClient, err := oci_work_requests.NewWorkRequestClientWithConfigurationProvider(*s.workRequestClient.ConfigurationProvider()) + if err != nil { + return fmt.Errorf("cannot Create WorkRequestclient for the source region: %v", err) + } + err = tf_client.ConfigureClientVar(&sourceWorkRequestClient.BaseClient) + if err != nil { + return fmt.Errorf("cannot configure client for the source region: %v", err) + } + s.SourceRegionWRClient = &sourceWorkRequestClient + } + s.SourceRegionWRClient.SetRegion(region) + return nil } @@ -137,6 +152,19 @@ func (s *CoreBootVolumeBackupResourceCrud) createBlockStorageSourceRegionClient( } s.SourceRegionClient.SetRegion(region) + if s.SourceRegionWRClient == nil { + sourceWorkRequestClient, err := oci_work_requests.NewWorkRequestClientWithConfigurationProvider(*s.workRequestClient.ConfigurationProvider()) + if err != nil { + return fmt.Errorf("cannot Create WorkRequestclient for the source region: %v", err) + } + err = tf_client.ConfigureClientVar(&sourceWorkRequestClient.BaseClient) + if err != nil { + return fmt.Errorf("cannot configure client for the source region: %v", err) + } + s.SourceRegionWRClient = &sourceWorkRequestClient + } + s.SourceRegionWRClient.SetRegion(region) + return nil }