|
|
@ -4,7 +4,6 @@ import (
|
|
|
|
"bytes"
|
|
|
|
"bytes"
|
|
|
|
"context"
|
|
|
|
"context"
|
|
|
|
"crypto/tls"
|
|
|
|
"crypto/tls"
|
|
|
|
"errors"
|
|
|
|
|
|
|
|
"fmt"
|
|
|
|
"fmt"
|
|
|
|
"io"
|
|
|
|
"io"
|
|
|
|
"mime/multipart"
|
|
|
|
"mime/multipart"
|
|
|
@ -78,7 +77,7 @@ func (ldc *LegacyDecortClient) DecortApiCall(ctx context.Context, method, url st
|
|
|
|
|
|
|
|
|
|
|
|
k8sCaCreateReq, okCa := params.(k8s_ca.CreateRequest)
|
|
|
|
k8sCaCreateReq, okCa := params.(k8s_ca.CreateRequest)
|
|
|
|
k8sCbCreateReq, okCb := params.(k8s_cb.CreateRequest)
|
|
|
|
k8sCbCreateReq, okCb := params.(k8s_cb.CreateRequest)
|
|
|
|
|
|
|
|
|
|
|
|
var body *bytes.Buffer
|
|
|
|
var body *bytes.Buffer
|
|
|
|
var ctype string
|
|
|
|
var ctype string
|
|
|
|
|
|
|
|
|
|
|
@ -93,28 +92,17 @@ func (ldc *LegacyDecortClient) DecortApiCall(ctx context.Context, method, url st
|
|
|
|
}
|
|
|
|
}
|
|
|
|
body = bytes.NewBufferString(values.Encode() + fmt.Sprintf("&authkey=%s", ldc.cfg.Token))
|
|
|
|
body = bytes.NewBufferString(values.Encode() + fmt.Sprintf("&authkey=%s", ldc.cfg.Token))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
req, err := http.NewRequestWithContext(ctx, method, ldc.decortURL+"/restmachine"+url, body)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return nil, err
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
resp, err := ldc.do(req, ctype)
|
|
|
|
req, err := http.NewRequestWithContext(ctx, method, ldc.decortURL+"/restmachine"+url, body)
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return nil, err
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
defer resp.Body.Close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
respBytes, err := io.ReadAll(resp.Body)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if resp.StatusCode != 200 {
|
|
|
|
// perform request
|
|
|
|
return nil, errors.New(string(respBytes))
|
|
|
|
var respBytes []byte
|
|
|
|
}
|
|
|
|
respBytes, err = ldc.do(req, ctype)
|
|
|
|
|
|
|
|
|
|
|
|
return respBytes, nil
|
|
|
|
return respBytes, err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func (ldc *LegacyDecortClient) getToken(ctx context.Context) error {
|
|
|
|
func (ldc *LegacyDecortClient) getToken(ctx context.Context) error {
|
|
|
@ -148,7 +136,7 @@ func (ldc *LegacyDecortClient) getToken(ctx context.Context) error {
|
|
|
|
return nil
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func (ldc *LegacyDecortClient) do(req *http.Request, ctype string) (*http.Response, error) {
|
|
|
|
func (ldc *LegacyDecortClient) do(req *http.Request, ctype string) ([]byte, error) {
|
|
|
|
if ctype != "" {
|
|
|
|
if ctype != "" {
|
|
|
|
req.Header.Add("Content-Type", ctype)
|
|
|
|
req.Header.Add("Content-Type", ctype)
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
@ -156,32 +144,38 @@ func (ldc *LegacyDecortClient) do(req *http.Request, ctype string) (*http.Respon
|
|
|
|
}
|
|
|
|
}
|
|
|
|
req.Header.Set("Accept", "application/json")
|
|
|
|
req.Header.Set("Accept", "application/json")
|
|
|
|
|
|
|
|
|
|
|
|
// var resp *http.Response
|
|
|
|
buf, err := io.ReadAll(req.Body)
|
|
|
|
// var err error
|
|
|
|
if err != nil {
|
|
|
|
buf, _ := io.ReadAll(req.Body)
|
|
|
|
return nil, err
|
|
|
|
// req = req.Clone(req.Context())
|
|
|
|
}
|
|
|
|
|
|
|
|
req.Body.Close()
|
|
|
|
// for i := uint64(0); i < ldc.cfg.Retries; i++ {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
req.Body = io.NopCloser(bytes.NewBuffer(buf))
|
|
|
|
req.Body = io.NopCloser(bytes.NewBuffer(buf))
|
|
|
|
|
|
|
|
|
|
|
|
resp, err := ldc.client.Do(req)
|
|
|
|
resp, err := ldc.client.Do(req)
|
|
|
|
|
|
|
|
if err != nil || resp == nil {
|
|
|
|
|
|
|
|
return nil, err
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
defer resp.Body.Close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// if err == nil {
|
|
|
|
// handle successful request
|
|
|
|
|
|
|
|
respBytes, err := io.ReadAll(resp.Body)
|
|
|
|
|
|
|
|
if err!= nil {
|
|
|
|
|
|
|
|
return nil, err
|
|
|
|
|
|
|
|
}
|
|
|
|
if resp.StatusCode == 200 {
|
|
|
|
if resp.StatusCode == 200 {
|
|
|
|
return resp, err
|
|
|
|
return respBytes, nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
respBytes, _ := io.ReadAll(resp.Body)
|
|
|
|
|
|
|
|
err = fmt.Errorf("%s", respBytes)
|
|
|
|
|
|
|
|
resp.Body.Close()
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// handle errors with status code other than 200
|
|
|
|
|
|
|
|
err = fmt.Errorf("%s", respBytes)
|
|
|
|
return nil, fmt.Errorf("could not execute request: %w", err)
|
|
|
|
return nil, fmt.Errorf("could not execute request: %w", err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func createK8sCloudApiLegacy(req k8s_ca.CreateRequest, token string) (*bytes.Buffer, string) {
|
|
|
|
func createK8sCloudApiLegacy(req k8s_ca.CreateRequest, token string) (*bytes.Buffer, string) {
|
|
|
|
reqBody := &bytes.Buffer{}
|
|
|
|
reqBody := &bytes.Buffer{}
|
|
|
|
writer := multipart.NewWriter(reqBody)
|
|
|
|
writer := multipart.NewWriter(reqBody)
|
|
|
|
|
|
|
|
defer writer.Close()
|
|
|
|
if req.OidcCertificate != "" {
|
|
|
|
if req.OidcCertificate != "" {
|
|
|
|
part, _ := writer.CreateFormFile("oidcCertificate", "ca.crt")
|
|
|
|
part, _ := writer.CreateFormFile("oidcCertificate", "ca.crt")
|
|
|
|
_, _ = io.Copy(part, strings.NewReader(req.OidcCertificate))
|
|
|
|
_, _ = io.Copy(part, strings.NewReader(req.OidcCertificate))
|
|
|
@ -290,14 +284,13 @@ func createK8sCloudApiLegacy(req k8s_ca.CreateRequest, token string) (*bytes.Buf
|
|
|
|
_ = writer.WriteField("authkey", token)
|
|
|
|
_ = writer.WriteField("authkey", token)
|
|
|
|
|
|
|
|
|
|
|
|
ct := writer.FormDataContentType()
|
|
|
|
ct := writer.FormDataContentType()
|
|
|
|
writer.Close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return reqBody, ct
|
|
|
|
return reqBody, ct
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func createK8sCloudBrokerLegacy(req k8s_cb.CreateRequest, token string) (*bytes.Buffer, string) {
|
|
|
|
func createK8sCloudBrokerLegacy(req k8s_cb.CreateRequest, token string) (*bytes.Buffer, string) {
|
|
|
|
reqBody := &bytes.Buffer{}
|
|
|
|
reqBody := &bytes.Buffer{}
|
|
|
|
writer := multipart.NewWriter(reqBody)
|
|
|
|
writer := multipart.NewWriter(reqBody)
|
|
|
|
|
|
|
|
defer writer.Close()
|
|
|
|
if req.OidcCertificate != "" {
|
|
|
|
if req.OidcCertificate != "" {
|
|
|
|
part, _ := writer.CreateFormFile("oidcCertificate", "ca.crt")
|
|
|
|
part, _ := writer.CreateFormFile("oidcCertificate", "ca.crt")
|
|
|
|
_, _ = io.Copy(part, strings.NewReader(req.OidcCertificate))
|
|
|
|
_, _ = io.Copy(part, strings.NewReader(req.OidcCertificate))
|
|
|
@ -402,11 +395,9 @@ func createK8sCloudBrokerLegacy(req k8s_cb.CreateRequest, token string) (*bytes.
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
_ = writer.WriteField("extnetOnly", strconv.FormatBool(req.ExtNetOnly))
|
|
|
|
_ = writer.WriteField("extnetOnly", strconv.FormatBool(req.ExtNetOnly))
|
|
|
|
|
|
|
|
|
|
|
|
_ = writer.WriteField("authkey", token)
|
|
|
|
_ = writer.WriteField("authkey", token)
|
|
|
|
|
|
|
|
|
|
|
|
ct := writer.FormDataContentType()
|
|
|
|
ct := writer.FormDataContentType()
|
|
|
|
|
|
|
|
|
|
|
|
writer.Close()
|
|
|
|
|
|
|
|
return reqBody, ct
|
|
|
|
return reqBody, ct
|
|
|
|
}
|
|
|
|
}
|
|
|
|