mirror of
https://github.com/coredns/coredns.git
synced 2026-05-26 03:40:23 -04:00
lint(errorlint): handle wrapped errors
Enable errorlint and preserve wrapped error chains so runtime checks and tests classify failures correctly. This also makes Route53 surface insert failures instead of silently dropping them. Signed-off-by: Ville Vesilehto <ville@vesilehto.fi>
This commit is contained in:
@@ -2,6 +2,7 @@ package kubernetes
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/coredns/coredns/plugin/pkg/dnstest"
|
||||
@@ -60,7 +61,7 @@ func TestPreserveCase(t *testing.T) {
|
||||
w := dnstest.NewRecorder(&test.ResponseWriter{})
|
||||
|
||||
_, err := k.ServeDNS(ctx, w, r)
|
||||
if err != tc.Error {
|
||||
if !errors.Is(err, tc.Error) {
|
||||
t.Errorf("Test %d expected no error, got %v", i, err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package kubernetes
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/coredns/coredns/plugin/pkg/dnstest"
|
||||
@@ -42,7 +43,7 @@ func TestServeDNSEmptyService(t *testing.T) {
|
||||
w := dnstest.NewRecorder(&test.ResponseWriter{})
|
||||
|
||||
_, err := k.ServeDNS(ctx, w, r)
|
||||
if err != tc.Error {
|
||||
if !errors.Is(err, tc.Error) {
|
||||
t.Errorf("Test %d expected no error, got %v", i, err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package kubernetes
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/coredns/coredns/plugin/pkg/dnstest"
|
||||
@@ -40,7 +41,7 @@ func TestServeDNSModeDisabled(t *testing.T) {
|
||||
w := dnstest.NewRecorder(&test.ResponseWriter{})
|
||||
|
||||
_, err := k.ServeDNS(ctx, w, r)
|
||||
if err != tc.Error {
|
||||
if !errors.Is(err, tc.Error) {
|
||||
t.Errorf("Test %d got unexpected error %v", i, err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package kubernetes
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/coredns/coredns/plugin/pkg/dnstest"
|
||||
@@ -75,7 +76,7 @@ func TestServeDNSModeInsecure(t *testing.T) {
|
||||
w := dnstest.NewRecorder(&test.ResponseWriter{})
|
||||
|
||||
_, err := k.ServeDNS(ctx, w, r)
|
||||
if err != tc.Error {
|
||||
if !errors.Is(err, tc.Error) {
|
||||
t.Errorf("Test %d expected no error, got %v", i, err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package kubernetes
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/coredns/coredns/plugin/pkg/dnstest"
|
||||
@@ -61,7 +62,7 @@ func TestServeDNSModeVerified(t *testing.T) {
|
||||
w := dnstest.NewRecorder(&test.ResponseWriter{})
|
||||
|
||||
_, err := k.ServeDNS(ctx, w, r)
|
||||
if err != tc.Error {
|
||||
if !errors.Is(err, tc.Error) {
|
||||
t.Errorf("Test %d expected no error, got %v", i, err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package kubernetes
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
@@ -436,7 +437,7 @@ func TestServeDNS(t *testing.T) {
|
||||
w := dnstest.NewRecorder(&test.ResponseWriter{})
|
||||
|
||||
_, err := k.ServeDNS(ctx, w, r)
|
||||
if err != tc.Error {
|
||||
if !errors.Is(err, tc.Error) {
|
||||
t.Errorf("Test %d expected no error, got %v", i, err)
|
||||
return
|
||||
}
|
||||
@@ -568,7 +569,7 @@ func TestMultiClusterServeDNS(t *testing.T) {
|
||||
w := dnstest.NewRecorder(&test.ResponseWriter{})
|
||||
|
||||
_, err := k.ServeDNS(ctx, w, r)
|
||||
if err != tc.Error {
|
||||
if !errors.Is(err, tc.Error) {
|
||||
t.Errorf("Test %d expected no error, got %v", i, err)
|
||||
return
|
||||
}
|
||||
@@ -629,7 +630,7 @@ func TestServeNamespaceDNS(t *testing.T) {
|
||||
w := dnstest.NewRecorder(&test.ResponseWriter{})
|
||||
|
||||
_, err := k.ServeDNS(ctx, w, r)
|
||||
if err != tc.Error {
|
||||
if !errors.Is(err, tc.Error) {
|
||||
t.Errorf("Test %d expected no error, got %v", i, err)
|
||||
return
|
||||
}
|
||||
@@ -675,7 +676,7 @@ func TestNotSyncedServeDNS(t *testing.T) {
|
||||
w := dnstest.NewRecorder(&test.ResponseWriter{})
|
||||
|
||||
_, err := k.ServeDNS(ctx, w, r)
|
||||
if err != tc.Error {
|
||||
if !errors.Is(err, tc.Error) {
|
||||
t.Errorf("Test %d expected no error, got %v", i, err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -181,7 +181,7 @@ func (k *Kubernetes) Lookup(ctx context.Context, state request.Request, name str
|
||||
|
||||
// IsNameError implements the ServiceBackend interface.
|
||||
func (k *Kubernetes) IsNameError(err error) bool {
|
||||
return err == errNoItems || err == errNsNotExposed || err == errInvalidRequest
|
||||
return errors.Is(err, errNoItems) || errors.Is(err, errNsNotExposed) || errors.Is(err, errInvalidRequest)
|
||||
}
|
||||
|
||||
func (k *Kubernetes) getClientConfig() (*rest.Config, error) {
|
||||
@@ -240,14 +240,14 @@ func (k *Kubernetes) InitKubeCache(ctx context.Context) (onStart func() error, o
|
||||
|
||||
kubeClient, err := kubernetes.NewForConfig(config)
|
||||
if err != nil {
|
||||
return nil, nil, fmt.Errorf("failed to create kubernetes notification controller: %q", err)
|
||||
return nil, nil, fmt.Errorf("failed to create kubernetes notification controller: %w", err)
|
||||
}
|
||||
|
||||
var mcsClient mcsClientset.MulticlusterV1alpha1Interface
|
||||
if len(k.opts.multiclusterZones) > 0 {
|
||||
mcsClient, err = mcsClientset.NewForConfig(config)
|
||||
if err != nil {
|
||||
return nil, nil, fmt.Errorf("failed to create kubernetes multicluster notification controller: %q", err)
|
||||
return nil, nil, fmt.Errorf("failed to create kubernetes multicluster notification controller: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -255,7 +255,7 @@ func (k *Kubernetes) InitKubeCache(ctx context.Context) (onStart func() error, o
|
||||
var selector labels.Selector
|
||||
selector, err = meta.LabelSelectorAsSelector(k.opts.labelSelector)
|
||||
if err != nil {
|
||||
return nil, nil, fmt.Errorf("unable to create Selector for LabelSelector '%s': %q", k.opts.labelSelector, err)
|
||||
return nil, nil, fmt.Errorf("unable to create Selector for LabelSelector %q: %w", k.opts.labelSelector, err)
|
||||
}
|
||||
k.opts.selector = selector
|
||||
}
|
||||
@@ -264,7 +264,7 @@ func (k *Kubernetes) InitKubeCache(ctx context.Context) (onStart func() error, o
|
||||
var selector labels.Selector
|
||||
selector, err = meta.LabelSelectorAsSelector(k.opts.namespaceLabelSelector)
|
||||
if err != nil {
|
||||
return nil, nil, fmt.Errorf("unable to create Selector for LabelSelector '%s': %q", k.opts.namespaceLabelSelector, err)
|
||||
return nil, nil, fmt.Errorf("unable to create Selector for LabelSelector %q: %w", k.opts.namespaceLabelSelector, err)
|
||||
}
|
||||
k.opts.namespaceSelector = selector
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package kubernetes
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"net"
|
||||
"testing"
|
||||
|
||||
@@ -72,7 +73,7 @@ func TestServeDNSApex(t *testing.T) {
|
||||
w := dnstest.NewRecorder(&test.ResponseWriter{})
|
||||
|
||||
_, err := k.ServeDNS(ctx, w, r)
|
||||
if err != tc.Error {
|
||||
if !errors.Is(err, tc.Error) {
|
||||
t.Errorf("Test %d, expected no error, got %v", i, err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package object
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
meta "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
@@ -39,7 +40,7 @@ func DefaultProcessor(convert ToFunc, recordLatency *EndpointLatencyRecorder) Pr
|
||||
case cache.Sync, cache.Added, cache.Updated:
|
||||
obj, err := convert(d.Object.(meta.Object))
|
||||
if err != nil {
|
||||
if err == errPodTerminating {
|
||||
if errors.Is(err, errPodTerminating) {
|
||||
continue
|
||||
}
|
||||
return err
|
||||
@@ -68,7 +69,7 @@ func DefaultProcessor(convert ToFunc, recordLatency *EndpointLatencyRecorder) Pr
|
||||
return fmt.Errorf("unexpected object %v", d.Object)
|
||||
}
|
||||
obj, err = convert(metaObj)
|
||||
if err != nil && err != errPodTerminating {
|
||||
if err != nil && !errors.Is(err, errPodTerminating) {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package kubernetes
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/coredns/coredns/plugin/kubernetes/object"
|
||||
@@ -243,7 +244,7 @@ func TestReverse(t *testing.T) {
|
||||
w := dnstest.NewRecorder(&test.ResponseWriter{})
|
||||
|
||||
_, err := k.ServeDNS(ctx, w, r)
|
||||
if err != tc.Error {
|
||||
if !errors.Is(err, tc.Error) {
|
||||
t.Errorf("Test %d: expected no error, got %v", i, err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -169,7 +169,7 @@ func ParseStanza(c *caddy.Controller) (*Kubernetes, error) {
|
||||
labelSelectorString := strings.Join(args, " ")
|
||||
ls, err := meta.ParseToLabelSelector(labelSelectorString)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("unable to parse label selector value: '%v': %v", labelSelectorString, err)
|
||||
return nil, fmt.Errorf("unable to parse label selector value %q: %w", labelSelectorString, err)
|
||||
}
|
||||
k8s.opts.labelSelector = ls
|
||||
continue
|
||||
@@ -181,7 +181,7 @@ func ParseStanza(c *caddy.Controller) (*Kubernetes, error) {
|
||||
namespaceLabelSelectorString := strings.Join(args, " ")
|
||||
nls, err := meta.ParseToLabelSelector(namespaceLabelSelectorString)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("unable to parse namespace_label selector value: '%v': %v", namespaceLabelSelectorString, err)
|
||||
return nil, fmt.Errorf("unable to parse namespace_label selector value %q: %w", namespaceLabelSelectorString, err)
|
||||
}
|
||||
k8s.opts.namespaceLabelSelector = nls
|
||||
continue
|
||||
@@ -241,7 +241,7 @@ func ParseStanza(c *caddy.Controller) (*Kubernetes, error) {
|
||||
var err error
|
||||
k8s.startupTimeout, err = time.ParseDuration(args[0])
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to parse startup_timeout: %v, %s", args[0], err)
|
||||
return nil, fmt.Errorf("failed to parse startup_timeout %q: %w", args[0], err)
|
||||
}
|
||||
case "apiserver_qps":
|
||||
args := c.RemainingArgs()
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package kubernetes
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"net"
|
||||
"strings"
|
||||
"testing"
|
||||
@@ -20,7 +21,7 @@ func TestKubernetesTransferNonAuthZone(t *testing.T) {
|
||||
dnsmsg.SetAxfr("example.com")
|
||||
|
||||
_, err := k.Transfer("example.com", 0)
|
||||
if err != transfer.ErrNotAuthoritative {
|
||||
if !errors.Is(err, transfer.ErrNotAuthoritative) {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user