aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2023-11-29 10:46:28 +0100
committerMartin Polden <mpolden@mpolden.no>2023-11-29 16:12:02 +0100
commit20d4f112c5292a4646635a93f707f662140e510b (patch)
treeea3003866c92955eef347ffc88aacb57dc3e2895
parent68b693e21343845e77f14f608d4620e7dc663eea (diff)
Extract httputil package
-rw-r--r--client/go/internal/cli/auth/auth0/auth0.go6
-rw-r--r--client/go/internal/cli/auth/zts/zts.go6
-rw-r--r--client/go/internal/cli/cmd/clone_list.go8
-rw-r--r--client/go/internal/cli/cmd/document.go3
-rw-r--r--client/go/internal/cli/cmd/feed.go8
-rw-r--r--client/go/internal/cli/cmd/root.go15
-rw-r--r--client/go/internal/cli/cmd/test.go3
-rw-r--r--client/go/internal/cli/cmd/testutil_test.go8
-rw-r--r--client/go/internal/httputil/httputil.go (renamed from client/go/internal/util/http.go)26
-rw-r--r--client/go/internal/mock/http.go4
-rw-r--r--client/go/internal/vespa/document/http.go6
-rw-r--r--client/go/internal/vespa/document/http_test.go14
-rw-r--r--client/go/internal/vespa/target.go8
-rw-r--r--client/go/internal/vespa/target_cloud.go6
-rw-r--r--client/go/internal/vespa/target_custom.go8
15 files changed, 69 insertions, 60 deletions
diff --git a/client/go/internal/cli/auth/auth0/auth0.go b/client/go/internal/cli/auth/auth0/auth0.go
index 7fae6e78b61..9466e9865b5 100644
--- a/client/go/internal/cli/auth/auth0/auth0.go
+++ b/client/go/internal/cli/auth/auth0/auth0.go
@@ -14,7 +14,7 @@ import (
"time"
"github.com/vespa-engine/vespa/client/go/internal/cli/auth"
- "github.com/vespa-engine/vespa/client/go/internal/util"
+ "github.com/vespa-engine/vespa/client/go/internal/httputil"
)
const (
@@ -31,7 +31,7 @@ type Credentials struct {
// Client is a client for the Auth0 service.
type Client struct {
- httpClient util.HTTPClient
+ httpClient httputil.Client
Authenticator *auth.Authenticator // TODO: Make this private
options Options
provider auth0Provider
@@ -80,7 +80,7 @@ func cancelOnInterrupt() context.Context {
// NewClient constructs a new Auth0 client, storing configuration in the given configPath. The client will be configured for
// use in the given Vespa system.
-func NewClient(httpClient util.HTTPClient, options Options) (*Client, error) {
+func NewClient(httpClient httputil.Client, options Options) (*Client, error) {
a := Client{}
a.httpClient = httpClient
a.options = options
diff --git a/client/go/internal/cli/auth/zts/zts.go b/client/go/internal/cli/auth/zts/zts.go
index b60aa363e70..1c31ba05dd3 100644
--- a/client/go/internal/cli/auth/zts/zts.go
+++ b/client/go/internal/cli/auth/zts/zts.go
@@ -11,7 +11,7 @@ import (
"sync"
"time"
- "github.com/vespa-engine/vespa/client/go/internal/util"
+ "github.com/vespa-engine/vespa/client/go/internal/httputil"
)
const (
@@ -21,7 +21,7 @@ const (
// Client is a client for Athenz ZTS, an authentication token service.
type Client struct {
- client util.HTTPClient
+ client httputil.Client
tokenURL *url.URL
domain string
now func() time.Time
@@ -38,7 +38,7 @@ type Token struct {
func (t *Token) isExpired(now time.Time) bool { return t.ExpiresAt.Sub(now) < expirySlack }
// NewClient creates a new client for an Athenz ZTS service located at serviceURL.
-func NewClient(client util.HTTPClient, domain, serviceURL string) (*Client, error) {
+func NewClient(client httputil.Client, domain, serviceURL string) (*Client, error) {
tokenURL, err := url.Parse(serviceURL)
if err != nil {
return nil, err
diff --git a/client/go/internal/cli/cmd/clone_list.go b/client/go/internal/cli/cmd/clone_list.go
index 40656841276..c6a99533c03 100644
--- a/client/go/internal/cli/cmd/clone_list.go
+++ b/client/go/internal/cli/cmd/clone_list.go
@@ -7,14 +7,14 @@ import (
"sort"
"time"
- "github.com/vespa-engine/vespa/client/go/internal/util"
+ "github.com/vespa-engine/vespa/client/go/internal/httputil"
)
-func listSampleApps(client util.HTTPClient) ([]string, error) {
+func listSampleApps(client httputil.Client) ([]string, error) {
return listSampleAppsAt("https://api.github.com/repos/vespa-engine/sample-apps/contents/", client)
}
-func listSampleAppsAt(url string, client util.HTTPClient) ([]string, error) {
+func listSampleAppsAt(url string, client httputil.Client) ([]string, error) {
rfs, err := getRepositoryFiles(url, client)
if err != nil {
return nil, err
@@ -36,7 +36,7 @@ func listSampleAppsAt(url string, client util.HTTPClient) ([]string, error) {
return apps, nil
}
-func getRepositoryFiles(url string, client util.HTTPClient) ([]repositoryFile, error) {
+func getRepositoryFiles(url string, client httputil.Client) ([]repositoryFile, error) {
req, err := http.NewRequest("GET", url, nil)
if err != nil {
return nil, err
diff --git a/client/go/internal/cli/cmd/document.go b/client/go/internal/cli/cmd/document.go
index 6892956880b..420936cffc0 100644
--- a/client/go/internal/cli/cmd/document.go
+++ b/client/go/internal/cli/cmd/document.go
@@ -15,6 +15,7 @@ import (
"github.com/fatih/color"
"github.com/spf13/cobra"
+ "github.com/vespa-engine/vespa/client/go/internal/httputil"
"github.com/vespa-engine/vespa/client/go/internal/util"
"github.com/vespa-engine/vespa/client/go/internal/vespa"
"github.com/vespa-engine/vespa/client/go/internal/vespa/document"
@@ -39,7 +40,7 @@ func documentClient(cli *CLI, timeoutSecs, waitSecs int, printCurl bool) (*docum
Timeout: time.Duration(timeoutSecs) * time.Second,
BaseURL: docService.BaseURL,
NowFunc: time.Now,
- }, []util.HTTPClient{docService})
+ }, []httputil.Client{docService})
if err != nil {
return nil, nil, err
}
diff --git a/client/go/internal/cli/cmd/feed.go b/client/go/internal/cli/cmd/feed.go
index 89e13a4673c..69b847547a9 100644
--- a/client/go/internal/cli/cmd/feed.go
+++ b/client/go/internal/cli/cmd/feed.go
@@ -12,7 +12,7 @@ import (
"time"
"github.com/spf13/cobra"
- "github.com/vespa-engine/vespa/client/go/internal/util"
+ "github.com/vespa-engine/vespa/client/go/internal/httputil"
"github.com/vespa-engine/vespa/client/go/internal/vespa/document"
)
@@ -124,7 +124,7 @@ $ cat docs.jsonl | vespa feed -`,
return cmd
}
-func createServices(n int, timeout time.Duration, waitSecs int, cli *CLI) ([]util.HTTPClient, string, error) {
+func createServices(n int, timeout time.Duration, waitSecs int, cli *CLI) ([]httputil.Client, string, error) {
if n < 1 {
return nil, "", fmt.Errorf("need at least one client")
}
@@ -132,7 +132,7 @@ func createServices(n int, timeout time.Duration, waitSecs int, cli *CLI) ([]uti
if err != nil {
return nil, "", err
}
- services := make([]util.HTTPClient, 0, n)
+ services := make([]httputil.Client, 0, n)
baseURL := ""
waiter := cli.waiter(time.Duration(waitSecs) * time.Second)
for i := 0; i < n; i++ {
@@ -144,7 +144,7 @@ func createServices(n int, timeout time.Duration, waitSecs int, cli *CLI) ([]uti
// Create a separate HTTP client for each service
client := cli.httpClientFactory(timeout)
// Feeding should always use HTTP/2
- util.ForceHTTP2(client, service.TLSOptions.KeyPair, service.TLSOptions.CACertificate, service.TLSOptions.TrustAll)
+ httputil.ForceHTTP2(client, service.TLSOptions.KeyPair, service.TLSOptions.CACertificate, service.TLSOptions.TrustAll)
service.SetClient(client)
services = append(services, service)
}
diff --git a/client/go/internal/cli/cmd/root.go b/client/go/internal/cli/cmd/root.go
index 1f324658b69..2a8c2fee22f 100644
--- a/client/go/internal/cli/cmd/root.go
+++ b/client/go/internal/cli/cmd/root.go
@@ -20,6 +20,7 @@ import (
"github.com/vespa-engine/vespa/client/go/internal/build"
"github.com/vespa-engine/vespa/client/go/internal/cli/auth/auth0"
"github.com/vespa-engine/vespa/client/go/internal/cli/auth/zts"
+ "github.com/vespa-engine/vespa/client/go/internal/httputil"
"github.com/vespa-engine/vespa/client/go/internal/util"
"github.com/vespa-engine/vespa/client/go/internal/version"
"github.com/vespa-engine/vespa/client/go/internal/vespa"
@@ -58,8 +59,8 @@ type CLI struct {
config *Config
version version.Version
- httpClient util.HTTPClient
- httpClientFactory func(timeout time.Duration) util.HTTPClient
+ httpClient httputil.Client
+ httpClientFactory func(timeout time.Duration) httputil.Client
auth0Factory auth0Factory
ztsFactory ztsFactory
}
@@ -102,9 +103,9 @@ func (c *execSubprocess) Run(name string, args ...string) ([]byte, error) {
return exec.Command(name, args...).Output()
}
-type auth0Factory func(httpClient util.HTTPClient, options auth0.Options) (vespa.Authenticator, error)
+type auth0Factory func(httpClient httputil.Client, options auth0.Options) (vespa.Authenticator, error)
-type ztsFactory func(httpClient util.HTTPClient, domain, url string) (vespa.Authenticator, error)
+type ztsFactory func(httpClient httputil.Client, domain, url string) (vespa.Authenticator, error)
// New creates the Vespa CLI, writing output to stdout and stderr, and reading environment variables from environment.
func New(stdout, stderr io.Writer, environment []string) (*CLI, error) {
@@ -136,7 +137,7 @@ For detailed description of flags and configuration, see 'vespa help config'.
if err != nil {
return nil, err
}
- httpClientFactory := util.CreateClient
+ httpClientFactory := httputil.NewClient
cli := CLI{
Environment: env,
Stdin: os.Stdin,
@@ -152,10 +153,10 @@ For detailed description of flags and configuration, see 'vespa help config'.
httpClient: httpClientFactory(time.Second * 10),
httpClientFactory: httpClientFactory,
- auth0Factory: func(httpClient util.HTTPClient, options auth0.Options) (vespa.Authenticator, error) {
+ auth0Factory: func(httpClient httputil.Client, options auth0.Options) (vespa.Authenticator, error) {
return auth0.NewClient(httpClient, options)
},
- ztsFactory: func(httpClient util.HTTPClient, domain, url string) (vespa.Authenticator, error) {
+ ztsFactory: func(httpClient httputil.Client, domain, url string) (vespa.Authenticator, error) {
return zts.NewClient(httpClient, domain, url)
},
}
diff --git a/client/go/internal/cli/cmd/test.go b/client/go/internal/cli/cmd/test.go
index 376611767d9..81bf37c5653 100644
--- a/client/go/internal/cli/cmd/test.go
+++ b/client/go/internal/cli/cmd/test.go
@@ -21,6 +21,7 @@ import (
"github.com/fatih/color"
"github.com/spf13/cobra"
+ "github.com/vespa-engine/vespa/client/go/internal/httputil"
"github.com/vespa-engine/vespa/client/go/internal/util"
"github.com/vespa-engine/vespa/client/go/internal/vespa"
)
@@ -277,7 +278,7 @@ func verify(step step, defaultCluster string, defaultParameters map[string]strin
var response *http.Response
if externalEndpoint {
- util.ConfigureTLS(context.cli.httpClient, []tls.Certificate{}, nil, false)
+ httputil.ConfigureTLS(context.cli.httpClient, []tls.Certificate{}, nil, false)
response, err = context.cli.httpClient.Do(request, 60*time.Second)
} else {
response, err = service.Do(request, 600*time.Second) // Vespa should provide a response within the given request timeout
diff --git a/client/go/internal/cli/cmd/testutil_test.go b/client/go/internal/cli/cmd/testutil_test.go
index 89f40035f6a..dbeb281a4a8 100644
--- a/client/go/internal/cli/cmd/testutil_test.go
+++ b/client/go/internal/cli/cmd/testutil_test.go
@@ -11,8 +11,8 @@ import (
"time"
"github.com/vespa-engine/vespa/client/go/internal/cli/auth/auth0"
+ "github.com/vespa-engine/vespa/client/go/internal/httputil"
"github.com/vespa-engine/vespa/client/go/internal/mock"
- "github.com/vespa-engine/vespa/client/go/internal/util"
"github.com/vespa-engine/vespa/client/go/internal/vespa"
)
@@ -31,13 +31,13 @@ func newTestCLI(t *testing.T, envVars ...string) (*CLI, *bytes.Buffer, *bytes.Bu
t.Fatal(err)
}
httpClient := &mock.HTTPClient{}
- cli.httpClientFactory = func(timeout time.Duration) util.HTTPClient { return httpClient }
+ cli.httpClientFactory = func(timeout time.Duration) httputil.Client { return httpClient }
cli.httpClient = httpClient
cli.exec = &mock.Exec{}
- cli.auth0Factory = func(httpClient util.HTTPClient, options auth0.Options) (vespa.Authenticator, error) {
+ cli.auth0Factory = func(httpClient httputil.Client, options auth0.Options) (vespa.Authenticator, error) {
return &mockAuthenticator{}, nil
}
- cli.ztsFactory = func(httpClient util.HTTPClient, domain, url string) (vespa.Authenticator, error) {
+ cli.ztsFactory = func(httpClient httputil.Client, domain, url string) (vespa.Authenticator, error) {
return &mockAuthenticator{}, nil
}
return cli, &stdout, &stderr
diff --git a/client/go/internal/util/http.go b/client/go/internal/httputil/httputil.go
index a7a9de5b8e4..e1e27de5523 100644
--- a/client/go/internal/util/http.go
+++ b/client/go/internal/httputil/httputil.go
@@ -1,5 +1,5 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package util
+package httputil
import (
"context"
@@ -14,15 +14,16 @@ import (
"golang.org/x/net/http2"
)
-type HTTPClient interface {
+// Client represents a HTTP client usable by the Vespa CLI.
+type Client interface {
Do(request *http.Request, timeout time.Duration) (response *http.Response, error error)
}
-type defaultHTTPClient struct {
+type defaultClient struct {
client *http.Client
}
-func (c *defaultHTTPClient) Do(request *http.Request, timeout time.Duration) (response *http.Response, error error) {
+func (c *defaultClient) Do(request *http.Request, timeout time.Duration) (response *http.Response, error error) {
if c.client.Timeout != timeout { // Set wanted timeout
c.client.Timeout = timeout
}
@@ -33,8 +34,10 @@ func (c *defaultHTTPClient) Do(request *http.Request, timeout time.Duration) (re
return c.client.Do(request)
}
-func ConfigureTLS(client HTTPClient, certificates []tls.Certificate, caCertificate []byte, trustAll bool) {
- c, ok := client.(*defaultHTTPClient)
+// ConfigureTLS configures the given client with given certificates and caCertificate. If trustAll is true, the client
+// will skip verification of the certificate chain.
+func ConfigureTLS(client Client, certificates []tls.Certificate, caCertificate []byte, trustAll bool) {
+ c, ok := client.(*defaultClient)
if !ok {
return
}
@@ -60,8 +63,10 @@ func ConfigureTLS(client HTTPClient, certificates []tls.Certificate, caCertifica
}
}
-func ForceHTTP2(client HTTPClient, certificates []tls.Certificate, caCertificate []byte, trustAll bool) {
- c, ok := client.(*defaultHTTPClient)
+// ForceHTTP2 configures the given client exclusively with a HTTP/2 transport. The other options are passed to
+// ConfigureTLS. If certificates is nil, the client will be configured with H2C (HTTP/2 over clear-text).
+func ForceHTTP2(client Client, certificates []tls.Certificate, caCertificate []byte, trustAll bool) {
+ c, ok := client.(*defaultClient)
if !ok {
return
}
@@ -85,8 +90,9 @@ func ForceHTTP2(client HTTPClient, certificates []tls.Certificate, caCertificate
ConfigureTLS(client, certificates, caCertificate, trustAll)
}
-func CreateClient(timeout time.Duration) HTTPClient {
- return &defaultHTTPClient{
+// NewClients creates a new HTTP client the given default timeout.
+func NewClient(timeout time.Duration) Client {
+ return &defaultClient{
client: &http.Client{
Timeout: timeout,
Transport: http.DefaultTransport,
diff --git a/client/go/internal/mock/http.go b/client/go/internal/mock/http.go
index c01811c4630..06e143ab80d 100644
--- a/client/go/internal/mock/http.go
+++ b/client/go/internal/mock/http.go
@@ -9,7 +9,7 @@ import (
"strconv"
"time"
- "github.com/vespa-engine/vespa/client/go/internal/util"
+ "github.com/vespa-engine/vespa/client/go/internal/httputil"
)
type HTTPClient struct {
@@ -95,4 +95,4 @@ func (c *HTTPClient) Do(request *http.Request, timeout time.Duration) (*http.Res
nil
}
-func (c *HTTPClient) Clone() util.HTTPClient { return c }
+func (c *HTTPClient) Clone() httputil.Client { return c }
diff --git a/client/go/internal/vespa/document/http.go b/client/go/internal/vespa/document/http.go
index f878938d6fc..3871ab19edd 100644
--- a/client/go/internal/vespa/document/http.go
+++ b/client/go/internal/vespa/document/http.go
@@ -18,7 +18,7 @@ import (
"github.com/go-json-experiment/json"
"github.com/klauspost/compress/gzip"
- "github.com/vespa-engine/vespa/client/go/internal/util"
+ "github.com/vespa-engine/vespa/client/go/internal/httputil"
)
type Compression int
@@ -52,7 +52,7 @@ type ClientOptions struct {
}
type countingHTTPClient struct {
- client util.HTTPClient
+ client httputil.Client
inflight atomic.Int64
}
@@ -70,7 +70,7 @@ type pendingDocument struct {
err error
}
-func NewClient(options ClientOptions, httpClients []util.HTTPClient) (*Client, error) {
+func NewClient(options ClientOptions, httpClients []httputil.Client) (*Client, error) {
if len(httpClients) < 1 {
return nil, fmt.Errorf("need at least one HTTP client")
}
diff --git a/client/go/internal/vespa/document/http_test.go b/client/go/internal/vespa/document/http_test.go
index b2c1139f95f..89e9e96064b 100644
--- a/client/go/internal/vespa/document/http_test.go
+++ b/client/go/internal/vespa/document/http_test.go
@@ -10,8 +10,8 @@ import (
"testing"
"time"
+ "github.com/vespa-engine/vespa/client/go/internal/httputil"
"github.com/vespa-engine/vespa/client/go/internal/mock"
- "github.com/vespa-engine/vespa/client/go/internal/util"
)
type manualClock struct {
@@ -33,7 +33,7 @@ type mockHTTPClient struct {
func TestLeastBusyClient(t *testing.T) {
httpClient := mock.HTTPClient{}
- var httpClients []util.HTTPClient
+ var httpClients []httputil.Client
for i := 0; i < 4; i++ {
httpClients = append(httpClients, &mockHTTPClient{i, &httpClient})
}
@@ -83,7 +83,7 @@ func TestClientSend(t *testing.T) {
client, _ := NewClient(ClientOptions{
BaseURL: "https://example.com:1337",
Timeout: time.Duration(5 * time.Second),
- }, []util.HTTPClient{&httpClient})
+ }, []httputil.Client{&httpClient})
clock := manualClock{t: time.Now(), tick: time.Second}
client.now = clock.now
var stats Stats
@@ -164,7 +164,7 @@ func TestClientGet(t *testing.T) {
client, _ := NewClient(ClientOptions{
BaseURL: "https://example.com:1337",
Timeout: time.Duration(5 * time.Second),
- }, []util.HTTPClient{&httpClient})
+ }, []httputil.Client{&httpClient})
clock := manualClock{t: time.Now(), tick: time.Second}
client.now = clock.now
doc := `{
@@ -196,7 +196,7 @@ func TestClientSendCompressed(t *testing.T) {
client, _ := NewClient(ClientOptions{
BaseURL: "https://example.com:1337",
Timeout: time.Duration(5 * time.Second),
- }, []util.HTTPClient{httpClient})
+ }, []httputil.Client{httpClient})
bigBody := fmt.Sprintf(`{"fields": {"foo": "%s"}}`, strings.Repeat("s", 512+1))
bigDoc := Document{Create: true, Id: mustParseId("id:ns:type::doc1"), Operation: OperationUpdate, Body: []byte(bigBody)}
@@ -313,7 +313,7 @@ func TestClientMethodAndURL(t *testing.T) {
httpClient := mock.HTTPClient{}
client, _ := NewClient(ClientOptions{
BaseURL: "https://example.com/",
- }, []util.HTTPClient{&httpClient})
+ }, []httputil.Client{&httpClient})
for i, tt := range tests {
client.options.Timeout = tt.options.Timeout
client.options.Route = tt.options.Route
@@ -333,7 +333,7 @@ func benchmarkClientSend(b *testing.B, compression Compression, document Documen
Compression: compression,
BaseURL: "https://example.com:1337",
Timeout: time.Duration(5 * time.Second),
- }, []util.HTTPClient{&httpClient})
+ }, []httputil.Client{&httpClient})
b.ResetTimer() // ignore setup
for n := 0; n < b.N; n++ {
client.Send(document)
diff --git a/client/go/internal/vespa/target.go b/client/go/internal/vespa/target.go
index 3a76eac0292..543ce2f4a29 100644
--- a/client/go/internal/vespa/target.go
+++ b/client/go/internal/vespa/target.go
@@ -12,7 +12,7 @@ import (
"time"
"github.com/vespa-engine/vespa/client/go/internal/curl"
- "github.com/vespa-engine/vespa/client/go/internal/util"
+ "github.com/vespa-engine/vespa/client/go/internal/httputil"
"github.com/vespa-engine/vespa/client/go/internal/version"
)
@@ -84,7 +84,7 @@ type Service struct {
deployAPI bool
auth Authenticator
- httpClient util.HTTPClient
+ httpClient httputil.Client
customClient bool
retryInterval time.Duration
}
@@ -143,7 +143,7 @@ type LogOptions struct {
func (s *Service) Do(request *http.Request, timeout time.Duration) (*http.Response, error) {
if !s.customClient {
// Do not override TLS config if a custom client has been configured
- util.ConfigureTLS(s.httpClient, s.TLSOptions.KeyPair, s.TLSOptions.CACertificate, s.TLSOptions.TrustAll)
+ httputil.ConfigureTLS(s.httpClient, s.TLSOptions.KeyPair, s.TLSOptions.CACertificate, s.TLSOptions.TrustAll)
}
if s.auth != nil {
if err := s.auth.Authenticate(request); err != nil {
@@ -157,7 +157,7 @@ func (s *Service) Do(request *http.Request, timeout time.Duration) (*http.Respon
}
// SetClient sets a custom HTTP client that this service should use.
-func (s *Service) SetClient(client util.HTTPClient) {
+func (s *Service) SetClient(client httputil.Client) {
s.httpClient = client
s.customClient = true
}
diff --git a/client/go/internal/vespa/target_cloud.go b/client/go/internal/vespa/target_cloud.go
index 708810061d2..c063b99edef 100644
--- a/client/go/internal/vespa/target_cloud.go
+++ b/client/go/internal/vespa/target_cloud.go
@@ -12,7 +12,7 @@ import (
"strconv"
"time"
- "github.com/vespa-engine/vespa/client/go/internal/util"
+ "github.com/vespa-engine/vespa/client/go/internal/httputil"
"github.com/vespa-engine/vespa/client/go/internal/version"
)
@@ -35,7 +35,7 @@ type cloudTarget struct {
apiOptions APIOptions
deploymentOptions CloudDeploymentOptions
logOptions LogOptions
- httpClient util.HTTPClient
+ httpClient httputil.Client
apiAuth Authenticator
deploymentAuth Authenticator
retryInterval time.Duration
@@ -74,7 +74,7 @@ type logMessage struct {
}
// CloudTarget creates a Target for the Vespa Cloud or hosted Vespa platform.
-func CloudTarget(httpClient util.HTTPClient, apiAuth Authenticator, deploymentAuth Authenticator,
+func CloudTarget(httpClient httputil.Client, apiAuth Authenticator, deploymentAuth Authenticator,
apiOptions APIOptions, deploymentOptions CloudDeploymentOptions,
logOptions LogOptions, retryInterval time.Duration) (Target, error) {
return &cloudTarget{
diff --git a/client/go/internal/vespa/target_custom.go b/client/go/internal/vespa/target_custom.go
index 0f3817e8c13..9d62f7dc297 100644
--- a/client/go/internal/vespa/target_custom.go
+++ b/client/go/internal/vespa/target_custom.go
@@ -11,14 +11,14 @@ import (
"strconv"
"time"
- "github.com/vespa-engine/vespa/client/go/internal/util"
+ "github.com/vespa-engine/vespa/client/go/internal/httputil"
"github.com/vespa-engine/vespa/client/go/internal/version"
)
type customTarget struct {
targetType string
baseURL string
- httpClient util.HTTPClient
+ httpClient httputil.Client
tlsOptions TLSOptions
retryInterval time.Duration
}
@@ -36,7 +36,7 @@ type serviceInfo struct {
}
// LocalTarget creates a target for a Vespa platform running locally.
-func LocalTarget(httpClient util.HTTPClient, tlsOptions TLSOptions, retryInterval time.Duration) Target {
+func LocalTarget(httpClient httputil.Client, tlsOptions TLSOptions, retryInterval time.Duration) Target {
return &customTarget{
targetType: TargetLocal,
baseURL: "http://127.0.0.1",
@@ -47,7 +47,7 @@ func LocalTarget(httpClient util.HTTPClient, tlsOptions TLSOptions, retryInterva
}
// CustomTarget creates a Target for a Vespa platform running at baseURL.
-func CustomTarget(httpClient util.HTTPClient, baseURL string, tlsOptions TLSOptions, retryInterval time.Duration) Target {
+func CustomTarget(httpClient httputil.Client, baseURL string, tlsOptions TLSOptions, retryInterval time.Duration) Target {
return &customTarget{
targetType: TargetCustom,
baseURL: baseURL,