From 58987988282cb6df13ce327090f66fd43a9ff552 Mon Sep 17 00:00:00 2001 From: Alexander Dahmen Date: Fri, 15 May 2026 09:43:54 +0200 Subject: [PATCH] refac(mariadb): Use new WaitHelper for waiters STACKITSDK-380 Signed-off-by: Alexander Dahmen --- CHANGELOG.md | 2 + services/mariadb/CHANGELOG.md | 3 ++ services/mariadb/VERSION | 2 +- services/mariadb/v1api/wait/wait.go | 59 +++++++++++++---------------- 4 files changed, 33 insertions(+), 33 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index de37f1cf1..27ef62a2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -217,6 +217,8 @@ - **Dependencies:** Bump STACKIT SDK core module from `v0.24.1` to `v0.25.0` - [v0.28.2](services/mariadb/CHANGELOG.md#v282) - **Dependencies:** Bump STACKIT SDK core module from `v0.25.0` to `v0.26.0` + - [v0.29.0](services/mariadb/CHANGELOG.md#v290) + - **Improvement:** Use new WaiterHelper for Logs waiters - `modelserving`: - [v0.8.3](services/modelserving/CHANGELOG.md#v083) - **Dependencies:** Bump STACKIT SDK core module from `v0.24.0` to `v0.24.1` diff --git a/services/mariadb/CHANGELOG.md b/services/mariadb/CHANGELOG.md index 569b1b632..f53c59c7f 100644 --- a/services/mariadb/CHANGELOG.md +++ b/services/mariadb/CHANGELOG.md @@ -1,3 +1,6 @@ +## v0.29.0 +- **Improvement:** Use new WaiterHelper for Logs waiters + ## v0.28.2 - **Dependencies:** Bump STACKIT SDK core module from `v0.25.0` to `v0.26.0` diff --git a/services/mariadb/VERSION b/services/mariadb/VERSION index f53b7bda1..5bc296535 100644 --- a/services/mariadb/VERSION +++ b/services/mariadb/VERSION @@ -1 +1 @@ -v0.28.2 \ No newline at end of file +v0.29.0 \ No newline at end of file diff --git a/services/mariadb/v1api/wait/wait.go b/services/mariadb/v1api/wait/wait.go index 0330dc14f..ae95d85b4 100644 --- a/services/mariadb/v1api/wait/wait.go +++ b/services/mariadb/v1api/wait/wait.go @@ -2,6 +2,7 @@ package wait import ( "context" + "errors" "fmt" "net/http" "strings" @@ -23,44 +24,38 @@ const ( // CreateInstanceWaitHandler will wait for instance creation func CreateInstanceWaitHandler(ctx context.Context, a mariadb.DefaultAPI, projectId, instanceId string) *wait.AsyncActionHandler[mariadb.Instance] { - handler := wait.New(func() (waitFinished bool, response *mariadb.Instance, err error) { - s, err := a.GetInstance(ctx, projectId, instanceId).Execute() - if err != nil { - return false, nil, err - } - if s.Status == nil { - return false, nil, fmt.Errorf("create failed for instance with id %s. The response is not valid: the status is missing", instanceId) - } - switch *s.Status { - case INSTANCESTATUS_ACTIVE: - return true, s, nil - case INSTANCESTATUS_FAILED: - return true, s, fmt.Errorf("create failed for instance with id %s: %s", instanceId, s.LastOperation.Description) - } - return false, nil, nil - }) + waitConfig := wait.WaiterHelper[mariadb.Instance, string]{ + FetchInstance: a.GetInstance(ctx, projectId, instanceId).Execute, + GetState: func(s *mariadb.Instance) (string, error) { + if s == nil || s.Status == nil { + return "", errors.New("response or status is nil") + } + return *s.Status, nil + }, + ActiveState: []string{INSTANCESTATUS_ACTIVE}, + ErrorState: []string{INSTANCESTATUS_FAILED}, + } + + handler := wait.New(waitConfig.Wait()) handler.SetTimeout(45 * time.Minute) return handler } // PartialUpdateInstanceWaitHandler will wait for instance update func PartialUpdateInstanceWaitHandler(ctx context.Context, a mariadb.DefaultAPI, projectId, instanceId string) *wait.AsyncActionHandler[mariadb.Instance] { - handler := wait.New(func() (waitFinished bool, response *mariadb.Instance, err error) { - s, err := a.GetInstance(ctx, projectId, instanceId).Execute() - if err != nil { - return false, nil, err - } - if s.Status == nil { - return false, nil, fmt.Errorf("update failed for instance with id %s. The response is not valid: the instance id or the status are missing", instanceId) - } - switch *s.Status { - case INSTANCESTATUS_ACTIVE: - return true, s, nil - case INSTANCESTATUS_FAILED: - return true, s, fmt.Errorf("update failed for instance with id %s: %s", instanceId, s.LastOperation.Description) - } - return false, nil, nil - }) + waitConfig := wait.WaiterHelper[mariadb.Instance, string]{ + FetchInstance: a.GetInstance(ctx, projectId, instanceId).Execute, + GetState: func(s *mariadb.Instance) (string, error) { + if s == nil || s.Status == nil { + return "", errors.New("response or status is nil") + } + return *s.Status, nil + }, + ActiveState: []string{INSTANCESTATUS_ACTIVE}, + ErrorState: []string{INSTANCESTATUS_FAILED}, + } + + handler := wait.New(waitConfig.Wait()) handler.SetTimeout(45 * time.Minute) return handler }