diff --git a/CHANGELOG.md b/CHANGELOG.md index 5558bbc75..7b0fde42d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -219,6 +219,8 @@ - **Dependencies:** Bump STACKIT SDK core module from `v0.24.1` to `v0.25.0` - [v0.9.2](services/modelserving/CHANGELOG.md#v092) - **Dependencies:** Bump STACKIT SDK core module from `v0.25.0` to `v0.26.0` + - [v0.10.0](services/modelserving/CHANGELOG.md#v0100) + - **Improvement:** Use new WaiterHelper for modelserving waiters - `mongodbflex`: - [v1.7.3](services/mongodbflex/CHANGELOG.md#v173) - **Dependencies:** Bump STACKIT SDK core module from `v0.24.0` to `v0.24.1` diff --git a/services/modelserving/CHANGELOG.md b/services/modelserving/CHANGELOG.md index edfd88e39..ba4718efd 100644 --- a/services/modelserving/CHANGELOG.md +++ b/services/modelserving/CHANGELOG.md @@ -1,3 +1,6 @@ +## v0.10.0 +- **Improvement:** Use new WaiterHelper for modelserving waiters + ## v0.9.2 - **Dependencies:** Bump STACKIT SDK core module from `v0.25.0` to `v0.26.0` diff --git a/services/modelserving/VERSION b/services/modelserving/VERSION index d61de9911..f78dc3652 100644 --- a/services/modelserving/VERSION +++ b/services/modelserving/VERSION @@ -1 +1 @@ -v0.9.2 \ No newline at end of file +v0.10.0 \ No newline at end of file diff --git a/services/modelserving/v1api/wait/wait.go b/services/modelserving/v1api/wait/wait.go index 45a52f732..5e0058597 100644 --- a/services/modelserving/v1api/wait/wait.go +++ b/services/modelserving/v1api/wait/wait.go @@ -3,10 +3,8 @@ package wait import ( "context" "errors" - "net/http" "time" - "github.com/stackitcloud/stackit-sdk-go/core/oapierror" "github.com/stackitcloud/stackit-sdk-go/core/wait" modelserving "github.com/stackitcloud/stackit-sdk-go/services/modelserving/v1api" ) @@ -19,17 +17,19 @@ const ( ) func CreateModelServingWaitHandler(ctx context.Context, a modelserving.DefaultAPI, region, projectId, tokenId string) *wait.AsyncActionHandler[modelserving.GetTokenResponse] { - handler := wait.New(func() (waitFinished bool, response *modelserving.GetTokenResponse, err error) { - getTokenResp, err := a.GetToken(ctx, region, projectId, tokenId).Execute() - if err != nil { - return false, nil, err - } - if getTokenResp.Token.State == TOKENSTATE_ACTIVE { - return true, getTokenResp, nil - } + waitConfig := wait.WaiterHelper[modelserving.GetTokenResponse, string]{ + FetchInstance: a.GetToken(ctx, region, projectId, tokenId).Execute, + GetState: func(response *modelserving.GetTokenResponse) (string, error) { + if response == nil { + return "", errors.New("empty response") + } + return response.Token.State, nil + }, + ActiveState: []string{TOKENSTATE_ACTIVE}, + ErrorState: []string{}, + } - return false, nil, nil - }) + handler := wait.New(waitConfig.Wait()) handler.SetTimeout(10 * time.Minute) @@ -43,23 +43,19 @@ func UpdateModelServingWaitHandler(ctx context.Context, a modelserving.DefaultAP } func DeleteModelServingWaitHandler(ctx context.Context, a modelserving.DefaultAPI, region, projectId, tokenId string) *wait.AsyncActionHandler[modelserving.GetTokenResponse] { - handler := wait.New( - func() (waitFinished bool, response *modelserving.GetTokenResponse, err error) { - _, err = a.GetToken(ctx, region, projectId, tokenId).Execute() - if err != nil { - var oapiErr *oapierror.GenericOpenAPIError - if errors.As(err, &oapiErr) { - if oapiErr.StatusCode == http.StatusNotFound { - return true, nil, nil - } - } - - return false, nil, err + waitConfig := wait.WaiterHelper[modelserving.GetTokenResponse, string]{ + FetchInstance: a.GetToken(ctx, region, projectId, tokenId).Execute, + GetState: func(response *modelserving.GetTokenResponse) (string, error) { + if response == nil { + return "", errors.New("empty response") } - - return false, nil, nil + return response.Token.State, nil }, - ) + ActiveState: []string{}, + ErrorState: []string{}, + } + + handler := wait.New(waitConfig.Wait()) handler.SetTimeout(10 * time.Minute)