Skip to content

Commit 50ba63d

Browse files
committed
refactor: use std errors following errorlint rules
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
1 parent 3e72cb6 commit 50ba63d

117 files changed

Lines changed: 667 additions & 1309 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.golangci.yml

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ run:
77
linters:
88
default: none
99
enable:
10+
- errorlint
1011
- ginkgolinter
1112
- govet
1213
- ineffassign
@@ -19,6 +20,14 @@ linters:
1920
govet:
2021
enable:
2122
- nilness
23+
revive:
24+
enable-all-rules: false
25+
enable-default-rules: true
26+
max-open-files: 2048
27+
rules:
28+
- name: errorf
29+
- name: unnecessary-format
30+
- name: use-errors-new
2231
exclusions:
2332
generated: lax
2433
presets:
@@ -30,32 +39,20 @@ linters:
3039
- linters:
3140
- revive
3241
text: stutters
33-
- linters:
34-
- revive
35-
text: empty-block
36-
- linters:
37-
- revive
38-
text: superfluous-else
39-
- linters:
40-
- revive
41-
text: unused-parameter
4242
- linters:
4343
- revive
4444
text: redefines-builtin-id
45-
- linters:
46-
- revive
47-
text: if-return
4845
paths:
4946
- .*\.pb\.go$
47+
warn-unused: true
5048

5149
formatters:
5250
enable:
5351
- gofmt
5452
- goimports
5553
exclusions:
5654
generated: lax
57-
paths:
58-
- .*\.pb\.go$
55+
warn-unused: true
5956

6057
issues:
6158
max-issues-per-linter: 0

agent/agent.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package agent
33
import (
44
"bytes"
55
"context"
6+
"errors"
7+
"fmt"
68
"math/rand"
79
"sync"
810
"time"
@@ -11,7 +13,6 @@ import (
1113
"github.com/moby/swarmkit/v2/agent/exec"
1214
"github.com/moby/swarmkit/v2/api"
1315
"github.com/moby/swarmkit/v2/log"
14-
"github.com/pkg/errors"
1516
)
1617

1718
const (
@@ -464,7 +465,7 @@ func (a *Agent) handleSessionMessage(ctx context.Context, message *api.SessionMe
464465
if !same {
465466
a.keys = message.NetworkBootstrapKeys
466467
if err := a.config.Executor.SetNetworkBootstrapKeys(a.keys); err != nil {
467-
return errors.Wrap(err, "configuring network key failed")
468+
return fmt.Errorf("configuring network key failed: %w", err)
468469
}
469470
}
470471
}
@@ -514,7 +515,7 @@ func (a *Agent) UpdateTaskStatus(ctx context.Context, taskID string, status *api
514515
go func() {
515516
err := session.sendTaskStatus(ctx, taskID, status)
516517
if err != nil {
517-
if err == errTaskUnknown {
518+
if errors.Is(err, errTaskUnknown) {
518519
err = nil // dispatcher no longer cares about this task.
519520
} else {
520521
log.G(ctx).WithError(err).Error("closing session after fatal error")

agent/agent_test.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,7 @@ func TestAgentStartStop(t *testing.T) {
9696
assert.Equal(t, errAgentNotStarted, agent.Stop(ctx))
9797
assert.NoError(t, agent.Start(ctx))
9898

99-
if err := agent.Start(ctx); err != errAgentStarted {
100-
t.Fatalf("expected agent started error: %v", err)
101-
}
99+
require.ErrorIs(t, agent.Start(ctx), errAgentStarted, "expected agent started")
102100

103101
assert.NoError(t, agent.Stop(ctx))
104102
}

agent/config.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package agent
22

33
import (
4+
"errors"
5+
46
"github.com/docker/go-events"
57
"github.com/moby/swarmkit/v2/agent/exec"
68
"github.com/moby/swarmkit/v2/api"
79
"github.com/moby/swarmkit/v2/connectionbroker"
8-
"github.com/pkg/errors"
910
bolt "go.etcd.io/bbolt"
1011
"google.golang.org/grpc/credentials"
1112
)

agent/csi/plugin/manager.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package plugin
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67
"sync"
78

@@ -57,7 +58,7 @@ func (pm *pluginManager) Get(name string) (NodePlugin, error) {
5758

5859
plugin, err := pm.getPlugin(name)
5960
if err != nil {
60-
return nil, fmt.Errorf("cannot get plugin %v: %v", name, err)
61+
return nil, fmt.Errorf("cannot get plugin %v: %w", name, err)
6162
}
6263

6364
return plugin, nil
@@ -110,7 +111,7 @@ func (pm *pluginManager) getPlugin(name string) (NodePlugin, error) {
110111

111112
pa, ok := pc.(plugin.AddrPlugin)
112113
if !ok {
113-
return nil, fmt.Errorf("plugin does not implement PluginAddr interface")
114+
return nil, errors.New("plugin does not implement PluginAddr interface")
114115
}
115116

116117
p := pm.newNodePluginFunc(name, pa, pm.secrets)

agent/csi/volumes.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package csi
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67
"sync"
78
"time"
@@ -131,7 +132,7 @@ func (r *volumes) Get(volumeID string) (string, error) {
131132
if vs, ok := r.volumes[volumeID]; ok {
132133
if vs.remove {
133134
// TODO(dperny): use a structured error
134-
return "", fmt.Errorf("volume being removed")
135+
return "", errors.New("volume being removed")
135136
}
136137

137138
if p, err := r.plugins.Get(vs.volume.Driver.Name); err == nil {

agent/exec/controller.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ package exec
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67
"time"
78

89
"github.com/moby/swarmkit/v2/api"
910
"github.com/moby/swarmkit/v2/api/equality"
1011
"github.com/moby/swarmkit/v2/log"
1112
"github.com/moby/swarmkit/v2/protobuf/ptypes"
12-
"github.com/pkg/errors"
1313
)
1414

1515
// Controller controls execution of a task.
@@ -197,7 +197,7 @@ func Do(ctx context.Context, task *api.Task, ctlr Controller) (*api.TaskStatus,
197197
exitCode = ec.ExitCode()
198198
}
199199

200-
if cause := errors.Cause(err); cause == context.DeadlineExceeded || cause == context.Canceled {
200+
if errors.Is(err, context.DeadlineExceeded) || errors.Is(err, context.Canceled) {
201201
return retry()
202202
}
203203

@@ -308,13 +308,13 @@ func Do(ctx context.Context, task *api.Task, ctlr Controller) (*api.TaskStatus,
308308
// the following states may proceed past desired state.
309309
switch status.State {
310310
case api.TaskStatePreparing:
311-
if err := ctlr.Prepare(ctx); err != nil && err != ErrTaskPrepared {
311+
if err := ctlr.Prepare(ctx); err != nil && !errors.Is(err, ErrTaskPrepared) {
312312
return fatal(err)
313313
}
314314

315315
return transition(api.TaskStateReady, "prepared")
316316
case api.TaskStateStarting:
317-
if err := ctlr.Start(ctx); err != nil && err != ErrTaskStarted {
317+
if err := ctlr.Start(ctx); err != nil && !errors.Is(err, ErrTaskStarted) {
318318
return fatal(err)
319319
}
320320

@@ -355,6 +355,5 @@ func logStateChange(ctx context.Context, desired, previous, next api.TaskState)
355355
}
356356

357357
func contextDoneError(err error) bool {
358-
cause := errors.Cause(err)
359-
return cause == context.Canceled || cause == context.DeadlineExceeded
358+
return errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded)
360359
}

agent/exec/errors.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package exec
22

3-
import "github.com/pkg/errors"
3+
import "errors"
44

55
var (
66
// ErrRuntimeUnsupported encountered when a task requires a runtime
@@ -33,7 +33,7 @@ var (
3333
// ErrDependencyNotReady is returned if a given dependency can be accessed
3434
// through the Getter, but is not yet ready to be used. This is most
3535
// relevant for Volumes, which must be staged and published on the node.
36-
ErrDependencyNotReady error = errors.New("dependency not ready")
36+
ErrDependencyNotReady = errors.New("dependency not ready")
3737
)
3838

3939
// ExitCoder is implemented by errors that have an exit code.

agent/exec/errors_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,15 @@ package exec
33
import (
44
"fmt"
55
"testing"
6-
7-
"github.com/pkg/errors"
86
)
97

108
func TestIsTemporary(t *testing.T) {
119
err := fmt.Errorf("err")
1210
err1 := MakeTemporary(fmt.Errorf("err1: %w", err))
1311
err2 := fmt.Errorf("err2: %w", err1)
14-
err3 := errors.Wrap(err2, "err3")
12+
err3 := fmt.Errorf("err3: %w", err2)
1513
err4 := fmt.Errorf("err4: %w", err3)
16-
err5 := errors.Wrap(err4, "err5")
14+
err5 := fmt.Errorf("err5: %w", err4)
1715

1816
if IsTemporary(nil) {
1917
t.Error("expected error to not be a temporary error")

agent/task.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package agent
22

33
import (
44
"context"
5+
"errors"
56
"sync"
67
"time"
78

@@ -160,20 +161,20 @@ func (tm *taskManager) run(ctx context.Context) {
160161
default:
161162
}
162163

163-
switch err {
164-
case exec.ErrTaskNoop:
164+
switch {
165+
case errors.Is(err, exec.ErrTaskNoop):
165166
if !updated {
166167
continue // wait till getting pumped via update.
167168
}
168-
case exec.ErrTaskRetry:
169+
case errors.Is(err, exec.ErrTaskRetry):
169170
// TODO(stevvooe): Add exponential backoff with random jitter
170171
// here. For now, this backoff is enough to keep the task
171172
// manager from running away with the CPU.
172173
time.AfterFunc(time.Second, func() {
173174
errs <- nil // repump this branch, with no err
174175
})
175176
continue
176-
case nil, context.Canceled, context.DeadlineExceeded:
177+
case err == nil, errors.Is(err, context.Canceled), errors.Is(err, context.DeadlineExceeded):
177178
// no log in this case
178179
default:
179180
log.G(ctx).WithError(err).Error("task operation failed")

0 commit comments

Comments
 (0)