From 5b106d70296925a09eebfcea4781943c341911f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Thu, 9 Jul 2026 00:42:14 +0400 Subject: [PATCH] debug: stderr logging in FindInstanceByDisplayName, bump 5.0.66 --- TEST_STAND/kuber/main.tf | 2 +- TOOLS/config/test/profile.env | 2 +- provider/internal/core/client.go | 50 +++++++++++++++++++++++++++----- provider/main.go | 2 +- 4 files changed, 45 insertions(+), 11 deletions(-) diff --git a/TEST_STAND/kuber/main.tf b/TEST_STAND/kuber/main.tf index 2b7e054..3ee3452 100644 --- a/TEST_STAND/kuber/main.tf +++ b/TEST_STAND/kuber/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { nubes = { source = "terra.k8c.ru/nubes-test/nubes" - version = "5.0.65" + version = "5.0.66" } } } diff --git a/TOOLS/config/test/profile.env b/TOOLS/config/test/profile.env index e87218d..547af1e 100644 --- a/TOOLS/config/test/profile.env +++ b/TOOLS/config/test/profile.env @@ -3,7 +3,7 @@ NUBES_API_ENDPOINT="https://lk-api-gateway-test.ngcloud.ru/api/v1/svc" TOKEN_FILE="secrets/test.token" # Version -VERSION="5.0.65" +VERSION="5.0.66" # Docs generation — ONLY from docs_gen// (never from docs/) DOCS_GEN_DIR="provider/docs_gen/test" diff --git a/provider/internal/core/client.go b/provider/internal/core/client.go index 3f0c900..def6adb 100644 --- a/provider/internal/core/client.go +++ b/provider/internal/core/client.go @@ -582,7 +582,9 @@ func (c *UniversalClient) FindInstanceByDisplayName(ctx context.Context, service searchQuery.Set("serviceId", fmt.Sprintf("%d", serviceId)) } respBody, _, err := c.doRequest(ctx, "GET", "/instances?"+searchQuery.Encode(), nil) - if err == nil { + if err != nil { + fmt.Fprintf(os.Stderr, "[FIND-DEBUG] search doRequest err: %v (serviceId=%d, name=%q)\n", err, serviceId, displayName) + } else { var res struct { Results []struct { InstanceUid string `json:"instanceUid"` @@ -590,16 +592,30 @@ func (c *UniversalClient) FindInstanceByDisplayName(ctx context.Context, service ServiceId int `json:"serviceId"` } `json:"results"` } - if err := json.Unmarshal(respBody, &res); err == nil { + if err := json.Unmarshal(respBody, &res); err != nil { + fmt.Fprintf(os.Stderr, "[FIND-DEBUG] search json.Unmarshal err: %v (serviceId=%d, name=%q)\n", err, serviceId, displayName) + } else { + fmt.Fprintf(os.Stderr, "[FIND-DEBUG] search returned %d results (serviceId=%d, name=%q)\n", len(res.Results), serviceId, displayName) for _, item := range res.Results { - if item.ServiceId == serviceId && strings.EqualFold(item.DisplayName, displayName) { + matchSvc := item.ServiceId == serviceId + matchName := strings.EqualFold(item.DisplayName, displayName) + fmt.Fprintf(os.Stderr, "[FIND-DEBUG] search item uid=%s name=%q svcId=%d matchSvc=%v matchName=%v\n", + item.InstanceUid, item.DisplayName, item.ServiceId, matchSvc, matchName) + if matchSvc && matchName { state, err := c.GetInstanceStateRaw(ctx, item.InstanceUid) if err != nil { + fmt.Fprintf(os.Stderr, "[FIND-DEBUG] GetInstanceStateRaw err for uid=%s: %v\n", item.InstanceUid, err) continue } - if state != nil && !isInstanceDeleted(state) { - found = append(found, *state) + if state == nil { + fmt.Fprintf(os.Stderr, "[FIND-DEBUG] GetInstanceStateRaw returned nil for uid=%s\n", item.InstanceUid) + continue } + if isInstanceDeleted(state) { + fmt.Fprintf(os.Stderr, "[FIND-DEBUG] GetInstanceStateRaw returned deleted for uid=%s (status=%q)\n", item.InstanceUid, state.ExplainedStatus) + continue + } + found = append(found, *state) } } } @@ -607,6 +623,7 @@ func (c *UniversalClient) FindInstanceByDisplayName(ctx context.Context, service // Если быстрый поиск не дал результатов — пагинированный fallback if len(found) == 0 { + fmt.Fprintf(os.Stderr, "[FIND-DEBUG] search path failed, entering fallback (serviceId=%d, name=%q)\n", serviceId, displayName) page := 1 for { reqURL := c.buildURL(fmt.Sprintf("/instances?page=%d&size=100", page)) @@ -621,6 +638,7 @@ func (c *UniversalClient) FindInstanceByDisplayName(ctx context.Context, service resp, err := c.HttpClient.Do(req) if err != nil { + fmt.Fprintf(os.Stderr, "[FIND-DEBUG] fallback page=%d HttpClient.Do err: %v\n", page, err) return nil, err } if resp.Body != nil { @@ -628,6 +646,7 @@ func (c *UniversalClient) FindInstanceByDisplayName(ctx context.Context, service } if resp.StatusCode != 200 { + fmt.Fprintf(os.Stderr, "[FIND-DEBUG] fallback page=%d HTTP %d\n", page, resp.StatusCode) return nil, fmt.Errorf("HTTP статус %d", resp.StatusCode) } @@ -639,6 +658,7 @@ func (c *UniversalClient) FindInstanceByDisplayName(ctx context.Context, service } `json:"results"` } if err := json.NewDecoder(resp.Body).Decode(&res); err != nil { + fmt.Fprintf(os.Stderr, "[FIND-DEBUG] fallback page=%d json.Decode err: %v\n", page, err) return nil, err } @@ -646,15 +666,29 @@ func (c *UniversalClient) FindInstanceByDisplayName(ctx context.Context, service break } + fmt.Fprintf(os.Stderr, "[FIND-DEBUG] fallback page=%d has %d results\n", page, len(res.Results)) for _, item := range res.Results { - if item.ServiceId == serviceId && strings.EqualFold(item.DisplayName, displayName) { + matchSvc := item.ServiceId == serviceId + matchName := strings.EqualFold(item.DisplayName, displayName) + if matchSvc || matchName { + fmt.Fprintf(os.Stderr, "[FIND-DEBUG] fallback item uid=%s name=%q svcId=%d matchSvc=%v matchName=%v\n", + item.InstanceUid, item.DisplayName, item.ServiceId, matchSvc, matchName) + } + if matchSvc && matchName { state, err := c.GetInstanceStateRaw(ctx, item.InstanceUid) if err != nil { + fmt.Fprintf(os.Stderr, "[FIND-DEBUG] fallback GetInstanceStateRaw err for uid=%s: %v\n", item.InstanceUid, err) continue } - if state != nil && !isInstanceDeleted(state) { - found = append(found, *state) + if state == nil { + fmt.Fprintf(os.Stderr, "[FIND-DEBUG] fallback GetInstanceStateRaw returned nil for uid=%s\n", item.InstanceUid) + continue } + if isInstanceDeleted(state) { + fmt.Fprintf(os.Stderr, "[FIND-DEBUG] fallback GetInstanceStateRaw returned deleted for uid=%s (status=%q)\n", item.InstanceUid, state.ExplainedStatus) + continue + } + found = append(found, *state) } } diff --git a/provider/main.go b/provider/main.go index cfef325..2703504 100644 --- a/provider/main.go +++ b/provider/main.go @@ -17,7 +17,7 @@ import ( ) var ( - version string = "5.0.65" + version string = "5.0.66" ) func main() {