debug: write FIND-DEBUG to /tmp/nubes_find_debug.log instead of stderr

This commit is contained in:
“Naeel”
2026-07-09 00:47:41 +04:00
parent 5b106d7029
commit f4be94c5c9
+24 -16
View File
@@ -568,6 +568,14 @@ type InstanceStateResponse struct {
// FindInstanceByDisplayName finds an instance by display_name for a given serviceId.
// Если найдено больше одного non-deleted инстанса — возвращает ошибку.
func (c *UniversalClient) FindInstanceByDisplayName(ctx context.Context, serviceId int, displayName string) (*InstanceStateResponse, error) {
debug := func(format string, args ...interface{}) {
f, err := os.OpenFile("/tmp/nubes_find_debug.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
return
}
defer f.Close()
fmt.Fprintf(f, format+"\n", args...)
}
var found []InstanceStateResponse
// Быстрый поиск через search API
@@ -583,7 +591,7 @@ func (c *UniversalClient) FindInstanceByDisplayName(ctx context.Context, service
}
respBody, _, err := c.doRequest(ctx, "GET", "/instances?"+searchQuery.Encode(), nil)
if err != nil {
fmt.Fprintf(os.Stderr, "[FIND-DEBUG] search doRequest err: %v (serviceId=%d, name=%q)\n", err, serviceId, displayName)
debug("[FIND-DEBUG] search doRequest err: %v (serviceId=%d, name=%q)", err, serviceId, displayName)
} else {
var res struct {
Results []struct {
@@ -593,26 +601,26 @@ func (c *UniversalClient) FindInstanceByDisplayName(ctx context.Context, service
} `json:"results"`
}
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)
debug("[FIND-DEBUG] search json.Unmarshal err: %v (serviceId=%d, name=%q)", err, serviceId, displayName)
} else {
fmt.Fprintf(os.Stderr, "[FIND-DEBUG] search returned %d results (serviceId=%d, name=%q)\n", len(res.Results), serviceId, displayName)
debug("[FIND-DEBUG] search returned %d results (serviceId=%d, name=%q)", len(res.Results), serviceId, displayName)
for _, item := range res.Results {
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",
debug("[FIND-DEBUG] search item uid=%s name=%q svcId=%d matchSvc=%v matchName=%v",
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)
debug("[FIND-DEBUG] GetInstanceStateRaw err for uid=%s: %v", item.InstanceUid, err)
continue
}
if state == nil {
fmt.Fprintf(os.Stderr, "[FIND-DEBUG] GetInstanceStateRaw returned nil for uid=%s\n", item.InstanceUid)
debug("[FIND-DEBUG] GetInstanceStateRaw returned nil for uid=%s", 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)
debug("[FIND-DEBUG] GetInstanceStateRaw returned deleted for uid=%s (status=%q)", item.InstanceUid, state.ExplainedStatus)
continue
}
found = append(found, *state)
@@ -623,7 +631,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)
debug("[FIND-DEBUG] search path failed, entering fallback (serviceId=%d, name=%q)", serviceId, displayName)
page := 1
for {
reqURL := c.buildURL(fmt.Sprintf("/instances?page=%d&size=100", page))
@@ -638,7 +646,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)
debug("[FIND-DEBUG] fallback page=%d HttpClient.Do err: %v", page, err)
return nil, err
}
if resp.Body != nil {
@@ -646,7 +654,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)
debug("[FIND-DEBUG] fallback page=%d HTTP %d", page, resp.StatusCode)
return nil, fmt.Errorf("HTTP статус %d", resp.StatusCode)
}
@@ -658,7 +666,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)
debug("[FIND-DEBUG] fallback page=%d json.Decode err: %v", page, err)
return nil, err
}
@@ -666,26 +674,26 @@ 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))
debug("[FIND-DEBUG] fallback page=%d has %d results", page, len(res.Results))
for _, item := range res.Results {
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",
debug("[FIND-DEBUG] fallback item uid=%s name=%q svcId=%d matchSvc=%v matchName=%v",
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)
debug("[FIND-DEBUG] fallback GetInstanceStateRaw err for uid=%s: %v", item.InstanceUid, err)
continue
}
if state == nil {
fmt.Fprintf(os.Stderr, "[FIND-DEBUG] fallback GetInstanceStateRaw returned nil for uid=%s\n", item.InstanceUid)
debug("[FIND-DEBUG] fallback GetInstanceStateRaw returned nil for uid=%s", 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)
debug("[FIND-DEBUG] fallback GetInstanceStateRaw returned deleted for uid=%s (status=%q)", item.InstanceUid, state.ExplainedStatus)
continue
}
found = append(found, *state)