diff options
-rw-r--r-- | .gitlab-ci.yml | 7 | ||||
-rw-r--r-- | client/client_test.go | 3 | ||||
-rw-r--r-- | client/httpclient_test.go | 6 | ||||
-rw-r--r-- | go.mod | 2 | ||||
-rw-r--r-- | go.sum | 1 | ||||
-rw-r--r-- | internal/config/config.go | 12 | ||||
-rw-r--r-- | internal/config/config_test.go | 5 | ||||
-rw-r--r-- | internal/gitlabnet/client.go | 5 |
8 files changed, 23 insertions, 18 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5f8dca5..5ef8a84 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -52,13 +52,6 @@ default: script: - make verify test -go:1.14: - extends: .test - image: golang:1.14 - after_script: - - make coverage - coverage: '/\d+.\d+%/' - go:1.15: extends: .test image: golang:1.15 diff --git a/client/client_test.go b/client/client_test.go index bf45181..f2ecd6c 100644 --- a/client/client_test.go +++ b/client/client_test.go @@ -59,7 +59,8 @@ func TestClients(t *testing.T) { secret := "sssh, it's a secret" - httpClient := NewHTTPClient(url, tc.relativeURLRoot, tc.caFile, "", false, 1) + httpClient, err := NewHTTPClientWithOpts(url, tc.relativeURLRoot, tc.caFile, "", false, 1, nil) + require.NoError(t, err) client, err := NewGitlabNetClient("", "", secret, httpClient) require.NoError(t, err) diff --git a/client/httpclient_test.go b/client/httpclient_test.go index 5c1ebe3..f3643a0 100644 --- a/client/httpclient_test.go +++ b/client/httpclient_test.go @@ -17,7 +17,8 @@ import ( func TestReadTimeout(t *testing.T) { expectedSeconds := uint64(300) - client := NewHTTPClient("http://localhost:3000", "", "", "", false, expectedSeconds) + client, err := NewHTTPClientWithOpts("http://localhost:3000", "", "", "", false, expectedSeconds, nil) + require.NoError(t, err) require.NotNil(t, client) require.Equal(t, time.Duration(expectedSeconds)*time.Second, client.Client.Timeout) @@ -122,7 +123,8 @@ func TestRequestWithUserAgent(t *testing.T) { func setup(t *testing.T, username, password string, requests []testserver.TestRequestHandler) *GitlabNetClient { url := testserver.StartHttpServer(t, requests) - httpClient := NewHTTPClient(url, "", "", "", false, 1) + httpClient, err := NewHTTPClientWithOpts(url, "", "", "", false, 1, nil) + require.NoError(t, err) client, err := NewGitlabNetClient(username, password, "", httpClient) require.NoError(t, err) @@ -1,6 +1,6 @@ module gitlab.com/gitlab-org/gitlab-shell -go 1.13 +go 1.15 require ( github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 @@ -219,7 +219,6 @@ github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfU github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= diff --git a/internal/config/config.go b/internal/config/config.go index 5aa99de..f69a6c8 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -58,6 +58,7 @@ type Config struct { Server ServerConfig `yaml:"sshd"` httpClient *client.HttpClient + httpClientErr error httpClientOnce sync.Once } @@ -95,16 +96,21 @@ func (c *Config) ApplyGlobalState() { } } -func (c *Config) HttpClient() *client.HttpClient { +func (c *Config) HttpClient() (*client.HttpClient, error) { c.httpClientOnce.Do(func() { - client := client.NewHTTPClient( + client, err := client.NewHTTPClientWithOpts( c.GitlabUrl, c.GitlabRelativeURLRoot, c.HttpSettings.CaFile, c.HttpSettings.CaPath, c.HttpSettings.SelfSignedCert, c.HttpSettings.ReadTimeoutSeconds, + nil, ) + if err != nil { + c.httpClientErr = err + return + } tr := client.Transport client.Transport = promhttp.InstrumentRoundTripperDuration(metrics.HttpRequestDuration, tr) @@ -112,7 +118,7 @@ func (c *Config) HttpClient() *client.HttpClient { c.httpClient = client }) - return c.httpClient + return c.httpClient, c.httpClientErr } // NewFromDirExternal returns a new config from a given root dir. It also applies defaults appropriate for diff --git a/internal/config/config_test.go b/internal/config/config_test.go index 5fa8e66..699a261 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -29,9 +29,10 @@ func TestHttpClient(t *testing.T) { url := testserver.StartHttpServer(t, []testserver.TestRequestHandler{}) config := &Config{GitlabUrl: url} - client := config.HttpClient() + client, err := config.HttpClient() + require.NoError(t, err) - _, err := client.Get("http://host.com/path") + _, err = client.Get("http://host.com/path") require.NoError(t, err) ms, err := prometheus.DefaultGatherer.Gather() diff --git a/internal/gitlabnet/client.go b/internal/gitlabnet/client.go index c0b72c4..39c3320 100644 --- a/internal/gitlabnet/client.go +++ b/internal/gitlabnet/client.go @@ -15,7 +15,10 @@ var ( ) func GetClient(config *config.Config) (*client.GitlabNetClient, error) { - httpClient := config.HttpClient() + httpClient, err := config.HttpClient() + if err != nil { + return nil, err + } if httpClient == nil { return nil, fmt.Errorf("Unsupported protocol") |