From abcf88beb7513ab5a02192e0ba7ce13a278133e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BCdiger=20Schmitz?= <152157960+bahkauv70@users.noreply.github.com> Date: Mon, 3 Feb 2025 09:19:38 +0100 Subject: [PATCH] feat: adapt object storage to new regional api --- core/config/config.go | 1 + examples/objectstorage/objectstorage.go | 10 ++++------ services/objectstorage/wait/wait.go | 10 +++++----- services/objectstorage/wait/wait_test.go | 6 +++--- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/core/config/config.go b/core/config/config.go index 93002c02a..73e2c256a 100644 --- a/core/config/config.go +++ b/core/config/config.go @@ -144,6 +144,7 @@ func WithUserAgent(userAgent string) ConfigurationOption { } // WithRegion returns a ConfigurationOption that specifies the region to be used +// [Deprecated]: The region should be set on the individual calls func WithRegion(region string) ConfigurationOption { return func(config *Configuration) error { config.Region = region diff --git a/examples/objectstorage/objectstorage.go b/examples/objectstorage/objectstorage.go index 446b417f2..5bf2c3f85 100644 --- a/examples/objectstorage/objectstorage.go +++ b/examples/objectstorage/objectstorage.go @@ -5,25 +5,23 @@ import ( "fmt" "os" - "github.com/stackitcloud/stackit-sdk-go/core/config" "github.com/stackitcloud/stackit-sdk-go/services/objectstorage" ) func main() { // Specify the project ID projectId := "PROJECT_ID" + region := "eu01" // Create a new API client, that uses default authentication and configuration - objectStorageClient, err := objectstorage.NewAPIClient( - config.WithRegion("eu01"), - ) + objectStorageClient, err := objectstorage.NewAPIClient() if err != nil { fmt.Fprintf(os.Stderr, "Creating API client: %v\n", err) os.Exit(1) } // Get the object storage buckets for your project - getBucketsResp, err := objectStorageClient.ListBuckets(context.Background(), projectId).Execute() + getBucketsResp, err := objectStorageClient.ListBuckets(context.Background(), projectId, region).Execute() if err != nil { fmt.Fprintf(os.Stderr, "Error when calling `GetBuckets`: %v\n", err) } else { @@ -31,7 +29,7 @@ func main() { } // Create an object storage bucket - createBucketResp, err := objectStorageClient.CreateBucket(context.Background(), projectId, "example-bucket").Execute() + createBucketResp, err := objectStorageClient.CreateBucket(context.Background(), projectId, region, "example-bucket").Execute() if err != nil { fmt.Fprintf(os.Stderr, "Error when calling `CreateBucket`: %v\n", err) } else { diff --git a/services/objectstorage/wait/wait.go b/services/objectstorage/wait/wait.go index a05dd14ef..b805e0a43 100644 --- a/services/objectstorage/wait/wait.go +++ b/services/objectstorage/wait/wait.go @@ -13,13 +13,13 @@ import ( // Interface needed for tests type APIClientBucketInterface interface { - GetBucketExecute(ctx context.Context, projectId string, bucketName string) (*objectstorage.GetBucketResponse, error) + GetBucketExecute(ctx context.Context, projectId string, region, bucketName string) (*objectstorage.GetBucketResponse, error) } // CreateBucketWaitHandler will wait for bucket creation -func CreateBucketWaitHandler(ctx context.Context, a APIClientBucketInterface, projectId, bucketName string) *wait.AsyncActionHandler[objectstorage.GetBucketResponse] { +func CreateBucketWaitHandler(ctx context.Context, a APIClientBucketInterface, projectId, region, bucketName string) *wait.AsyncActionHandler[objectstorage.GetBucketResponse] { handler := wait.New(func() (waitFinished bool, response *objectstorage.GetBucketResponse, err error) { - s, err := a.GetBucketExecute(ctx, projectId, bucketName) + s, err := a.GetBucketExecute(ctx, projectId, region, bucketName) if err != nil { return false, nil, err } @@ -30,9 +30,9 @@ func CreateBucketWaitHandler(ctx context.Context, a APIClientBucketInterface, pr } // DeleteBucketWaitHandler will wait for bucket deletion -func DeleteBucketWaitHandler(ctx context.Context, a APIClientBucketInterface, projectId, bucketName string) *wait.AsyncActionHandler[struct{}] { +func DeleteBucketWaitHandler(ctx context.Context, a APIClientBucketInterface, projectId, region, bucketName string) *wait.AsyncActionHandler[struct{}] { handler := wait.New(func() (waitFinished bool, response *struct{}, err error) { - _, err = a.GetBucketExecute(ctx, projectId, bucketName) + _, err = a.GetBucketExecute(ctx, projectId, region, bucketName) if err == nil { return false, nil, nil } diff --git a/services/objectstorage/wait/wait_test.go b/services/objectstorage/wait/wait_test.go index ee18a54f1..8fb10d6a8 100644 --- a/services/objectstorage/wait/wait_test.go +++ b/services/objectstorage/wait/wait_test.go @@ -16,7 +16,7 @@ type apiClientBucketMocked struct { bucketGetFails bool } -func (a *apiClientBucketMocked) GetBucketExecute(_ context.Context, _, _ string) (*objectstorage.GetBucketResponse, error) { +func (a *apiClientBucketMocked) GetBucketExecute(_ context.Context, _, _, _ string) (*objectstorage.GetBucketResponse, error) { if a.bucketGetFails { return nil, &oapierror.GenericOpenAPIError{ StatusCode: 500, @@ -63,7 +63,7 @@ func TestCreateBucketWaitHandler(t *testing.T) { wantRes = &objectstorage.GetBucketResponse{} } - handler := CreateBucketWaitHandler(context.Background(), apiClient, "", "") + handler := CreateBucketWaitHandler(context.Background(), apiClient, "", "", "") gotRes, err := handler.SetTimeout(10 * time.Millisecond).WaitWithContext(context.Background()) @@ -101,7 +101,7 @@ func TestDeleteBucketWaitHandler(t *testing.T) { bucketGetFails: tt.bucketGetFails, } - handler := DeleteBucketWaitHandler(context.Background(), apiClient, "", "") + handler := DeleteBucketWaitHandler(context.Background(), apiClient, "", "", "") _, err := handler.SetTimeout(10 * time.Millisecond).WaitWithContext(context.Background())