mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-01-18 10:49:30 +00:00
4a1927f2f3
Update K8s packages in go.mod to v0.32.0 Signed-off-by: Praveen M <m.praveen@ibm.com>
93 lines
3.1 KiB
Go
93 lines
3.1 KiB
Go
/*
|
|
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 (
|
|
"context"
|
|
"errors"
|
|
)
|
|
|
|
// 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 = errors.New("unknown") // used internally to represent a missed mapping.
|
|
ErrInvalidArgument = errors.New("invalid argument")
|
|
ErrNotFound = errors.New("not found")
|
|
ErrAlreadyExists = errors.New("already exists")
|
|
ErrFailedPrecondition = errors.New("failed precondition")
|
|
ErrUnavailable = errors.New("unavailable")
|
|
ErrNotImplemented = errors.New("not implemented") // represents not supported and unimplemented
|
|
)
|
|
|
|
// IsInvalidArgument returns true if the error is due to an invalid argument
|
|
func IsInvalidArgument(err error) bool {
|
|
return errors.Is(err, ErrInvalidArgument)
|
|
}
|
|
|
|
// IsNotFound returns true if the error is due to a missing object
|
|
func IsNotFound(err error) bool {
|
|
return errors.Is(err, ErrNotFound)
|
|
}
|
|
|
|
// IsAlreadyExists returns true if the error is due to an already existing
|
|
// metadata item
|
|
func IsAlreadyExists(err error) bool {
|
|
return errors.Is(err, ErrAlreadyExists)
|
|
}
|
|
|
|
// IsFailedPrecondition returns true if an operation could not proceed to the
|
|
// lack of a particular condition
|
|
func IsFailedPrecondition(err error) bool {
|
|
return errors.Is(err, ErrFailedPrecondition)
|
|
}
|
|
|
|
// IsUnavailable returns true if the error is due to a resource being unavailable
|
|
func IsUnavailable(err error) bool {
|
|
return errors.Is(err, ErrUnavailable)
|
|
}
|
|
|
|
// IsNotImplemented returns true if the error is due to not being implemented
|
|
func IsNotImplemented(err error) bool {
|
|
return errors.Is(err, ErrNotImplemented)
|
|
}
|
|
|
|
// IsCanceled returns true if the error is due to `context.Canceled`.
|
|
func IsCanceled(err error) bool {
|
|
return errors.Is(err, context.Canceled)
|
|
}
|
|
|
|
// IsDeadlineExceeded returns true if the error is due to
|
|
// `context.DeadlineExceeded`.
|
|
func IsDeadlineExceeded(err error) bool {
|
|
return errors.Is(err, context.DeadlineExceeded)
|
|
}
|