From c116af7b82b7f9af8bb73ff84483d2224405a959 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Wed, 12 Jun 2024 01:07:51 +0200 Subject: [PATCH] remove use of deprecated containerd/containerd/errdefs This package has moved to a separate module. Also added linting rules to prevent accidental reintroduction. Signed-off-by: Sebastiaan van Stijn --- .golangci.yml | 6 +- go.mod | 2 +- util/imagetools/create.go | 2 +- .../containerd/errdefs/errdefs_deprecated.go | 116 ------------------ vendor/modules.txt | 1 - 5 files changed, 6 insertions(+), 121 deletions(-) delete mode 100644 vendor/github.com/containerd/containerd/errdefs/errdefs_deprecated.go diff --git a/.golangci.yml b/.golangci.yml index 040f34a6..966c3ee6 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -37,8 +37,10 @@ linters-settings: rules: main: deny: - # The io/ioutil package has been deprecated. - # https://go.dev/doc/go1.16#ioutil + - pkg: "github.com/containerd/containerd/errdefs" + desc: The containerd errdefs package was migrated to a separate module. Use github.com/containerd/errdefs instead. + - pkg: "github.com/containerd/containerd/log" + desc: The containerd log package was migrated to a separate module. Use github.com/containerd/log instead. - pkg: "io/ioutil" desc: The io/ioutil package has been deprecated. forbidigo: diff --git a/go.mod b/go.mod index 07597f1e..057fcafb 100644 --- a/go.mod +++ b/go.mod @@ -10,6 +10,7 @@ require ( github.com/containerd/console v1.0.4 github.com/containerd/containerd v1.7.18 github.com/containerd/continuity v0.4.3 + github.com/containerd/errdefs v0.1.0 github.com/containerd/log v0.1.0 github.com/containerd/typeurl/v2 v2.1.1 github.com/creack/pty v1.1.21 @@ -80,7 +81,6 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/containerd/errdefs v0.1.0 // indirect github.com/containerd/ttrpc v1.2.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/docker/distribution v2.8.2+incompatible // indirect diff --git a/util/imagetools/create.go b/util/imagetools/create.go index 71853e07..08148ad2 100644 --- a/util/imagetools/create.go +++ b/util/imagetools/create.go @@ -9,10 +9,10 @@ import ( "strings" "github.com/containerd/containerd/content" - "github.com/containerd/containerd/errdefs" "github.com/containerd/containerd/images" "github.com/containerd/containerd/platforms" "github.com/containerd/containerd/remotes" + "github.com/containerd/errdefs" "github.com/distribution/reference" "github.com/docker/buildx/util/buildflags" "github.com/moby/buildkit/exporter/containerimage/exptypes" diff --git a/vendor/github.com/containerd/containerd/errdefs/errdefs_deprecated.go b/vendor/github.com/containerd/containerd/errdefs/errdefs_deprecated.go deleted file mode 100644 index c6a0d843..00000000 --- a/vendor/github.com/containerd/containerd/errdefs/errdefs_deprecated.go +++ /dev/null @@ -1,116 +0,0 @@ -/* - Copyright The containerd Authors. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -// Package errdefs defines the common errors used throughout containerd -// packages. -// -// Use with fmt.Errorf to add context to an error. -// -// To detect an error class, use the IsXXX functions to tell whether an error -// is of a certain type. -// -// The functions ToGRPC and FromGRPC can be used to map server-side and -// client-side errors to the correct types. -package errdefs - -import ( - "github.com/containerd/errdefs" -) - -// Definitions of common error types used throughout containerd. All containerd -// errors returned by most packages will map into one of these errors classes. -// Packages should return errors of these types when they want to instruct a -// client to take a particular action. -// -// For the most part, we just try to provide local grpc errors. Most conditions -// map very well to those defined by grpc. -var ( - ErrUnknown = errdefs.ErrUnknown - ErrInvalidArgument = errdefs.ErrInvalidArgument - ErrNotFound = errdefs.ErrNotFound - ErrAlreadyExists = errdefs.ErrAlreadyExists - ErrFailedPrecondition = errdefs.ErrFailedPrecondition - ErrUnavailable = errdefs.ErrUnavailable - ErrNotImplemented = errdefs.ErrNotImplemented -) - -// IsInvalidArgument returns true if the error is due to an invalid argument -func IsInvalidArgument(err error) bool { - return errdefs.IsInvalidArgument(err) -} - -// IsNotFound returns true if the error is due to a missing object -func IsNotFound(err error) bool { - return errdefs.IsNotFound(err) -} - -// IsAlreadyExists returns true if the error is due to an already existing -// metadata item -func IsAlreadyExists(err error) bool { - return errdefs.IsAlreadyExists(err) -} - -// IsFailedPrecondition returns true if an operation could not proceed to the -// lack of a particular condition -func IsFailedPrecondition(err error) bool { - return errdefs.IsFailedPrecondition(err) -} - -// IsUnavailable returns true if the error is due to a resource being unavailable -func IsUnavailable(err error) bool { - return errdefs.IsUnavailable(err) -} - -// IsNotImplemented returns true if the error is due to not being implemented -func IsNotImplemented(err error) bool { - return errdefs.IsNotImplemented(err) -} - -// IsCanceled returns true if the error is due to `context.Canceled`. -func IsCanceled(err error) bool { - return errdefs.IsCanceled(err) -} - -// IsDeadlineExceeded returns true if the error is due to -// `context.DeadlineExceeded`. -func IsDeadlineExceeded(err error) bool { - return errdefs.IsDeadlineExceeded(err) -} - -// ToGRPC will attempt to map the backend containerd error into a grpc error, -// using the original error message as a description. -// -// Further information may be extracted from certain errors depending on their -// type. -// -// If the error is unmapped, the original error will be returned to be handled -// by the regular grpc error handling stack. -func ToGRPC(err error) error { - return errdefs.ToGRPC(err) -} - -// ToGRPCf maps the error to grpc error codes, assembling the formatting string -// and combining it with the target error string. -// -// This is equivalent to errdefs.ToGRPC(fmt.Errorf("%s: %w", fmt.Sprintf(format, args...), err)) -func ToGRPCf(err error, format string, args ...interface{}) error { - return errdefs.ToGRPCf(err, format, args...) -} - -// FromGRPC returns the underlying error from a grpc service based on the grpc error code -func FromGRPC(err error) error { - return errdefs.FromGRPC(err) -} diff --git a/vendor/modules.txt b/vendor/modules.txt index 9dd1cd31..8e2d41ba 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -161,7 +161,6 @@ github.com/containerd/containerd/content github.com/containerd/containerd/content/local github.com/containerd/containerd/content/proxy github.com/containerd/containerd/defaults -github.com/containerd/containerd/errdefs github.com/containerd/containerd/filters github.com/containerd/containerd/identifiers github.com/containerd/containerd/images