Skip to content

Commit e37efd4

Browse files
authored
Merge pull request moby#50068 from mmorel-35/github.com/containerd/errdefs
refactor: replace uses of errdefs package
2 parents 1d6b471 + 637e814 commit e37efd4

File tree

86 files changed

+354
-342
lines changed

Some content is hidden

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

86 files changed

+354
-342
lines changed

.golangci.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -251,11 +251,6 @@ linters:
251251
linters:
252252
- forbidigo
253253

254-
# FIXME(dmcgowan): ignoring while transitioning to containerd/errdefs
255-
- text: "SA1019: errdefs\\.(.*) is deprecated"
256-
linters:
257-
- staticcheck
258-
259254
# Log a warning if an exclusion rule is unused.
260255
# Default: false
261256
warn-unused: true

api/server/httputils/form_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"strconv"
88
"testing"
99

10-
"github.com/docker/docker/errdefs"
10+
cerrdefs "github.com/containerd/errdefs"
1111
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
1212
"gotest.tools/v3/assert"
1313
is "gotest.tools/v3/assert/cmp"
@@ -225,7 +225,7 @@ func TestDecodePlatform(t *testing.T) {
225225
p, err := DecodePlatform(tc.platformJSON)
226226
assert.Check(t, is.DeepEqual(p, tc.expected))
227227
if tc.expectedErr != "" {
228-
assert.Check(t, errdefs.IsInvalidParameter(err))
228+
assert.Check(t, cerrdefs.IsInvalidArgument(err))
229229
assert.Check(t, is.Error(err, tc.expectedErr))
230230
} else {
231231
assert.Check(t, err)

api/server/router/volume/volume_routes.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"net/http"
77
"strconv"
88

9+
cerrdefs "github.com/containerd/errdefs"
910
"github.com/containerd/log"
1011
"github.com/docker/docker/api/server/httputils"
1112
"github.com/docker/docker/api/types/filters"
@@ -69,7 +70,7 @@ func (v *volumeRouter) getVolumeByName(ctx context.Context, w http.ResponseWrite
6970
// if the volume is not found in the regular volume backend, and the client
7071
// is using an API version greater than 1.42 (when cluster volumes were
7172
// introduced), then check if Swarm has the volume.
72-
if errdefs.IsNotFound(err) && versions.GreaterThanOrEqualTo(version, clusterVolumesVersion) && v.cluster.IsManager() {
73+
if cerrdefs.IsNotFound(err) && versions.GreaterThanOrEqualTo(version, clusterVolumesVersion) && v.cluster.IsManager() {
7374
swarmVol, err := v.cluster.GetVolume(vars["name"])
7475
// if swarm returns an error and that error indicates that swarm is not
7576
// initialized, return original NotFound error. Otherwise, we'd return
@@ -164,15 +165,15 @@ func (v *volumeRouter) deleteVolumes(ctx context.Context, w http.ResponseWriter,
164165
// errors at this stage. Note that no "not found" error is produced if
165166
// "force" is enabled.
166167
err := v.backend.Remove(ctx, vars["name"], opts.WithPurgeOnError(force))
167-
if err != nil && !errdefs.IsNotFound(err) {
168+
if err != nil && !cerrdefs.IsNotFound(err) {
168169
return err
169170
}
170171

171172
// If no volume was found, the volume may be a cluster volume. If force
172173
// is enabled, the volume backend won't return an error for non-existing
173174
// volumes, so we don't know if removal succeeded (or not volume existed).
174175
// In that case we always try to delete cluster volumes as well.
175-
if errdefs.IsNotFound(err) || force {
176+
if cerrdefs.IsNotFound(err) || force {
176177
version := httputils.VersionFromContext(ctx)
177178
if versions.GreaterThanOrEqualTo(version, clusterVolumesVersion) && v.cluster.IsManager() {
178179
err = v.cluster.RemoveVolume(vars["name"], force)

api/server/router/volume/volume_routes_test.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111

1212
"gotest.tools/v3/assert"
1313

14+
cerrdefs "github.com/containerd/errdefs"
1415
"github.com/docker/docker/api/server/httputils"
1516
"github.com/docker/docker/api/types/filters"
1617
"github.com/docker/docker/api/types/volume"
@@ -47,7 +48,7 @@ func TestGetVolumeByNameNotFoundNoSwarm(t *testing.T) {
4748
_, err := callGetVolume(v, "notReal")
4849

4950
assert.Assert(t, err != nil)
50-
assert.Assert(t, errdefs.IsNotFound(err))
51+
assert.Assert(t, cerrdefs.IsNotFound(err))
5152
}
5253

5354
func TestGetVolumeByNameNotFoundNotManager(t *testing.T) {
@@ -59,7 +60,7 @@ func TestGetVolumeByNameNotFoundNotManager(t *testing.T) {
5960
_, err := callGetVolume(v, "notReal")
6061

6162
assert.Assert(t, err != nil)
62-
assert.Assert(t, errdefs.IsNotFound(err))
63+
assert.Assert(t, cerrdefs.IsNotFound(err))
6364
}
6465

6566
func TestGetVolumeByNameNotFound(t *testing.T) {
@@ -71,7 +72,7 @@ func TestGetVolumeByNameNotFound(t *testing.T) {
7172
_, err := callGetVolume(v, "notReal")
7273

7374
assert.Assert(t, err != nil)
74-
assert.Assert(t, errdefs.IsNotFound(err))
75+
assert.Assert(t, cerrdefs.IsNotFound(err))
7576
}
7677

7778
func TestGetVolumeByNameFoundRegular(t *testing.T) {
@@ -238,7 +239,7 @@ func TestCreateSwarmVolumeNoSwarm(t *testing.T) {
238239
resp := httptest.NewRecorder()
239240
err = v.postVolumesCreate(ctx, resp, req, nil)
240241
assert.Assert(t, err != nil)
241-
assert.Assert(t, errdefs.IsUnavailable(err))
242+
assert.Assert(t, cerrdefs.IsUnavailable(err))
242243
}
243244

244245
func TestCreateSwarmVolumeNotManager(t *testing.T) {
@@ -267,7 +268,7 @@ func TestCreateSwarmVolumeNotManager(t *testing.T) {
267268
resp := httptest.NewRecorder()
268269
err = v.postVolumesCreate(ctx, resp, req, nil)
269270
assert.Assert(t, err != nil)
270-
assert.Assert(t, errdefs.IsUnavailable(err))
271+
assert.Assert(t, cerrdefs.IsUnavailable(err))
271272
}
272273

273274
func TestCreateVolumeCluster(t *testing.T) {
@@ -376,7 +377,7 @@ func TestUpdateVolumeNoSwarm(t *testing.T) {
376377

377378
err = v.putVolumesUpdate(ctx, resp, req, map[string]string{"name": "vol1"})
378379
assert.Assert(t, err != nil)
379-
assert.Assert(t, errdefs.IsUnavailable(err))
380+
assert.Assert(t, cerrdefs.IsUnavailable(err))
380381
}
381382

382383
func TestUpdateVolumeNotFound(t *testing.T) {
@@ -408,7 +409,7 @@ func TestUpdateVolumeNotFound(t *testing.T) {
408409

409410
err = v.putVolumesUpdate(ctx, resp, req, map[string]string{"name": "vol1"})
410411
assert.Assert(t, err != nil)
411-
assert.Assert(t, errdefs.IsNotFound(err))
412+
assert.Assert(t, cerrdefs.IsNotFound(err))
412413
}
413414

414415
func TestVolumeRemove(t *testing.T) {
@@ -476,7 +477,7 @@ func TestVolumeRemoveNotFoundNoSwarm(t *testing.T) {
476477

477478
err := v.deleteVolumes(ctx, resp, req, map[string]string{"name": "vol1"})
478479
assert.Assert(t, err != nil)
479-
assert.Assert(t, errdefs.IsNotFound(err), err.Error())
480+
assert.Assert(t, cerrdefs.IsNotFound(err), err.Error())
480481
}
481482

482483
func TestVolumeRemoveNotFoundNoManager(t *testing.T) {
@@ -493,7 +494,7 @@ func TestVolumeRemoveNotFoundNoManager(t *testing.T) {
493494

494495
err := v.deleteVolumes(ctx, resp, req, map[string]string{"name": "vol1"})
495496
assert.Assert(t, err != nil)
496-
assert.Assert(t, errdefs.IsNotFound(err))
497+
assert.Assert(t, cerrdefs.IsNotFound(err))
497498
}
498499

499500
func TestVolumeRemoveFoundNoSwarm(t *testing.T) {
@@ -540,7 +541,7 @@ func TestVolumeRemoveNoSwarmInUse(t *testing.T) {
540541

541542
err := v.deleteVolumes(ctx, resp, req, map[string]string{"name": "inuse"})
542543
assert.Assert(t, err != nil)
543-
assert.Assert(t, errdefs.IsConflict(err))
544+
assert.Assert(t, cerrdefs.IsConflict(err))
544545
}
545546

546547
func TestVolumeRemoveSwarmForce(t *testing.T) {
@@ -569,7 +570,7 @@ func TestVolumeRemoveSwarmForce(t *testing.T) {
569570
err := v.deleteVolumes(ctx, resp, req, map[string]string{"name": "vol1"})
570571

571572
assert.Assert(t, err != nil)
572-
assert.Assert(t, errdefs.IsConflict(err))
573+
assert.Assert(t, cerrdefs.IsConflict(err))
573574

574575
ctx = context.WithValue(context.Background(), httputils.APIVersionKey{}, clusterVolumesVersion)
575576
req = httptest.NewRequest(http.MethodDelete, "/volumes/vol1?force=1", nil)

api/types/container/hostconfig_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ func TestValidateRestartPolicy(t *testing.T) {
102102
}
103103
}
104104

105-
// isInvalidParameter is a minimal implementation of [github.com/docker/docker/errdefs.IsInvalidParameter],
105+
// isInvalidParameter is a minimal implementation of [github.com/containerd/errdefs.IsInvalidArgument],
106106
// because this was the only import of that package in api/types, which is the
107107
// package imported by external users.
108108
func isInvalidParameter(err error) bool {

builder/dockerfile/containerbackend.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ import (
55
"fmt"
66
"io"
77

8+
cerrdefs "github.com/containerd/errdefs"
89
"github.com/containerd/log"
910
"github.com/docker/docker/api/types/backend"
1011
"github.com/docker/docker/api/types/container"
1112
"github.com/docker/docker/builder"
12-
"github.com/docker/docker/errdefs"
1313
"github.com/docker/docker/pkg/stringid"
1414
"github.com/pkg/errors"
1515
)
@@ -126,7 +126,7 @@ func (e *statusCodeError) StatusCode() int {
126126
// RemoveAll containers managed by this container manager
127127
func (c *containerManager) RemoveAll(stdout io.Writer) {
128128
for containerID := range c.tmpContainers {
129-
if err := c.backend.ContainerRm(containerID, &backend.ContainerRmConfig{ForceRemove: true, RemoveVolume: true}); err != nil && !errdefs.IsNotFound(err) {
129+
if err := c.backend.ContainerRm(containerID, &backend.ContainerRmConfig{ForceRemove: true, RemoveVolume: true}); err != nil && !cerrdefs.IsNotFound(err) {
130130
_, _ = fmt.Fprintf(stdout, "Removing intermediate container %s: %v\n", stringid.TruncateID(containerID), err)
131131
continue
132132
}

container/container.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"time"
1515

1616
"github.com/containerd/containerd/v2/pkg/cio"
17+
cerrdefs "github.com/containerd/errdefs"
1718
"github.com/containerd/log"
1819
"github.com/containerd/platforms"
1920
containertypes "github.com/docker/docker/api/types/container"
@@ -814,7 +815,7 @@ func (container *Container) RestoreTask(ctx context.Context, client libcontainer
814815
return err
815816
}
816817
container.task, err = container.ctr.AttachTask(ctx, container.InitializeStdio)
817-
if err != nil && !errdefs.IsNotFound(err) {
818+
if err != nil && !cerrdefs.IsNotFound(err) {
818819
return err
819820
}
820821
return nil

container/view_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import (
77
"path/filepath"
88
"testing"
99

10+
cerrdefs "github.com/containerd/errdefs"
1011
"github.com/docker/docker/api/types/container"
11-
"github.com/docker/docker/errdefs"
1212
"github.com/docker/docker/pkg/stringid"
1313
"github.com/google/uuid"
1414
"gotest.tools/v3/assert"
@@ -87,7 +87,7 @@ func TestNames(t *testing.T) {
8787
assert.Check(t, db.ReserveName("name2", "containerid2"))
8888

8989
err = db.ReserveName("name2", "containerid3")
90-
assert.Check(t, is.ErrorType(err, errdefs.IsConflict))
90+
assert.Check(t, is.ErrorType(err, cerrdefs.IsConflict))
9191
assert.Check(t, is.Error(err, "name is reserved"))
9292

9393
// Releasing a name allows the name to point to something else later.
@@ -105,7 +105,7 @@ func TestNames(t *testing.T) {
105105
assert.Check(t, is.Equal("containerid3", id))
106106

107107
_, err = view.GetID("notreserved")
108-
assert.Check(t, is.ErrorType(err, errdefs.IsNotFound))
108+
assert.Check(t, is.ErrorType(err, cerrdefs.IsNotFound))
109109
assert.Check(t, is.Error(err, "name is not reserved"))
110110

111111
// Releasing and re-reserving a name doesn't affect the snapshot.
@@ -163,7 +163,7 @@ func TestTruncIndex(t *testing.T) {
163163

164164
// Get on an empty index
165165
_, err = db.GetByPrefix("foobar")
166-
assert.Check(t, is.ErrorType(err, errdefs.IsNotFound))
166+
assert.Check(t, is.ErrorType(err, cerrdefs.IsNotFound))
167167

168168
// Add an id
169169
const id = "99b36c2c326ccc11e726eee6ee78a0baf166ef96"

daemon/archive.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"io"
55
"os"
66

7+
cerrdefs "github.com/containerd/errdefs"
78
"github.com/docker/docker/api/types/container"
89
"github.com/docker/docker/errdefs"
910
)
@@ -22,7 +23,7 @@ func (daemon *Daemon) ContainerStatPath(name string, path string) (*container.Pa
2223
return nil, containerFileNotFound{path, name}
2324
}
2425
// TODO(thaJeztah): check if daemon.containerStatPath returns any errors that are not typed; if not, then return as-is
25-
if errdefs.IsInvalidParameter(err) {
26+
if cerrdefs.IsInvalidArgument(err) {
2627
return nil, err
2728
}
2829
return nil, errdefs.System(err)
@@ -45,7 +46,7 @@ func (daemon *Daemon) ContainerArchivePath(name string, path string) (content io
4546
return nil, nil, containerFileNotFound{path, name}
4647
}
4748
// TODO(thaJeztah): check if daemon.containerArchivePath returns any errors that are not typed; if not, then return as-is
48-
if errdefs.IsInvalidParameter(err) {
49+
if cerrdefs.IsInvalidArgument(err) {
4950
return nil, nil, err
5051
}
5152
return nil, nil, errdefs.System(err)
@@ -71,7 +72,7 @@ func (daemon *Daemon) ContainerExtractToDir(name, path string, copyUIDGID, noOve
7172
return containerFileNotFound{path, name}
7273
}
7374
// TODO(thaJeztah): check if daemon.containerExtractToDir returns any errors that are not typed; if not, then return as-is
74-
if errdefs.IsInvalidParameter(err) {
75+
if cerrdefs.IsInvalidArgument(err) {
7576
return err
7677
}
7778
return errdefs.System(err)

daemon/cluster/controllers/plugin/controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ import (
55
"io"
66
"net/http"
77

8+
cerrdefs "github.com/containerd/errdefs"
89
"github.com/containerd/log"
910
"github.com/distribution/reference"
1011
"github.com/docker/docker/api/types"
1112
"github.com/docker/docker/api/types/backend"
1213
"github.com/docker/docker/api/types/registry"
1314
"github.com/docker/docker/api/types/swarm/runtime"
14-
"github.com/docker/docker/errdefs"
1515
"github.com/docker/docker/plugin"
1616
v2 "github.com/docker/docker/plugin/v2"
1717
"github.com/gogo/protobuf/proto"
@@ -200,7 +200,7 @@ func (p *Controller) Wait(ctx context.Context) error {
200200
}
201201

202202
func isNotFound(err error) bool {
203-
return errdefs.IsNotFound(err)
203+
return cerrdefs.IsNotFound(err)
204204
}
205205

206206
// Shutdown is the shutdown phase from swarmkit

0 commit comments

Comments
 (0)