internal/proxy: inject transport in proxy.New
This removes the dependency from internal/proxy on ochttp.
For golang/go#61399
Change-Id: Ib2a350151752dc18c9a6e03b38b2d423ed55f4a1
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/523513
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Run-TryBot: Michael Matloob <matloob@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
kokoro-CI: kokoro <noreply+kokoro@google.com>
Reviewed-by: Robert Findley <rfindley@google.com>
diff --git a/cmd/frontend/main.go b/cmd/frontend/main.go
index 72c63a7..63eba69 100644
--- a/cmd/frontend/main.go
+++ b/cmd/frontend/main.go
@@ -79,7 +79,7 @@
expg := cmdconfig.ExperimentGetter(ctx, cfg)
log.Infof(ctx, "cmd/frontend: initialized cmdconfig.ExperimentGetter")
- proxyClient, err := proxy.New(*proxyURL)
+ proxyClient, err := proxy.New(*proxyURL, &ochttp.Transport{})
if err != nil {
log.Fatal(ctx, err)
}
@@ -103,7 +103,7 @@
defer db.Close()
dsg = func(context.Context) internal.DataSource { return db }
sourceClient := source.NewClient(&http.Client{
- Transport: &ochttp.Transport{},
+ Transport: new(ochttp.Transport),
Timeout: config.SourceTimeout,
})
// The closure passed to queue.New is only used for testing and local
diff --git a/cmd/pkgsite/main.go b/cmd/pkgsite/main.go
index 1883dbd..3c50ff5 100644
--- a/cmd/pkgsite/main.go
+++ b/cmd/pkgsite/main.go
@@ -132,7 +132,7 @@
die("GOPROXY environment variable is not set")
}
var err error
- serverCfg.proxy, err = proxy.New(url)
+ serverCfg.proxy, err = proxy.New(url, nil)
if err != nil {
die("connecting to proxy: %s", err)
}
diff --git a/cmd/worker/main.go b/cmd/worker/main.go
index df8fed0..3238587 100644
--- a/cmd/worker/main.go
+++ b/cmd/worker/main.go
@@ -72,7 +72,7 @@
if err != nil {
log.Fatal(ctx, err)
}
- proxyClient, err := proxy.New(cfg.ProxyURL)
+ proxyClient, err := proxy.New(cfg.ProxyURL, new(ochttp.Transport))
if err != nil {
log.Fatal(ctx, err)
}
diff --git a/devtools/cmd/seeddb/main.go b/devtools/cmd/seeddb/main.go
index e2002a3..59738af 100644
--- a/devtools/cmd/seeddb/main.go
+++ b/devtools/cmd/seeddb/main.go
@@ -72,13 +72,13 @@
func run(ctx context.Context, db *database.DB, proxyURL string) error {
start := time.Now()
- proxyClient, err := proxy.New(proxyURL)
+ proxyClient, err := proxy.New(proxyURL, new(ochttp.Transport))
if err != nil {
return err
}
sourceClient := source.NewClient(&http.Client{
- Transport: &ochttp.Transport{},
+ Transport: new(ochttp.Transport),
Timeout: config.SourceTimeout,
})
seedModules, err := readSeedFile(ctx, *seedfile)
diff --git a/internal/fetch/gen_zip_signatures.go b/internal/fetch/gen_zip_signatures.go
index 0a98f13..dc5ade0 100644
--- a/internal/fetch/gen_zip_signatures.go
+++ b/internal/fetch/gen_zip_signatures.go
@@ -63,7 +63,7 @@
flag.Parse()
ctx := context.Background()
- prox, err := proxy.New("https://proxy.golang.org")
+ prox, err := proxy.New("https://proxy.golang.org", nil)
if err != nil {
log.Fatal(err)
}
diff --git a/internal/proxy/client.go b/internal/proxy/client.go
index 1ada97c..92adc32 100644
--- a/internal/proxy/client.go
+++ b/internal/proxy/client.go
@@ -18,7 +18,6 @@
"strings"
"time"
- "go.opencensus.io/plugin/ochttp"
"golang.org/x/mod/module"
"golang.org/x/net/context/ctxhttp"
"golang.org/x/pkgsite/internal/derrors"
@@ -52,11 +51,12 @@
// New constructs a *Client using the provided url, which is expected to
// be an absolute URI that can be directly passed to http.Get.
-func New(u string) (_ *Client, err error) {
+// The optional transport parameter is used by the underlying http client.
+func New(u string, transport http.RoundTripper) (_ *Client, err error) {
defer derrors.WrapStack(&err, "proxy.New(%q)", u)
return &Client{
url: strings.TrimRight(u, "/"),
- HTTPClient: &http.Client{Transport: &ochttp.Transport{}},
+ HTTPClient: &http.Client{Transport: transport},
disableFetch: false,
}, nil
}
diff --git a/internal/proxy/client_test.go b/internal/proxy/client_test.go
index 54c3a5b..67fa831 100644
--- a/internal/proxy/client_test.go
+++ b/internal/proxy/client_test.go
@@ -278,7 +278,7 @@
}
func TestEncodedURL(t *testing.T) {
- c, err := proxy.New("u")
+ c, err := proxy.New("u", nil)
if err != nil {
t.Fatal(err)
}
diff --git a/internal/proxy/proxytest/proxytest.go b/internal/proxy/proxytest/proxytest.go
index 8cf10a9..8be98af 100644
--- a/internal/proxy/proxytest/proxytest.go
+++ b/internal/proxy/proxytest/proxytest.go
@@ -10,6 +10,7 @@
"strings"
"testing"
+ "go.opencensus.io/plugin/ochttp"
"golang.org/x/mod/modfile"
"golang.org/x/pkgsite/internal/proxy"
"golang.org/x/pkgsite/internal/testing/testhelper"
@@ -36,7 +37,7 @@
func NewClientForServer(s *Server) (*proxy.Client, func(), error) {
// override client.httpClient to skip TLS verification
httpClient, prox, serverClose := testhelper.SetupTestClientAndServer(s.mux)
- client, err := proxy.New(prox.URL)
+ client, err := proxy.New(prox.URL, new(ochttp.Transport))
if err != nil {
return nil, nil, err
}
diff --git a/tests/api/main.go b/tests/api/main.go
index 2adec42..c42aadd 100755
--- a/tests/api/main.go
+++ b/tests/api/main.go
@@ -19,6 +19,7 @@
"sort"
"strings"
+ "go.opencensus.io/plugin/ochttp"
"golang.org/x/mod/semver"
"golang.org/x/pkgsite/internal"
"golang.org/x/pkgsite/internal/derrors"
@@ -107,7 +108,7 @@
func generate(ctx context.Context, pkgPath, modulePath, tmpPath, proxyURL string) (err error) {
defer derrors.Wrap(&err, "generate(ctx, %q, %q, %q, %q)", pkgPath, modulePath, tmpPath, proxyURL)
- proxyClient, err := proxy.New(proxyURL)
+ proxyClient, err := proxy.New(proxyURL, new(ochttp.Transport))
if err != nil {
return err
}