From 79f0514294e32fc41204cbfd162e1b75f21acc81 Mon Sep 17 00:00:00 2001 From: Umputun Date: Sat, 3 Apr 2021 01:00:09 -0500 Subject: [PATCH] lint: multiple warns --- app/discovery/discovery.go | 2 ++ app/discovery/discovery_test.go | 1 + app/discovery/provider/docker.go | 5 +++-- app/discovery/provider/static_test.go | 1 + app/main.go | 15 +++------------ app/proxy/proxy_test.go | 9 +++++++-- app/proxy/ssl_test.go | 2 +- 7 files changed, 18 insertions(+), 17 deletions(-) diff --git a/app/discovery/discovery.go b/app/discovery/discovery.go index 945549e..a9e6f3d 100644 --- a/app/discovery/discovery.go +++ b/app/discovery/discovery.go @@ -34,8 +34,10 @@ type Provider interface { ID() ProviderID } +// ProviderID holds provider identifier to emulate enum of them type ProviderID string +// enum of all provider ids const ( PIDocker ProviderID = "docker" PIStatic ProviderID = "static" diff --git a/app/discovery/discovery_test.go b/app/discovery/discovery_test.go index 15f4f41..fea379f 100644 --- a/app/discovery/discovery_test.go +++ b/app/discovery/discovery_test.go @@ -118,6 +118,7 @@ func TestService_Match(t *testing.T) { } for i, tt := range tbl { + tt := tt t.Run(strconv.Itoa(i), func(t *testing.T) { res, ok := svc.Match(tt.server, tt.src) assert.Equal(t, tt.ok, ok) diff --git a/app/discovery/provider/docker.go b/app/discovery/provider/docker.go index f5def1b..b20fda0 100644 --- a/app/discovery/provider/docker.go +++ b/app/discovery/provider/docker.go @@ -48,14 +48,15 @@ var ( func (d *Docker) Events(ctx context.Context) (res <-chan struct{}) { eventsCh := make(chan struct{}) go func() { + // loop over to recover from failed events call for { - err := d.events(ctx, d.DockerClient, eventsCh) + err := d.events(ctx, d.DockerClient, eventsCh) // publish events to eventsCh if err == context.Canceled || err == context.DeadlineExceeded { close(eventsCh) return } log.Printf("[WARN] docker events listener failed, restarted, %v", err) - time.Sleep(100 * time.Millisecond) + time.Sleep(100 * time.Millisecond) // prevent busy loop on restart event listener } }() return eventsCh diff --git a/app/discovery/provider/static_test.go b/app/discovery/provider/static_test.go index 1e00d8a..95a35fd 100644 --- a/app/discovery/provider/static_test.go +++ b/app/discovery/provider/static_test.go @@ -23,6 +23,7 @@ func TestStatic_List(t *testing.T) { } for i, tt := range tbl { + tt := tt t.Run(strconv.Itoa(i), func(t *testing.T) { s := Static{Rules: []string{tt.rule}} res, err := s.List() diff --git a/app/main.go b/app/main.go index 4bc03ba..1a0042e 100644 --- a/app/main.go +++ b/app/main.go @@ -61,16 +61,6 @@ var opts struct { Dbg bool `long:"dbg" env:"DEBUG" description:"debug mode"` } -// SSLGroup defines options group for server ssl params -type SSLGroup struct { - Type string `long:"type" env:"TYPE" description:"ssl (auto) support" choice:"none" choice:"static" choice:"auto" default:"none"` //nolint - Port int `long:"port" env:"PORT" description:"port number for https server" default:"8443"` - Cert string `long:"cert" env:"CERT" description:"path to cert.pem file"` - Key string `long:"key" env:"KEY" description:"path to key.pem file"` - ACMELocation string `long:"acme-location" env:"ACME_LOCATION" description:"dir where certificates will be stored by autocert manager" default:"./var/acme"` - ACMEEmail string `long:"acme-email" env:"ACME_EMAIL" description:"admin email for certificate notifications"` -} - var revision = "unknown" func main() { @@ -101,8 +91,8 @@ func main() { svc := discovery.NewService(providers) go func() { - if err := svc.Run(context.Background()); err != nil { - log.Fatalf("[ERROR] discovery failed, %v", err) + if e := svc.Run(context.Background()); e != nil { + log.Fatalf("[ERROR] discovery failed, %v", e) } }() @@ -121,6 +111,7 @@ func main() { AssetsWebRoot: opts.Assets.WebRoot, GzEnabled: opts.GzipEnabled, SSLConfig: sslConfig, + ProxyHeaders: opts.ProxyHeaders, } if err := px.Run(context.Background()); err != nil { log.Fatalf("[ERROR] proxy server failed, %v", err) diff --git a/app/proxy/proxy_test.go b/app/proxy/proxy_test.go index bcc9fbd..b7c2fa6 100644 --- a/app/proxy/proxy_test.go +++ b/app/proxy/proxy_test.go @@ -37,12 +37,14 @@ func TestHttp_Do(t *testing.T) { }}) go func() { - svc.Run(context.Background()) + err := svc.Run(context.Background()) + assert.Equal(t, context.DeadlineExceeded, err) }() h.Matcher = svc go func() { - h.Run(ctx) + err := h.Run(ctx) + assert.Equal(t, context.DeadlineExceeded, err) }() time.Sleep(10 * time.Millisecond) @@ -51,6 +53,7 @@ func TestHttp_Do(t *testing.T) { { resp, err := client.Get("http://127.0.0.1:" + strconv.Itoa(port) + "/api/something") require.NoError(t, err) + defer resp.Body.Close() assert.Equal(t, http.StatusOK, resp.StatusCode) t.Logf("%+v", resp.Header) @@ -64,6 +67,7 @@ func TestHttp_Do(t *testing.T) { { resp, err := client.Get("http://localhost:" + strconv.Itoa(port) + "/api/something") require.NoError(t, err) + defer resp.Body.Close() assert.Equal(t, http.StatusOK, resp.StatusCode) t.Logf("%+v", resp.Header) @@ -77,6 +81,7 @@ func TestHttp_Do(t *testing.T) { { resp, err := client.Get("http://127.0.0.1:" + strconv.Itoa(port) + "/bad/something") require.NoError(t, err) + defer resp.Body.Close() assert.Equal(t, http.StatusBadGateway, resp.StatusCode) } diff --git a/app/proxy/ssl_test.go b/app/proxy/ssl_test.go index 571a1f9..b311a9b 100644 --- a/app/proxy/ssl_test.go +++ b/app/proxy/ssl_test.go @@ -28,7 +28,7 @@ func TestSSL_Redirect(t *testing.T) { // allow self-signed certificate Transport: &http.Transport{ - TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, + TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, //nolint }, }