v5.0.70: all URLs use ?endpoint= (fix query params in path)
This commit is contained in:
@@ -2,7 +2,7 @@ terraform {
|
|||||||
required_providers {
|
required_providers {
|
||||||
nubes = {
|
nubes = {
|
||||||
source = "terra.k8c.ru/nubes-test/nubes"
|
source = "terra.k8c.ru/nubes-test/nubes"
|
||||||
version = "5.0.69"
|
version = "5.0.70"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -507,7 +507,7 @@ func (c *UniversalClient) FindInstanceByDisplayName(ctx context.Context, service
|
|||||||
if len(found) == 0 {
|
if len(found) == 0 {
|
||||||
page := 1
|
page := 1
|
||||||
for {
|
for {
|
||||||
reqURL := fmt.Sprintf("%s/instances?page=%d&size=100", c.ApiEndpoint, page)
|
reqURL := fmt.Sprintf("%s?endpoint=/instances&page=%d&size=100", c.ApiEndpoint, page)
|
||||||
req, err := http.NewRequestWithContext(ctx, "GET", reqURL, nil)
|
req, err := http.NewRequestWithContext(ctx, "GET", reqURL, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -581,7 +581,7 @@ func (c *UniversalClient) FindInstanceByDisplayName(ctx context.Context, service
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *UniversalClient) GetInstanceState(ctx context.Context, instanceUid string) (*InstanceStateResponse, error) {
|
func (c *UniversalClient) GetInstanceState(ctx context.Context, instanceUid string) (*InstanceStateResponse, error) {
|
||||||
url := fmt.Sprintf("%s/instances/%s", c.ApiEndpoint, instanceUid)
|
url := fmt.Sprintf("%s?endpoint=/instances/%s", c.ApiEndpoint, instanceUid)
|
||||||
req, err := http.NewRequestWithContext(ctx, "GET", url, nil)
|
req, err := http.NewRequestWithContext(ctx, "GET", url, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -627,7 +627,7 @@ func isInstanceDeleted(state *InstanceStateResponse) bool {
|
|||||||
// GetInstanceStateRaw получает состояние инстанса БЕЗ валидации статуса.
|
// GetInstanceStateRaw получает состояние инстанса БЕЗ валидации статуса.
|
||||||
// Используется для проверки ref-параметров: нужно читать даже deleted/suspended инстансы.
|
// Используется для проверки ref-параметров: нужно читать даже deleted/suspended инстансы.
|
||||||
func (c *UniversalClient) GetInstanceStateRaw(ctx context.Context, instanceUid string) (*InstanceStateResponse, error) {
|
func (c *UniversalClient) GetInstanceStateRaw(ctx context.Context, instanceUid string) (*InstanceStateResponse, error) {
|
||||||
reqURL := fmt.Sprintf("%s/instances/%s", c.ApiEndpoint, instanceUid)
|
reqURL := fmt.Sprintf("%s?endpoint=/instances/%s", c.ApiEndpoint, instanceUid)
|
||||||
req, err := http.NewRequestWithContext(ctx, "GET", reqURL, nil)
|
req, err := http.NewRequestWithContext(ctx, "GET", reqURL, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -834,8 +834,23 @@ func (c *UniversalClient) doRequest(ctx context.Context, method, path string, pa
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ?endpoint= формат — как генератор (Python) и curl
|
// ?endpoint= формат — как генератор (Python) и curl
|
||||||
|
endpointPath := path
|
||||||
|
extraQuery := ""
|
||||||
|
if idx := strings.Index(path, "?"); idx >= 0 {
|
||||||
|
endpointPath = path[:idx]
|
||||||
|
extraQuery = path[idx+1:]
|
||||||
|
}
|
||||||
q := req.URL.Query()
|
q := req.URL.Query()
|
||||||
q.Set("endpoint", path)
|
q.Set("endpoint", endpointPath)
|
||||||
|
if extraQuery != "" {
|
||||||
|
// Добавляем параметры из path в URL (не в endpoint)
|
||||||
|
for _, param := range strings.Split(extraQuery, "&") {
|
||||||
|
kv := strings.SplitN(param, "=", 2)
|
||||||
|
if len(kv) == 2 {
|
||||||
|
q.Set(kv[0], kv[1])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
req.URL.RawQuery = q.Encode()
|
req.URL.RawQuery = q.Encode()
|
||||||
|
|
||||||
req.Header.Set("User-Agent", userAgent)
|
req.Header.Set("User-Agent", userAgent)
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
version string = "5.0.69"
|
version string = "5.0.70"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
Reference in New Issue
Block a user