From 3b919f14822cd2ed7ae07f63ea7ca02c75035567 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BCdiger=20Schmitz?= Date: Tue, 4 Feb 2025 12:20:45 +0100 Subject: [PATCH] feat: adapt object storage to new regional api (#1343) * feat: adapt object storage to new regional api * feat: updated generated apis for region enhancements * fix: revert generated code back to original version * fix: remove premature deprecation mark * fix: remove unneeded go.work.sum and add it to .gitignore --- .gitignore | 2 ++ examples/objectstorage/go.mod | 6 ++---- examples/objectstorage/objectstorage.go | 10 ++++------ services/objectstorage/wait/wait.go | 10 +++++----- services/objectstorage/wait/wait_test.go | 6 +++--- 5 files changed, 16 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index c24ab16ba..cd0231d2e 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,5 @@ bin/ ## IDE *.idea/ *.vscode/ + +go.work.sum diff --git a/examples/objectstorage/go.mod b/examples/objectstorage/go.mod index 37efab297..8ab4cbd21 100644 --- a/examples/objectstorage/go.mod +++ b/examples/objectstorage/go.mod @@ -2,12 +2,10 @@ module github.com/stackitcloud/stackit-sdk-go/examples/objectstorage go 1.18 -require ( - github.com/stackitcloud/stackit-sdk-go/core v0.15.1 - github.com/stackitcloud/stackit-sdk-go/services/objectstorage v0.11.1 -) +require github.com/stackitcloud/stackit-sdk-go/services/objectstorage v0.11.1 require ( github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/google/uuid v1.6.0 // indirect + github.com/stackitcloud/stackit-sdk-go/core v0.15.1 // indirect ) 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())