Skip to content

Commit 891e0b3

Browse files
committed
Removal of ske methods after deprecation (2024-04-16)
- DisableService - EnableService - GetServiceStatus Signed-off-by: Alexander Dahmen <[email protected]>
1 parent 2b7f634 commit 891e0b3

File tree

4 files changed

+12
-180
lines changed

4 files changed

+12
-180
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
## Release (2025-XX-XX)
22

3+
- `ske`: [v0.21.0](services/ske/CHANGELOG.md#v0210-2025-01-21)
4+
- **Removal:** The following methods were removed after deprecation (2024-04-16) and the [Service Enablement API](https://docs.api.stackit.cloud/documentation/service-enablement/version/v1) must be used instead.
5+
- `DisableService`
6+
- `EnableService`
7+
- `GetServiceStatus`
38
- `sqlserverflex`: [v0.9.0](services/sqlserverflex/CHANGELOG.md#v090-2025-01-20)
49
- **Breaking change**: Delete endpoint made private.
510
- `postgresflex`: [0.17.0](services/postgresflex/CHANGELOG.md#v0170-2025-01-20)

services/ske/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
## v0.21.0 (2025-01-21)
2+
3+
- **Removal:** The following methods were removed after deprecation (2024-04-16) and the [Service Enablement API](https://docs.api.stackit.cloud/documentation/service-enablement/version/v1) must be used instead.
4+
- `DisableService`
5+
- `EnableService`
6+
- `GetServiceStatus`
7+
18
## v0.20.1 (2024-12-17)
29

310
- **Bugfix:** Correctly handle nullable attributes in model types

services/ske/wait/wait.go

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@ package wait
33
import (
44
"context"
55
"fmt"
6-
"net/http"
76
"time"
87

9-
"github.com/stackitcloud/stackit-sdk-go/core/oapierror"
108
"github.com/stackitcloud/stackit-sdk-go/core/wait"
119
"github.com/stackitcloud/stackit-sdk-go/services/ske"
1210
)
@@ -26,10 +24,6 @@ const (
2624
InvalidArgusInstanceErrorCode = "SKE_ARGUS_INSTANCE_NOT_FOUND"
2725
)
2826

29-
type APIClientProjectInterface interface {
30-
GetServiceStatusExecute(ctx context.Context, projectId string) (*ske.ProjectResponse, error)
31-
}
32-
3327
type APIClientClusterInterface interface {
3428
GetClusterExecute(ctx context.Context, projectId, name string) (*ske.Cluster, error)
3529
ListClustersExecute(ctx context.Context, projectId string) (*ske.ListClustersResponse, error)
@@ -85,46 +79,6 @@ func DeleteClusterWaitHandler(ctx context.Context, a APIClientClusterInterface,
8579
return handler
8680
}
8781

88-
// EnableServiceWaitHandler will wait for service enablement
89-
func EnableServiceWaitHandler(ctx context.Context, a APIClientProjectInterface, projectId string) *wait.AsyncActionHandler[ske.ProjectResponse] {
90-
handler := wait.New(func() (waitFinished bool, response *ske.ProjectResponse, err error) {
91-
s, err := a.GetServiceStatusExecute(ctx, projectId)
92-
if err != nil {
93-
return false, nil, err
94-
}
95-
state := *s.State
96-
switch state {
97-
case StateDeleting, StateFailed:
98-
return false, nil, fmt.Errorf("received state: %s for project Id: %s", state, projectId)
99-
case StateCreated:
100-
return true, s, nil
101-
}
102-
return false, nil, nil
103-
})
104-
handler.SetTimeout(15 * time.Minute)
105-
return handler
106-
}
107-
108-
// DisableServiceWaitHandler will wait for service disablement
109-
func DisableServiceWaitHandler(ctx context.Context, a APIClientProjectInterface, projectId string) *wait.AsyncActionHandler[struct{}] {
110-
handler := wait.New(func() (waitFinished bool, response *struct{}, err error) {
111-
_, err = a.GetServiceStatusExecute(ctx, projectId)
112-
if err == nil {
113-
return false, nil, nil
114-
}
115-
oapiErr, ok := err.(*oapierror.GenericOpenAPIError) //nolint:errorlint //complaining that error.As should be used to catch wrapped errors, but this error should not be wrapped
116-
if !ok {
117-
return false, nil, fmt.Errorf("could not convert error to oapierror.GenericOpenAPIError in delete wait.AsyncHandler, %w", err)
118-
}
119-
if oapiErr.StatusCode == http.StatusNotFound || oapiErr.StatusCode == http.StatusForbidden {
120-
return true, nil, nil
121-
}
122-
return false, nil, err
123-
})
124-
handler.SetTimeout(15 * time.Minute)
125-
return handler
126-
}
127-
12882
// RotateCredentialsWaitHandler will wait for credentials rotation
12983
func RotateCredentialsWaitHandler(ctx context.Context, a APIClientClusterInterface, projectId, clusterName string) *wait.AsyncActionHandler[ske.Cluster] {
13084
handler := wait.New(func() (waitFinished bool, response *ske.Cluster, err error) {

services/ske/wait/wait_test.go

Lines changed: 0 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -67,31 +67,6 @@ func (a *apiClientClusterMocked) ListClustersExecute(_ context.Context, _ string
6767
}, nil
6868
}
6969

70-
// Used for testing cluster operations
71-
type apiClientProjectMocked struct {
72-
getFails bool
73-
getNotFound bool
74-
resourceState string
75-
}
76-
77-
func (a *apiClientProjectMocked) GetServiceStatusExecute(_ context.Context, _ string) (*ske.ProjectResponse, error) {
78-
if a.getFails {
79-
return nil, &oapierror.GenericOpenAPIError{
80-
StatusCode: http.StatusInternalServerError,
81-
}
82-
}
83-
if a.getNotFound {
84-
return nil, &oapierror.GenericOpenAPIError{
85-
StatusCode: http.StatusNotFound,
86-
}
87-
}
88-
rs := ske.ProjectState(a.resourceState)
89-
return &ske.ProjectResponse{
90-
ProjectId: utils.Ptr("pid"),
91-
State: &rs,
92-
}, nil
93-
}
94-
9570
func TestCreateOrUpdateClusterWaitHandler(t *testing.T) {
9671
tests := []struct {
9772
desc string
@@ -186,115 +161,6 @@ func TestCreateOrUpdateClusterWaitHandler(t *testing.T) {
186161
}
187162
}
188163

189-
func TestCreateProjectWaitHandler(t *testing.T) {
190-
tests := []struct {
191-
desc string
192-
getFails bool
193-
resourceState string
194-
wantErr bool
195-
wantResp bool
196-
}{
197-
{
198-
desc: "create_succeeded",
199-
getFails: false,
200-
resourceState: StateCreated,
201-
wantErr: false,
202-
wantResp: true,
203-
},
204-
{
205-
desc: "create_failed",
206-
getFails: false,
207-
wantErr: true,
208-
wantResp: false,
209-
},
210-
{
211-
desc: "get_fails",
212-
getFails: true,
213-
wantErr: true,
214-
wantResp: false,
215-
},
216-
{
217-
desc: "timeout",
218-
getFails: false,
219-
resourceState: "ANOTHER STATE",
220-
wantErr: true,
221-
wantResp: false,
222-
},
223-
}
224-
for _, tt := range tests {
225-
t.Run(tt.desc, func(t *testing.T) {
226-
apiClient := &apiClientProjectMocked{
227-
getFails: tt.getFails,
228-
resourceState: tt.resourceState,
229-
}
230-
var wantRes *ske.ProjectResponse
231-
rs := ske.ProjectState(tt.resourceState)
232-
if tt.wantResp {
233-
wantRes = &ske.ProjectResponse{
234-
ProjectId: utils.Ptr("pid"),
235-
State: &rs,
236-
}
237-
}
238-
239-
handler := EnableServiceWaitHandler(context.Background(), apiClient, "")
240-
241-
gotRes, err := handler.SetTimeout(10 * time.Millisecond).WaitWithContext(context.Background())
242-
243-
if (err != nil) != tt.wantErr {
244-
t.Fatalf("handler error = %v, wantErr %v", err, tt.wantErr)
245-
}
246-
if !cmp.Equal(gotRes, wantRes) {
247-
t.Fatalf("handler gotRes = %+v, want %+v", gotRes, wantRes)
248-
}
249-
})
250-
}
251-
}
252-
253-
func TestDeleteProjectWaitHandler(t *testing.T) {
254-
tests := []struct {
255-
desc string
256-
getFails bool
257-
getNotFound bool
258-
wantErr bool
259-
resourceState string
260-
}{
261-
{
262-
desc: "delete_succeeded",
263-
getFails: false,
264-
getNotFound: true,
265-
wantErr: false,
266-
},
267-
{
268-
desc: "get_fails",
269-
getFails: true,
270-
wantErr: true,
271-
},
272-
{
273-
desc: "timeout",
274-
getFails: false,
275-
wantErr: true,
276-
resourceState: "ANOTHER STATE",
277-
},
278-
}
279-
for _, tt := range tests {
280-
t.Run(tt.desc, func(t *testing.T) {
281-
apiClient := &apiClientProjectMocked{
282-
getFails: tt.getFails,
283-
getNotFound: tt.getNotFound,
284-
resourceState: tt.resourceState,
285-
}
286-
287-
handler := DisableServiceWaitHandler(context.Background(), apiClient, "")
288-
289-
_, err := handler.SetTimeout(10 * time.Millisecond).WaitWithContext(context.Background())
290-
291-
if (err != nil) != tt.wantErr {
292-
t.Fatalf("handler error = %v, wantErr %v", err, tt.wantErr)
293-
}
294-
})
295-
}
296-
}
297-
298164
func TestRotateCredentialsWaitHandler(t *testing.T) {
299165
tests := []struct {
300166
desc string

0 commit comments

Comments
 (0)