From efbe51d986501f52403bd4c8e1f77b4bfb049f27 Mon Sep 17 00:00:00 2001 From: Simon Pasquier Date: Mon, 15 Mar 2021 00:21:14 +0100 Subject: [PATCH] *: fix errcheck errors Signed-off-by: Simon Pasquier --- .golangci.yml | 15 ++++++++++----- cmd/operator/main.go | 3 ++- example/alertmanger-webhook/main.go | 2 +- pkg/alertmanager/operator.go | 5 ++++- pkg/prometheus/operator.go | 15 ++++++++++++--- scripts/errcheck_excludes.txt | 5 +++++ test/instrumented-sample-app/main.go | 2 +- 7 files changed, 35 insertions(+), 12 deletions(-) create mode 100644 scripts/errcheck_excludes.txt diff --git a/.golangci.yml b/.golangci.yml index b576ef2dcde..7049a371264 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -2,10 +2,15 @@ run: deadline: 10m linters: - disable-all: true enable: - golint - - gosimple - - govet - - staticcheck - - unused + +issues: + exclude-rules: + - path: _test.go + linters: + - errcheck + +linters-settings: + errcheck: + exclude: scripts/errcheck_excludes.txt diff --git a/cmd/operator/main.go b/cmd/operator/main.go index 8b3a2e55f9b..63901835c08 100644 --- a/cmd/operator/main.go +++ b/cmd/operator/main.go @@ -206,7 +206,8 @@ func init() { func Main() int { versionutil.RegisterFlags() - flagset.Parse(os.Args[1:]) + // No need to check for errors because Parse would exit on error. + _ = flagset.Parse(os.Args[1:]) if versionutil.ShouldPrintVersion() { versionutil.Print(os.Stdout, "prometheus-operator") diff --git a/example/alertmanger-webhook/main.go b/example/alertmanger-webhook/main.go index cf54c11d23e..ecde07ae574 100644 --- a/example/alertmanger-webhook/main.go +++ b/example/alertmanger-webhook/main.go @@ -20,7 +20,7 @@ import ( ) func main() { - http.ListenAndServe(":5001", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + _ = http.ListenAndServe(":5001", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Println("Alertmanager Notification Payload Received") })) } diff --git a/pkg/alertmanager/operator.go b/pkg/alertmanager/operator.go index 3bf935bacb2..fb34a19d248 100644 --- a/pkg/alertmanager/operator.go +++ b/pkg/alertmanager/operator.go @@ -887,12 +887,15 @@ func (c *Operator) selectAlertmanagerConfigs(ctx context.Context, am *monitoring } for _, ns := range namespaces { - c.alrtCfgInfs.ListAllByNamespace(ns, amConfigSelector, func(obj interface{}) { + err := c.alrtCfgInfs.ListAllByNamespace(ns, amConfigSelector, func(obj interface{}) { k, ok := c.keyFunc(obj) if ok { amConfigs[k] = obj.(*monitoringv1alpha1.AlertmanagerConfig) } }) + if err != nil { + return nil, errors.Wrapf(err, "failed to list alertmanager configs in namespace %s", ns) + } } var rejected int diff --git a/pkg/prometheus/operator.go b/pkg/prometheus/operator.go index 85515fc2d06..4f3801604fc 100644 --- a/pkg/prometheus/operator.go +++ b/pkg/prometheus/operator.go @@ -1633,12 +1633,15 @@ func (c *Operator) selectServiceMonitors(ctx context.Context, p *monitoringv1.Pr level.Debug(c.logger).Log("msg", "filtering namespaces to select ServiceMonitors from", "namespaces", strings.Join(namespaces, ","), "namespace", p.Namespace, "prometheus", p.Name) for _, ns := range namespaces { - c.smonInfs.ListAllByNamespace(ns, servMonSelector, func(obj interface{}) { + err := c.smonInfs.ListAllByNamespace(ns, servMonSelector, func(obj interface{}) { k, ok := c.keyFunc(obj) if ok { serviceMonitors[k] = obj.(*monitoringv1.ServiceMonitor) } }) + if err != nil { + return nil, errors.Wrapf(err, "failed to list service monitors in namespace %s", ns) + } } var rejected int @@ -1729,12 +1732,15 @@ func (c *Operator) selectPodMonitors(ctx context.Context, p *monitoringv1.Promet level.Debug(c.logger).Log("msg", "filtering namespaces to select PodMonitors from", "namespaces", strings.Join(namespaces, ","), "namespace", p.Namespace, "prometheus", p.Name) for _, ns := range namespaces { - c.pmonInfs.ListAllByNamespace(ns, podMonSelector, func(obj interface{}) { + err := c.pmonInfs.ListAllByNamespace(ns, podMonSelector, func(obj interface{}) { k, ok := c.keyFunc(obj) if ok { podMonitors[k] = obj.(*monitoringv1.PodMonitor) } }) + if err != nil { + return nil, errors.Wrapf(err, "failed to list pod monitors in namespace %s", ns) + } } var rejected int @@ -1817,11 +1823,14 @@ func (c *Operator) selectProbes(ctx context.Context, p *monitoringv1.Prometheus, level.Debug(c.logger).Log("msg", "filtering namespaces to select Probes from", "namespaces", strings.Join(namespaces, ","), "namespace", p.Namespace, "prometheus", p.Name) for _, ns := range namespaces { - c.probeInfs.ListAllByNamespace(ns, bMonSelector, func(obj interface{}) { + err := c.probeInfs.ListAllByNamespace(ns, bMonSelector, func(obj interface{}) { if k, ok := c.keyFunc(obj); ok { probes[k] = obj.(*monitoringv1.Probe) } }) + if err != nil { + return nil, errors.Wrapf(err, "failed to list probes in namespace %s", ns) + } } var rejected int diff --git a/scripts/errcheck_excludes.txt b/scripts/errcheck_excludes.txt new file mode 100644 index 00000000000..45a04fc06a0 --- /dev/null +++ b/scripts/errcheck_excludes.txt @@ -0,0 +1,5 @@ +// Any error in HTTP handlers is handled by the server itself. +(net/http.ResponseWriter).Write + +// Never check for logger errors. +(github.com/go-kit/kit/log.Logger).Log diff --git a/test/instrumented-sample-app/main.go b/test/instrumented-sample-app/main.go index a3141a17f59..488b1bba8f4 100644 --- a/test/instrumented-sample-app/main.go +++ b/test/instrumented-sample-app/main.go @@ -71,7 +71,7 @@ func main() { fmt.Printf("listening for metric requests on '%v' protected via basic auth or bearer token\n", address) - http.ListenAndServe(address, nil) + _ = http.ListenAndServe(address, nil) } func handler(w http.ResponseWriter, r *http.Request) {