From 1edb1bcf5fb76b0832cc9c7a9c0a02288fce0ca6 Mon Sep 17 00:00:00 2001 From: Kay Yan Date: Mon, 23 Sep 2024 11:15:53 +0800 Subject: [PATCH] revert "Switch to using new errdefs repo" Signed-off-by: Kay Yan --- .golangci.yml | 5 + cmd/containerd-shim-runhcs-v1/exec.go | 2 +- cmd/containerd-shim-runhcs-v1/exec_hcs.go | 2 +- .../exec_wcow_podsandbox.go | 2 +- .../exec_wcow_podsandbox_test.go | 2 +- cmd/containerd-shim-runhcs-v1/pod.go | 2 +- cmd/containerd-shim-runhcs-v1/pod_test.go | 2 +- cmd/containerd-shim-runhcs-v1/service.go | 2 +- .../service_internal.go | 2 +- .../service_internal_podshim_test.go | 2 +- .../service_internal_taskshim_test.go | 2 +- cmd/containerd-shim-runhcs-v1/task.go | 2 +- cmd/containerd-shim-runhcs-v1/task_hcs.go | 2 +- .../task_hcs_test.go | 2 +- cmd/containerd-shim-runhcs-v1/task_test.go | 2 +- .../task_wcow_podsandbox.go | 2 +- go.mod | 2 +- internal/layers/helpers.go | 2 +- internal/oc/errors.go | 4 +- test/go.mod | 2 +- test/internal/containerd/containerd.go | 2 +- test/pkg/images/constants.go | 2 +- .../containerd/errdefs/errdefs_deprecated.go | 118 ++++++++++++++++++ vendor/modules.txt | 1 + 24 files changed, 146 insertions(+), 22 deletions(-) create mode 100644 vendor/github.com/containerd/containerd/errdefs/errdefs_deprecated.go diff --git a/.golangci.yml b/.golangci.yml index 7d38a2fb9e..ee40dd5b9d 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -168,6 +168,11 @@ issues: - staticcheck text: "^SA1019: .*nodenetsvc[/]?v0" + # the `github.com/containerd/containerd/errdefs` is compatibility with containerd v1.7 + - linters: + - staticcheck + text: "^SA1019: .*github.com/containerd/containerd/errdefs" + - path: internal\\vhdx\\info linters: - stylecheck diff --git a/cmd/containerd-shim-runhcs-v1/exec.go b/cmd/containerd-shim-runhcs-v1/exec.go index 8f456aa680..b3eccb2217 100644 --- a/cmd/containerd-shim-runhcs-v1/exec.go +++ b/cmd/containerd-shim-runhcs-v1/exec.go @@ -6,7 +6,7 @@ import ( "context" task "github.com/containerd/containerd/api/runtime/task/v2" - "github.com/containerd/errdefs" + "github.com/containerd/containerd/errdefs" "github.com/pkg/errors" ) diff --git a/cmd/containerd-shim-runhcs-v1/exec_hcs.go b/cmd/containerd-shim-runhcs-v1/exec_hcs.go index 84cdb38d24..aebbc42a46 100644 --- a/cmd/containerd-shim-runhcs-v1/exec_hcs.go +++ b/cmd/containerd-shim-runhcs-v1/exec_hcs.go @@ -10,8 +10,8 @@ import ( eventstypes "github.com/containerd/containerd/api/events" task "github.com/containerd/containerd/api/runtime/task/v2" containerd_v1_types "github.com/containerd/containerd/api/types/task" + "github.com/containerd/containerd/errdefs" "github.com/containerd/containerd/runtime" - "github.com/containerd/errdefs" "github.com/opencontainers/runtime-spec/specs-go" "github.com/pkg/errors" "github.com/sirupsen/logrus" diff --git a/cmd/containerd-shim-runhcs-v1/exec_wcow_podsandbox.go b/cmd/containerd-shim-runhcs-v1/exec_wcow_podsandbox.go index f7df0a390e..4eef34d13a 100644 --- a/cmd/containerd-shim-runhcs-v1/exec_wcow_podsandbox.go +++ b/cmd/containerd-shim-runhcs-v1/exec_wcow_podsandbox.go @@ -11,8 +11,8 @@ import ( eventstypes "github.com/containerd/containerd/api/events" task "github.com/containerd/containerd/api/runtime/task/v2" containerd_v1_types "github.com/containerd/containerd/api/types/task" + "github.com/containerd/containerd/errdefs" "github.com/containerd/containerd/runtime" - "github.com/containerd/errdefs" "github.com/pkg/errors" "github.com/sirupsen/logrus" "google.golang.org/protobuf/types/known/timestamppb" diff --git a/cmd/containerd-shim-runhcs-v1/exec_wcow_podsandbox_test.go b/cmd/containerd-shim-runhcs-v1/exec_wcow_podsandbox_test.go index 6a87e47ba8..78f83967e8 100644 --- a/cmd/containerd-shim-runhcs-v1/exec_wcow_podsandbox_test.go +++ b/cmd/containerd-shim-runhcs-v1/exec_wcow_podsandbox_test.go @@ -10,7 +10,7 @@ import ( task "github.com/containerd/containerd/api/runtime/task/v2" containerd_v1_types "github.com/containerd/containerd/api/types/task" - "github.com/containerd/errdefs" + "github.com/containerd/containerd/errdefs" ) func verifyWcowPodSandboxExecStatus(t *testing.T, wasStarted bool, es containerd_v1_types.Status, status *task.StateResponse) { diff --git a/cmd/containerd-shim-runhcs-v1/pod.go b/cmd/containerd-shim-runhcs-v1/pod.go index 1d2551ee4d..6977e86003 100644 --- a/cmd/containerd-shim-runhcs-v1/pod.go +++ b/cmd/containerd-shim-runhcs-v1/pod.go @@ -18,8 +18,8 @@ import ( "github.com/Microsoft/hcsshim/pkg/annotations" eventstypes "github.com/containerd/containerd/api/events" task "github.com/containerd/containerd/api/runtime/task/v2" + "github.com/containerd/containerd/errdefs" "github.com/containerd/containerd/runtime" - "github.com/containerd/errdefs" "github.com/opencontainers/runtime-spec/specs-go" "github.com/pkg/errors" "golang.org/x/sync/errgroup" diff --git a/cmd/containerd-shim-runhcs-v1/pod_test.go b/cmd/containerd-shim-runhcs-v1/pod_test.go index 816bd800ed..24223043af 100644 --- a/cmd/containerd-shim-runhcs-v1/pod_test.go +++ b/cmd/containerd-shim-runhcs-v1/pod_test.go @@ -11,7 +11,7 @@ import ( "testing" task "github.com/containerd/containerd/api/runtime/task/v2" - "github.com/containerd/errdefs" + "github.com/containerd/containerd/errdefs" specs "github.com/opencontainers/runtime-spec/specs-go" ) diff --git a/cmd/containerd-shim-runhcs-v1/service.go b/cmd/containerd-shim-runhcs-v1/service.go index 04647c7677..d9f62e0ef9 100644 --- a/cmd/containerd-shim-runhcs-v1/service.go +++ b/cmd/containerd-shim-runhcs-v1/service.go @@ -12,7 +12,7 @@ import ( "time" task "github.com/containerd/containerd/api/runtime/task/v2" - "github.com/containerd/errdefs" + "github.com/containerd/containerd/errdefs" "go.opencensus.io/trace" "google.golang.org/protobuf/types/known/emptypb" diff --git a/cmd/containerd-shim-runhcs-v1/service_internal.go b/cmd/containerd-shim-runhcs-v1/service_internal.go index b24e7b139a..847bff9b10 100644 --- a/cmd/containerd-shim-runhcs-v1/service_internal.go +++ b/cmd/containerd-shim-runhcs-v1/service_internal.go @@ -11,8 +11,8 @@ import ( task "github.com/containerd/containerd/api/runtime/task/v2" containerd_v1_types "github.com/containerd/containerd/api/types/task" + "github.com/containerd/containerd/errdefs" "github.com/containerd/containerd/protobuf" - "github.com/containerd/errdefs" typeurl "github.com/containerd/typeurl/v2" "github.com/opencontainers/runtime-spec/specs-go" "github.com/pkg/errors" diff --git a/cmd/containerd-shim-runhcs-v1/service_internal_podshim_test.go b/cmd/containerd-shim-runhcs-v1/service_internal_podshim_test.go index d7493773fa..6d3e4b2bc9 100644 --- a/cmd/containerd-shim-runhcs-v1/service_internal_podshim_test.go +++ b/cmd/containerd-shim-runhcs-v1/service_internal_podshim_test.go @@ -14,8 +14,8 @@ import ( "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options" "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/stats" task "github.com/containerd/containerd/api/runtime/task/v2" + "github.com/containerd/containerd/errdefs" "github.com/containerd/containerd/protobuf" - "github.com/containerd/errdefs" typeurl "github.com/containerd/typeurl/v2" specs "github.com/opencontainers/runtime-spec/specs-go" ) diff --git a/cmd/containerd-shim-runhcs-v1/service_internal_taskshim_test.go b/cmd/containerd-shim-runhcs-v1/service_internal_taskshim_test.go index cfd4c9d1c2..8ee1c89585 100644 --- a/cmd/containerd-shim-runhcs-v1/service_internal_taskshim_test.go +++ b/cmd/containerd-shim-runhcs-v1/service_internal_taskshim_test.go @@ -18,8 +18,8 @@ import ( "github.com/Microsoft/hcsshim/internal/hcsoci" "github.com/Microsoft/hcsshim/pkg/ctrdtaskapi" task "github.com/containerd/containerd/api/runtime/task/v2" + "github.com/containerd/containerd/errdefs" "github.com/containerd/containerd/protobuf" - "github.com/containerd/errdefs" typeurl "github.com/containerd/typeurl/v2" "github.com/opencontainers/runtime-spec/specs-go" ) diff --git a/cmd/containerd-shim-runhcs-v1/task.go b/cmd/containerd-shim-runhcs-v1/task.go index 1d8c386145..ce525a71f0 100644 --- a/cmd/containerd-shim-runhcs-v1/task.go +++ b/cmd/containerd-shim-runhcs-v1/task.go @@ -13,7 +13,7 @@ import ( "github.com/Microsoft/hcsshim/internal/shimdiag" "github.com/Microsoft/hcsshim/pkg/ctrdtaskapi" task "github.com/containerd/containerd/api/runtime/task/v2" - "github.com/containerd/errdefs" + "github.com/containerd/containerd/errdefs" "github.com/opencontainers/runtime-spec/specs-go" ) diff --git a/cmd/containerd-shim-runhcs-v1/task_hcs.go b/cmd/containerd-shim-runhcs-v1/task_hcs.go index d544cb0934..1a85135e61 100644 --- a/cmd/containerd-shim-runhcs-v1/task_hcs.go +++ b/cmd/containerd-shim-runhcs-v1/task_hcs.go @@ -14,8 +14,8 @@ import ( eventstypes "github.com/containerd/containerd/api/events" "github.com/containerd/containerd/api/runtime/task/v2" "github.com/containerd/containerd/api/types" + "github.com/containerd/containerd/errdefs" "github.com/containerd/containerd/runtime" - "github.com/containerd/errdefs" "github.com/containerd/typeurl/v2" "github.com/opencontainers/runtime-spec/specs-go" "github.com/pkg/errors" diff --git a/cmd/containerd-shim-runhcs-v1/task_hcs_test.go b/cmd/containerd-shim-runhcs-v1/task_hcs_test.go index 95fd4f386e..3d9fa10a8d 100644 --- a/cmd/containerd-shim-runhcs-v1/task_hcs_test.go +++ b/cmd/containerd-shim-runhcs-v1/task_hcs_test.go @@ -9,7 +9,7 @@ import ( "testing" "time" - "github.com/containerd/errdefs" + "github.com/containerd/containerd/errdefs" ) func setupTestHcsTask(t *testing.T) (*hcsTask, *testShimExec, *testShimExec) { diff --git a/cmd/containerd-shim-runhcs-v1/task_test.go b/cmd/containerd-shim-runhcs-v1/task_test.go index 2ae9f0a1c2..66ab66734c 100644 --- a/cmd/containerd-shim-runhcs-v1/task_test.go +++ b/cmd/containerd-shim-runhcs-v1/task_test.go @@ -12,7 +12,7 @@ import ( "github.com/Microsoft/hcsshim/pkg/ctrdtaskapi" v1 "github.com/containerd/cgroups/v3/cgroup1/stats" task "github.com/containerd/containerd/api/runtime/task/v2" - "github.com/containerd/errdefs" + "github.com/containerd/containerd/errdefs" typeurl "github.com/containerd/typeurl/v2" specs "github.com/opencontainers/runtime-spec/specs-go" "github.com/pkg/errors" diff --git a/cmd/containerd-shim-runhcs-v1/task_wcow_podsandbox.go b/cmd/containerd-shim-runhcs-v1/task_wcow_podsandbox.go index 423c5c23de..924f3e4215 100644 --- a/cmd/containerd-shim-runhcs-v1/task_wcow_podsandbox.go +++ b/cmd/containerd-shim-runhcs-v1/task_wcow_podsandbox.go @@ -16,8 +16,8 @@ import ( "github.com/Microsoft/hcsshim/internal/uvm" eventstypes "github.com/containerd/containerd/api/events" task "github.com/containerd/containerd/api/runtime/task/v2" + "github.com/containerd/containerd/errdefs" "github.com/containerd/containerd/runtime" - "github.com/containerd/errdefs" typeurl "github.com/containerd/typeurl/v2" "github.com/opencontainers/runtime-spec/specs-go" "github.com/pkg/errors" diff --git a/go.mod b/go.mod index 896a343e17..d467cf128c 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,6 @@ require ( github.com/containerd/console v1.0.4 github.com/containerd/containerd v1.7.21 github.com/containerd/containerd/api v1.7.19 - github.com/containerd/errdefs v0.1.0 github.com/containerd/go-runc v1.0.0 github.com/containerd/protobuild v0.3.0 github.com/containerd/ttrpc v1.2.5 @@ -50,6 +49,7 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/containerd/continuity v0.4.2 // indirect + github.com/containerd/errdefs v0.1.0 // indirect github.com/containerd/fifo v1.1.0 // indirect github.com/containerd/log v0.1.0 // indirect github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect diff --git a/internal/layers/helpers.go b/internal/layers/helpers.go index 2a67a7fb1b..2288962ded 100644 --- a/internal/layers/helpers.go +++ b/internal/layers/helpers.go @@ -13,7 +13,7 @@ import ( "github.com/Microsoft/hcsshim/internal/wclayer" "github.com/containerd/containerd/api/types" - "github.com/containerd/errdefs" + "github.com/containerd/containerd/errdefs" ) // validateRootfsAndLayers checks to ensure we have appropriate information diff --git a/internal/oc/errors.go b/internal/oc/errors.go index 8c41a3661e..71df25b8df 100644 --- a/internal/oc/errors.go +++ b/internal/oc/errors.go @@ -6,7 +6,7 @@ import ( "net" "os" - "github.com/containerd/errdefs" + "github.com/containerd/containerd/errdefs" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" ) @@ -16,7 +16,7 @@ import ( func toStatusCode(err error) codes.Code { // checks if err implements GRPCStatus() *"google.golang.org/grpc/status".Status, - // wraps an error defined in "github.com/containerd/errdefs", or is a + // wraps an error defined in "github.com/containerd/containerd/errdefs", or is a // context timeout or cancelled error if s, ok := status.FromError(errdefs.ToGRPC(err)); ok { return s.Code() diff --git a/test/go.mod b/test/go.mod index b514212f11..276816f027 100644 --- a/test/go.mod +++ b/test/go.mod @@ -8,7 +8,6 @@ require ( github.com/containerd/cgroups/v3 v3.0.3 github.com/containerd/containerd v1.7.21 github.com/containerd/containerd/api v1.7.19 - github.com/containerd/errdefs v0.1.0 github.com/containerd/go-runc v1.1.0 github.com/containerd/platforms v0.2.1 github.com/containerd/ttrpc v1.2.5 @@ -43,6 +42,7 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/containerd/console v1.0.4 // indirect github.com/containerd/continuity v0.4.3 // indirect + github.com/containerd/errdefs v0.1.0 // indirect github.com/containerd/fifo v1.1.0 // indirect github.com/containerd/log v0.1.0 // indirect github.com/containerd/stargz-snapshotter/estargz v0.15.1 // indirect diff --git a/test/internal/containerd/containerd.go b/test/internal/containerd/containerd.go index ea69306a01..015b07c675 100644 --- a/test/internal/containerd/containerd.go +++ b/test/internal/containerd/containerd.go @@ -9,13 +9,13 @@ import ( "testing" "github.com/containerd/containerd" + "github.com/containerd/containerd/errdefs" kubeutil "github.com/containerd/containerd/integration/remote/util" "github.com/containerd/containerd/mount" "github.com/containerd/containerd/remotes" "github.com/containerd/containerd/remotes/docker" "github.com/containerd/containerd/remotes/docker/config" "github.com/containerd/containerd/snapshots" - "github.com/containerd/errdefs" "github.com/containerd/platforms" "github.com/opencontainers/image-spec/identity" "google.golang.org/grpc" diff --git a/test/pkg/images/constants.go b/test/pkg/images/constants.go index f2d73626c7..a149be852c 100644 --- a/test/pkg/images/constants.go +++ b/test/pkg/images/constants.go @@ -3,7 +3,7 @@ package images import ( "fmt" - "github.com/containerd/errdefs" + "github.com/containerd/containerd/errdefs" "github.com/containerd/platforms" ) diff --git a/vendor/github.com/containerd/containerd/errdefs/errdefs_deprecated.go b/vendor/github.com/containerd/containerd/errdefs/errdefs_deprecated.go new file mode 100644 index 0000000000..a88cb8b189 --- /dev/null +++ b/vendor/github.com/containerd/containerd/errdefs/errdefs_deprecated.go @@ -0,0 +1,118 @@ +/* + 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. +// +// Deprecated: use [github.com/containerd/errdefs]. +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 feb9a0510e..9bfec0d390 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -56,6 +56,7 @@ github.com/containerd/console ## explicit; go 1.21 github.com/containerd/containerd/contrib/seccomp/kernelversion github.com/containerd/containerd/defaults +github.com/containerd/containerd/errdefs github.com/containerd/containerd/events github.com/containerd/containerd/events/exchange github.com/containerd/containerd/filters