@@ -3,10 +3,8 @@ package wait
33import (
44 "context"
55 "errors"
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 modelserving "github.com/stackitcloud/stackit-sdk-go/services/modelserving/v1api"
1210)
@@ -19,17 +17,19 @@ const (
1917)
2018
2119func CreateModelServingWaitHandler (ctx context.Context , a modelserving.DefaultAPI , region , projectId , tokenId string ) * wait.AsyncActionHandler [modelserving.GetTokenResponse ] {
22- handler := wait .New (func () (waitFinished bool , response * modelserving.GetTokenResponse , err error ) {
23- getTokenResp , err := a .GetToken (ctx , region , projectId , tokenId ).Execute ()
24- if err != nil {
25- return false , nil , err
26- }
27- if getTokenResp .Token .State == TOKENSTATE_ACTIVE {
28- return true , getTokenResp , nil
29- }
20+ waitConfig := wait.WaiterHelper [modelserving.GetTokenResponse , string ]{
21+ FetchInstance : a .GetToken (ctx , region , projectId , tokenId ).Execute ,
22+ GetState : func (response * modelserving.GetTokenResponse ) (string , error ) {
23+ if response == nil {
24+ return "" , errors .New ("empty response" )
25+ }
26+ return response .Token .State , nil
27+ },
28+ ActiveState : []string {TOKENSTATE_ACTIVE },
29+ ErrorState : []string {},
30+ }
3031
31- return false , nil , nil
32- })
32+ handler := wait .New (waitConfig .Wait ())
3333
3434 handler .SetTimeout (10 * time .Minute )
3535
@@ -43,23 +43,19 @@ func UpdateModelServingWaitHandler(ctx context.Context, a modelserving.DefaultAP
4343}
4444
4545func DeleteModelServingWaitHandler (ctx context.Context , a modelserving.DefaultAPI , region , projectId , tokenId string ) * wait.AsyncActionHandler [modelserving.GetTokenResponse ] {
46- handler := wait .New (
47- func () (waitFinished bool , response * modelserving.GetTokenResponse , err error ) {
48- _ , err = a .GetToken (ctx , region , projectId , tokenId ).Execute ()
49- if err != nil {
50- var oapiErr * oapierror.GenericOpenAPIError
51- if errors .As (err , & oapiErr ) {
52- if oapiErr .StatusCode == http .StatusNotFound {
53- return true , nil , nil
54- }
55- }
56-
57- return false , nil , err
46+ waitConfig := wait.WaiterHelper [modelserving.GetTokenResponse , string ]{
47+ FetchInstance : a .GetToken (ctx , region , projectId , tokenId ).Execute ,
48+ GetState : func (response * modelserving.GetTokenResponse ) (string , error ) {
49+ if response == nil {
50+ return "" , errors .New ("empty response" )
5851 }
59-
60- return false , nil , nil
52+ return response .Token .State , nil
6153 },
62- )
54+ ActiveState : []string {},
55+ ErrorState : []string {},
56+ }
57+
58+ handler := wait .New (waitConfig .Wait ())
6359
6460 handler .SetTimeout (10 * time .Minute )
6561
0 commit comments