switch usage directly to errdefs.(ErrAlreadyExists and ErrNotFound)
Signed-off-by: Zou Nengren <zouyee1989@gmail.com>
This commit is contained in:
		| @@ -9,3 +9,5 @@ | |||||||
| // containerd to be the source of truth, helping us catch missing go.mod rules, | // containerd to be the source of truth, helping us catch missing go.mod rules, | ||||||
| // or version changes early. | // or version changes early. | ||||||
| module empty-mod | module empty-mod | ||||||
|  |  | ||||||
|  | go 1.13 | ||||||
|   | |||||||
| @@ -20,20 +20,19 @@ import ( | |||||||
| 	"github.com/containerd/containerd" | 	"github.com/containerd/containerd" | ||||||
| 	"github.com/containerd/containerd/errdefs" | 	"github.com/containerd/containerd/errdefs" | ||||||
| 	"github.com/containerd/containerd/log" | 	"github.com/containerd/containerd/log" | ||||||
|  | 	containerstore "github.com/containerd/containerd/pkg/cri/store/container" | ||||||
|  |  | ||||||
| 	"github.com/pkg/errors" | 	"github.com/pkg/errors" | ||||||
| 	"github.com/sirupsen/logrus" | 	"github.com/sirupsen/logrus" | ||||||
| 	"golang.org/x/net/context" | 	"golang.org/x/net/context" | ||||||
| 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | ||||||
|  |  | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store" |  | ||||||
| 	containerstore "github.com/containerd/containerd/pkg/cri/store/container" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // RemoveContainer removes the container. | // RemoveContainer removes the container. | ||||||
| func (c *criService) RemoveContainer(ctx context.Context, r *runtime.RemoveContainerRequest) (_ *runtime.RemoveContainerResponse, retErr error) { | func (c *criService) RemoveContainer(ctx context.Context, r *runtime.RemoveContainerRequest) (_ *runtime.RemoveContainerResponse, retErr error) { | ||||||
| 	container, err := c.containerStore.Get(r.GetContainerId()) | 	container, err := c.containerStore.Get(r.GetContainerId()) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		if err != store.ErrNotExist { | 		if !errdefs.IsNotFound(err) { | ||||||
| 			return nil, errors.Wrapf(err, "an error occurred when try to find container %q", r.GetContainerId()) | 			return nil, errors.Wrapf(err, "an error occurred when try to find container %q", r.GetContainerId()) | ||||||
| 		} | 		} | ||||||
| 		// Do not return error if container metadata doesn't exist. | 		// Do not return error if container metadata doesn't exist. | ||||||
|   | |||||||
| @@ -19,13 +19,13 @@ package server | |||||||
| import ( | import ( | ||||||
| 	"encoding/json" | 	"encoding/json" | ||||||
|  |  | ||||||
|  | 	"github.com/containerd/containerd/errdefs" | ||||||
|  | 	containerstore "github.com/containerd/containerd/pkg/cri/store/container" | ||||||
|  |  | ||||||
| 	runtimespec "github.com/opencontainers/runtime-spec/specs-go" | 	runtimespec "github.com/opencontainers/runtime-spec/specs-go" | ||||||
| 	"github.com/pkg/errors" | 	"github.com/pkg/errors" | ||||||
| 	"golang.org/x/net/context" | 	"golang.org/x/net/context" | ||||||
| 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | ||||||
|  |  | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store" |  | ||||||
| 	containerstore "github.com/containerd/containerd/pkg/cri/store/container" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // ContainerStatus inspects the container and returns the status. | // ContainerStatus inspects the container and returns the status. | ||||||
| @@ -44,7 +44,7 @@ func (c *criService) ContainerStatus(ctx context.Context, r *runtime.ContainerSt | |||||||
| 	imageRef := container.ImageRef | 	imageRef := container.ImageRef | ||||||
| 	image, err := c.imageStore.Get(imageRef) | 	image, err := c.imageStore.Get(imageRef) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		if err != store.ErrNotExist { | 		if !errdefs.IsNotFound(err) { | ||||||
| 			return nil, errors.Wrapf(err, "failed to get image %q", imageRef) | 			return nil, errors.Wrapf(err, "failed to get image %q", imageRef) | ||||||
| 		} | 		} | ||||||
| 	} else { | 	} else { | ||||||
|   | |||||||
| @@ -24,14 +24,13 @@ import ( | |||||||
| 	eventtypes "github.com/containerd/containerd/api/events" | 	eventtypes "github.com/containerd/containerd/api/events" | ||||||
| 	"github.com/containerd/containerd/errdefs" | 	"github.com/containerd/containerd/errdefs" | ||||||
| 	"github.com/containerd/containerd/log" | 	"github.com/containerd/containerd/log" | ||||||
|  | 	containerstore "github.com/containerd/containerd/pkg/cri/store/container" | ||||||
|  | 	ctrdutil "github.com/containerd/containerd/pkg/cri/util" | ||||||
|  |  | ||||||
|  | 	"github.com/moby/sys/signal" | ||||||
| 	"github.com/pkg/errors" | 	"github.com/pkg/errors" | ||||||
| 	"golang.org/x/net/context" | 	"golang.org/x/net/context" | ||||||
| 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | ||||||
|  |  | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store" |  | ||||||
| 	containerstore "github.com/containerd/containerd/pkg/cri/store/container" |  | ||||||
| 	ctrdutil "github.com/containerd/containerd/pkg/cri/util" |  | ||||||
| 	"github.com/moby/sys/signal" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // StopContainer stops a running container with a grace period (i.e., timeout). | // StopContainer stops a running container with a grace period (i.e., timeout). | ||||||
| @@ -116,7 +115,7 @@ func (c *criService) stopContainer(ctx context.Context, container containerstore | |||||||
| 			// TODO(random-liu): Remove this logic when containerd 1.2 is deprecated. | 			// TODO(random-liu): Remove this logic when containerd 1.2 is deprecated. | ||||||
| 			image, err := c.imageStore.Get(container.ImageRef) | 			image, err := c.imageStore.Get(container.ImageRef) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				if err != store.ErrNotExist { | 				if !errdefs.IsNotFound(err) { | ||||||
| 					return errors.Wrapf(err, "failed to get image %q", container.ImageRef) | 					return errors.Wrapf(err, "failed to get image %q", container.ImageRef) | ||||||
| 				} | 				} | ||||||
| 				log.G(ctx).Warningf("Image %q not found, stop container with signal %q", container.ImageRef, stopSignal) | 				log.G(ctx).Warningf("Image %q not found, stop container with signal %q", container.ImageRef, stopSignal) | ||||||
|   | |||||||
| @@ -25,18 +25,17 @@ import ( | |||||||
| 	containerdio "github.com/containerd/containerd/cio" | 	containerdio "github.com/containerd/containerd/cio" | ||||||
| 	"github.com/containerd/containerd/errdefs" | 	"github.com/containerd/containerd/errdefs" | ||||||
| 	"github.com/containerd/containerd/events" | 	"github.com/containerd/containerd/events" | ||||||
|  | 	"github.com/containerd/containerd/pkg/cri/constants" | ||||||
|  | 	containerstore "github.com/containerd/containerd/pkg/cri/store/container" | ||||||
|  | 	sandboxstore "github.com/containerd/containerd/pkg/cri/store/sandbox" | ||||||
|  | 	ctrdutil "github.com/containerd/containerd/pkg/cri/util" | ||||||
| 	"github.com/containerd/typeurl" | 	"github.com/containerd/typeurl" | ||||||
|  |  | ||||||
| 	gogotypes "github.com/gogo/protobuf/types" | 	gogotypes "github.com/gogo/protobuf/types" | ||||||
| 	"github.com/pkg/errors" | 	"github.com/pkg/errors" | ||||||
| 	"github.com/sirupsen/logrus" | 	"github.com/sirupsen/logrus" | ||||||
| 	"golang.org/x/net/context" | 	"golang.org/x/net/context" | ||||||
| 	"k8s.io/apimachinery/pkg/util/clock" | 	"k8s.io/apimachinery/pkg/util/clock" | ||||||
|  |  | ||||||
| 	"github.com/containerd/containerd/pkg/cri/constants" |  | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store" |  | ||||||
| 	containerstore "github.com/containerd/containerd/pkg/cri/store/container" |  | ||||||
| 	sandboxstore "github.com/containerd/containerd/pkg/cri/store/sandbox" |  | ||||||
| 	ctrdutil "github.com/containerd/containerd/pkg/cri/util" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| const ( | const ( | ||||||
| @@ -141,7 +140,7 @@ func (em *eventMonitor) startSandboxExitMonitor(ctx context.Context, id string, | |||||||
| 						return err | 						return err | ||||||
| 					} | 					} | ||||||
| 					return nil | 					return nil | ||||||
| 				} else if err != store.ErrNotExist { | 				} else if !errdefs.IsNotFound(err) { | ||||||
| 					return errors.Wrapf(err, "failed to get sandbox %s", e.ID) | 					return errors.Wrapf(err, "failed to get sandbox %s", e.ID) | ||||||
| 				} | 				} | ||||||
| 				return nil | 				return nil | ||||||
| @@ -192,7 +191,7 @@ func (em *eventMonitor) startContainerExitMonitor(ctx context.Context, id string | |||||||
| 						return err | 						return err | ||||||
| 					} | 					} | ||||||
| 					return nil | 					return nil | ||||||
| 				} else if err != store.ErrNotExist { | 				} else if !errdefs.IsNotFound(err) { | ||||||
| 					return errors.Wrapf(err, "failed to get container %s", e.ID) | 					return errors.Wrapf(err, "failed to get container %s", e.ID) | ||||||
| 				} | 				} | ||||||
| 				return nil | 				return nil | ||||||
| @@ -318,7 +317,7 @@ func (em *eventMonitor) handleEvent(any interface{}) error { | |||||||
| 				return errors.Wrap(err, "failed to handle container TaskExit event") | 				return errors.Wrap(err, "failed to handle container TaskExit event") | ||||||
| 			} | 			} | ||||||
| 			return nil | 			return nil | ||||||
| 		} else if err != store.ErrNotExist { | 		} else if !errdefs.IsNotFound(err) { | ||||||
| 			return errors.Wrap(err, "can't find container for TaskExit event") | 			return errors.Wrap(err, "can't find container for TaskExit event") | ||||||
| 		} | 		} | ||||||
| 		sb, err := em.c.sandboxStore.Get(e.ID) | 		sb, err := em.c.sandboxStore.Get(e.ID) | ||||||
| @@ -327,7 +326,7 @@ func (em *eventMonitor) handleEvent(any interface{}) error { | |||||||
| 				return errors.Wrap(err, "failed to handle sandbox TaskExit event") | 				return errors.Wrap(err, "failed to handle sandbox TaskExit event") | ||||||
| 			} | 			} | ||||||
| 			return nil | 			return nil | ||||||
| 		} else if err != store.ErrNotExist { | 		} else if !errdefs.IsNotFound(err) { | ||||||
| 			return errors.Wrap(err, "can't find sandbox for TaskExit event") | 			return errors.Wrap(err, "can't find sandbox for TaskExit event") | ||||||
| 		} | 		} | ||||||
| 		return nil | 		return nil | ||||||
| @@ -336,7 +335,7 @@ func (em *eventMonitor) handleEvent(any interface{}) error { | |||||||
| 		// For TaskOOM, we only care which container it belongs to. | 		// For TaskOOM, we only care which container it belongs to. | ||||||
| 		cntr, err := em.c.containerStore.Get(e.ContainerID) | 		cntr, err := em.c.containerStore.Get(e.ContainerID) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			if err != store.ErrNotExist { | 			if !errdefs.IsNotFound(err) { | ||||||
| 				return errors.Wrap(err, "can't find container for TaskOOM event") | 				return errors.Wrap(err, "can't find container for TaskOOM event") | ||||||
| 			} | 			} | ||||||
| 			return nil | 			return nil | ||||||
|   | |||||||
| @@ -23,26 +23,26 @@ import ( | |||||||
| 	"strconv" | 	"strconv" | ||||||
| 	"strings" | 	"strings" | ||||||
|  |  | ||||||
| 	runhcsoptions "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options" |  | ||||||
| 	"github.com/containerd/containerd" | 	"github.com/containerd/containerd" | ||||||
| 	"github.com/containerd/containerd/containers" | 	"github.com/containerd/containerd/containers" | ||||||
|  | 	"github.com/containerd/containerd/errdefs" | ||||||
|  | 	criconfig "github.com/containerd/containerd/pkg/cri/config" | ||||||
|  | 	containerstore "github.com/containerd/containerd/pkg/cri/store/container" | ||||||
|  | 	imagestore "github.com/containerd/containerd/pkg/cri/store/image" | ||||||
|  | 	sandboxstore "github.com/containerd/containerd/pkg/cri/store/sandbox" | ||||||
|  | 	runtimeoptions "github.com/containerd/containerd/pkg/runtimeoptions/v1" | ||||||
| 	"github.com/containerd/containerd/plugin" | 	"github.com/containerd/containerd/plugin" | ||||||
| 	"github.com/containerd/containerd/reference/docker" | 	"github.com/containerd/containerd/reference/docker" | ||||||
| 	"github.com/containerd/containerd/runtime/linux/runctypes" | 	"github.com/containerd/containerd/runtime/linux/runctypes" | ||||||
| 	runcoptions "github.com/containerd/containerd/runtime/v2/runc/options" | 	runcoptions "github.com/containerd/containerd/runtime/v2/runc/options" | ||||||
| 	"github.com/containerd/typeurl" | 	"github.com/containerd/typeurl" | ||||||
|  |  | ||||||
|  | 	runhcsoptions "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options" | ||||||
| 	imagedigest "github.com/opencontainers/go-digest" | 	imagedigest "github.com/opencontainers/go-digest" | ||||||
| 	"github.com/pelletier/go-toml" | 	"github.com/pelletier/go-toml" | ||||||
| 	"github.com/pkg/errors" | 	"github.com/pkg/errors" | ||||||
| 	"golang.org/x/net/context" | 	"golang.org/x/net/context" | ||||||
| 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | ||||||
|  |  | ||||||
| 	criconfig "github.com/containerd/containerd/pkg/cri/config" |  | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store" |  | ||||||
| 	containerstore "github.com/containerd/containerd/pkg/cri/store/container" |  | ||||||
| 	imagestore "github.com/containerd/containerd/pkg/cri/store/image" |  | ||||||
| 	sandboxstore "github.com/containerd/containerd/pkg/cri/store/sandbox" |  | ||||||
| 	runtimeoptions "github.com/containerd/containerd/pkg/runtimeoptions/v1" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| const ( | const ( | ||||||
| @@ -222,7 +222,7 @@ func getUserFromImage(user string) (*int64, string) { | |||||||
| // pulled yet, the function will pull the image. | // pulled yet, the function will pull the image. | ||||||
| func (c *criService) ensureImageExists(ctx context.Context, ref string, config *runtime.PodSandboxConfig) (*imagestore.Image, error) { | func (c *criService) ensureImageExists(ctx context.Context, ref string, config *runtime.PodSandboxConfig) (*imagestore.Image, error) { | ||||||
| 	image, err := c.localResolve(ref) | 	image, err := c.localResolve(ref) | ||||||
| 	if err != nil && err != store.ErrNotExist { | 	if err != nil && !errdefs.IsNotFound(err) { | ||||||
| 		return nil, errors.Wrapf(err, "failed to get image %q", ref) | 		return nil, errors.Wrapf(err, "failed to get image %q", ref) | ||||||
| 	} | 	} | ||||||
| 	if err == nil { | 	if err == nil { | ||||||
|   | |||||||
| @@ -22,21 +22,21 @@ import ( | |||||||
| 	"testing" | 	"testing" | ||||||
| 	"time" | 	"time" | ||||||
|  |  | ||||||
|  | 	"github.com/containerd/containerd/errdefs" | ||||||
| 	"github.com/containerd/containerd/oci" | 	"github.com/containerd/containerd/oci" | ||||||
|  | 	criconfig "github.com/containerd/containerd/pkg/cri/config" | ||||||
|  | 	containerstore "github.com/containerd/containerd/pkg/cri/store/container" | ||||||
|  | 	imagestore "github.com/containerd/containerd/pkg/cri/store/image" | ||||||
| 	"github.com/containerd/containerd/plugin" | 	"github.com/containerd/containerd/plugin" | ||||||
| 	"github.com/containerd/containerd/reference/docker" | 	"github.com/containerd/containerd/reference/docker" | ||||||
| 	"github.com/containerd/containerd/runtime/linux/runctypes" | 	"github.com/containerd/containerd/runtime/linux/runctypes" | ||||||
| 	runcoptions "github.com/containerd/containerd/runtime/v2/runc/options" | 	runcoptions "github.com/containerd/containerd/runtime/v2/runc/options" | ||||||
|  |  | ||||||
| 	imagedigest "github.com/opencontainers/go-digest" | 	imagedigest "github.com/opencontainers/go-digest" | ||||||
| 	runtimespec "github.com/opencontainers/runtime-spec/specs-go" | 	runtimespec "github.com/opencontainers/runtime-spec/specs-go" | ||||||
| 	"github.com/pelletier/go-toml" | 	"github.com/pelletier/go-toml" | ||||||
| 	"github.com/stretchr/testify/assert" | 	"github.com/stretchr/testify/assert" | ||||||
| 	"github.com/stretchr/testify/require" | 	"github.com/stretchr/testify/require" | ||||||
|  |  | ||||||
| 	criconfig "github.com/containerd/containerd/pkg/cri/config" |  | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store" |  | ||||||
| 	containerstore "github.com/containerd/containerd/pkg/cri/store/container" |  | ||||||
| 	imagestore "github.com/containerd/containerd/pkg/cri/store/image" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // TestGetUserFromImage tests the logic of getting image uid or user name of image user. | // TestGetUserFromImage tests the logic of getting image uid or user name of image user. | ||||||
| @@ -189,7 +189,7 @@ func TestLocalResolve(t *testing.T) { | |||||||
| 		assert.Equal(t, image, img) | 		assert.Equal(t, image, img) | ||||||
| 	} | 	} | ||||||
| 	img, err := c.localResolve("randomid") | 	img, err := c.localResolve("randomid") | ||||||
| 	assert.Equal(t, store.ErrNotExist, err) | 	assert.Equal(t, errdefs.IsNotFound(err), true) | ||||||
| 	assert.Equal(t, imagestore.Image{}, img) | 	assert.Equal(t, imagestore.Image{}, img) | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -19,11 +19,10 @@ package server | |||||||
| import ( | import ( | ||||||
| 	"github.com/containerd/containerd/errdefs" | 	"github.com/containerd/containerd/errdefs" | ||||||
| 	"github.com/containerd/containerd/images" | 	"github.com/containerd/containerd/images" | ||||||
|  |  | ||||||
| 	"github.com/pkg/errors" | 	"github.com/pkg/errors" | ||||||
| 	"golang.org/x/net/context" | 	"golang.org/x/net/context" | ||||||
| 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | ||||||
|  |  | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // RemoveImage removes the image. | // RemoveImage removes the image. | ||||||
| @@ -35,7 +34,7 @@ import ( | |||||||
| func (c *criService) RemoveImage(ctx context.Context, r *runtime.RemoveImageRequest) (*runtime.RemoveImageResponse, error) { | func (c *criService) RemoveImage(ctx context.Context, r *runtime.RemoveImageRequest) (*runtime.RemoveImageResponse, error) { | ||||||
| 	image, err := c.localResolve(r.GetImage().GetImage()) | 	image, err := c.localResolve(r.GetImage().GetImage()) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		if err == store.ErrNotExist { | 		if errdefs.IsNotFound(err) { | ||||||
| 			// return empty without error when image not found. | 			// return empty without error when image not found. | ||||||
| 			return &runtime.RemoveImageResponse{}, nil | 			return &runtime.RemoveImageResponse{}, nil | ||||||
| 		} | 		} | ||||||
|   | |||||||
| @@ -19,14 +19,14 @@ package server | |||||||
| import ( | import ( | ||||||
| 	"encoding/json" | 	"encoding/json" | ||||||
|  |  | ||||||
|  | 	"github.com/containerd/containerd/errdefs" | ||||||
| 	"github.com/containerd/containerd/log" | 	"github.com/containerd/containerd/log" | ||||||
|  | 	imagestore "github.com/containerd/containerd/pkg/cri/store/image" | ||||||
|  |  | ||||||
| 	imagespec "github.com/opencontainers/image-spec/specs-go/v1" | 	imagespec "github.com/opencontainers/image-spec/specs-go/v1" | ||||||
| 	"github.com/pkg/errors" | 	"github.com/pkg/errors" | ||||||
| 	"golang.org/x/net/context" | 	"golang.org/x/net/context" | ||||||
| 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | ||||||
|  |  | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store" |  | ||||||
| 	imagestore "github.com/containerd/containerd/pkg/cri/store/image" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // ImageStatus returns the status of the image, returns nil if the image isn't present. | // ImageStatus returns the status of the image, returns nil if the image isn't present. | ||||||
| @@ -35,7 +35,7 @@ import ( | |||||||
| func (c *criService) ImageStatus(ctx context.Context, r *runtime.ImageStatusRequest) (*runtime.ImageStatusResponse, error) { | func (c *criService) ImageStatus(ctx context.Context, r *runtime.ImageStatusRequest) (*runtime.ImageStatusResponse, error) { | ||||||
| 	image, err := c.localResolve(r.GetImage().GetImage()) | 	image, err := c.localResolve(r.GetImage().GetImage()) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		if err == store.ErrNotExist { | 		if errdefs.IsNotFound(err) { | ||||||
| 			// return empty without error when image not found. | 			// return empty without error when image not found. | ||||||
| 			return &runtime.ImageStatusResponse{}, nil | 			return &runtime.ImageStatusResponse{}, nil | ||||||
| 		} | 		} | ||||||
|   | |||||||
| @@ -20,12 +20,11 @@ import ( | |||||||
| 	"github.com/containerd/containerd" | 	"github.com/containerd/containerd" | ||||||
| 	"github.com/containerd/containerd/errdefs" | 	"github.com/containerd/containerd/errdefs" | ||||||
| 	"github.com/containerd/containerd/log" | 	"github.com/containerd/containerd/log" | ||||||
|  |  | ||||||
| 	"github.com/pkg/errors" | 	"github.com/pkg/errors" | ||||||
| 	"github.com/sirupsen/logrus" | 	"github.com/sirupsen/logrus" | ||||||
| 	"golang.org/x/net/context" | 	"golang.org/x/net/context" | ||||||
| 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | ||||||
|  |  | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // RemovePodSandbox removes the sandbox. If there are running containers in the | // RemovePodSandbox removes the sandbox. If there are running containers in the | ||||||
| @@ -33,7 +32,7 @@ import ( | |||||||
| func (c *criService) RemovePodSandbox(ctx context.Context, r *runtime.RemovePodSandboxRequest) (*runtime.RemovePodSandboxResponse, error) { | func (c *criService) RemovePodSandbox(ctx context.Context, r *runtime.RemovePodSandboxRequest) (*runtime.RemovePodSandboxResponse, error) { | ||||||
| 	sandbox, err := c.sandboxStore.Get(r.GetPodSandboxId()) | 	sandbox, err := c.sandboxStore.Get(r.GetPodSandboxId()) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		if err != store.ErrNotExist { | 		if !errdefs.IsNotFound(err) { | ||||||
| 			return nil, errors.Wrapf(err, "an error occurred when try to find sandbox %q", | 			return nil, errors.Wrapf(err, "an error occurred when try to find sandbox %q", | ||||||
| 				r.GetPodSandboxId()) | 				r.GetPodSandboxId()) | ||||||
| 		} | 		} | ||||||
|   | |||||||
| @@ -20,12 +20,13 @@ import ( | |||||||
| 	"sync" | 	"sync" | ||||||
|  |  | ||||||
| 	"github.com/containerd/containerd" | 	"github.com/containerd/containerd" | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store/label" | 	"github.com/containerd/containerd/errdefs" | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store/truncindex" |  | ||||||
| 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" |  | ||||||
|  |  | ||||||
| 	cio "github.com/containerd/containerd/pkg/cri/io" | 	cio "github.com/containerd/containerd/pkg/cri/io" | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store" | 	"github.com/containerd/containerd/pkg/cri/store" | ||||||
|  | 	"github.com/containerd/containerd/pkg/cri/store/label" | ||||||
|  | 	"github.com/containerd/containerd/pkg/cri/store/truncindex" | ||||||
|  |  | ||||||
|  | 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // Container contains all resources associated with the container. All methods to | // Container contains all resources associated with the container. All methods to | ||||||
| @@ -124,7 +125,7 @@ func (s *Store) Add(c Container) error { | |||||||
| 	s.lock.Lock() | 	s.lock.Lock() | ||||||
| 	defer s.lock.Unlock() | 	defer s.lock.Unlock() | ||||||
| 	if _, ok := s.containers[c.ID]; ok { | 	if _, ok := s.containers[c.ID]; ok { | ||||||
| 		return store.ErrAlreadyExist | 		return errdefs.ErrAlreadyExists | ||||||
| 	} | 	} | ||||||
| 	if err := s.labels.Reserve(c.ProcessLabel); err != nil { | 	if err := s.labels.Reserve(c.ProcessLabel); err != nil { | ||||||
| 		return err | 		return err | ||||||
| @@ -144,14 +145,14 @@ func (s *Store) Get(id string) (Container, error) { | |||||||
| 	id, err := s.idIndex.Get(id) | 	id, err := s.idIndex.Get(id) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		if err == truncindex.ErrNotExist { | 		if err == truncindex.ErrNotExist { | ||||||
| 			err = store.ErrNotExist | 			err = errdefs.ErrNotFound | ||||||
| 		} | 		} | ||||||
| 		return Container{}, err | 		return Container{}, err | ||||||
| 	} | 	} | ||||||
| 	if c, ok := s.containers[id]; ok { | 	if c, ok := s.containers[id]; ok { | ||||||
| 		return c, nil | 		return c, nil | ||||||
| 	} | 	} | ||||||
| 	return Container{}, store.ErrNotExist | 	return Container{}, errdefs.ErrNotFound | ||||||
| } | } | ||||||
|  |  | ||||||
| // List lists all containers. | // List lists all containers. | ||||||
|   | |||||||
| @@ -21,13 +21,13 @@ import ( | |||||||
| 	"testing" | 	"testing" | ||||||
| 	"time" | 	"time" | ||||||
|  |  | ||||||
|  | 	"github.com/containerd/containerd/errdefs" | ||||||
|  | 	cio "github.com/containerd/containerd/pkg/cri/io" | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store/label" | 	"github.com/containerd/containerd/pkg/cri/store/label" | ||||||
|  |  | ||||||
| 	"github.com/opencontainers/selinux/go-selinux" | 	"github.com/opencontainers/selinux/go-selinux" | ||||||
| 	assertlib "github.com/stretchr/testify/assert" | 	assertlib "github.com/stretchr/testify/assert" | ||||||
| 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | ||||||
|  |  | ||||||
| 	cio "github.com/containerd/containerd/pkg/cri/io" |  | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TestContainerStore(t *testing.T) { | func TestContainerStore(t *testing.T) { | ||||||
| @@ -183,7 +183,7 @@ func TestContainerStore(t *testing.T) { | |||||||
| 		truncID := genTruncIndex(testID) | 		truncID := genTruncIndex(testID) | ||||||
|  |  | ||||||
| 		t.Logf("add should return already exists error for duplicated container") | 		t.Logf("add should return already exists error for duplicated container") | ||||||
| 		assert.Equal(store.ErrAlreadyExist, s.Add(v)) | 		assert.Equal(errdefs.ErrAlreadyExists, s.Add(v)) | ||||||
|  |  | ||||||
| 		t.Logf("should be able to delete container") | 		t.Logf("should be able to delete container") | ||||||
| 		s.Delete(truncID) | 		s.Delete(truncID) | ||||||
| @@ -194,7 +194,7 @@ func TestContainerStore(t *testing.T) { | |||||||
| 		t.Logf("get should return not exist error after deletion") | 		t.Logf("get should return not exist error after deletion") | ||||||
| 		c, err := s.Get(truncID) | 		c, err := s.Get(truncID) | ||||||
| 		assert.Equal(Container{}, c) | 		assert.Equal(Container{}, c) | ||||||
| 		assert.Equal(store.ErrNotExist, err) | 		assert.Equal(errdefs.ErrNotFound, err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if selinux.GetEnabled() { | 	if selinux.GetEnabled() { | ||||||
|   | |||||||
| @@ -19,14 +19,14 @@ package store | |||||||
| import ( | import ( | ||||||
| 	"testing" | 	"testing" | ||||||
|  |  | ||||||
|  | 	"github.com/containerd/containerd/errdefs" | ||||||
|  |  | ||||||
| 	"google.golang.org/grpc/codes" | 	"google.golang.org/grpc/codes" | ||||||
| 	"google.golang.org/grpc/status" | 	"google.golang.org/grpc/status" | ||||||
|  |  | ||||||
| 	"github.com/containerd/containerd/errdefs" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TestStoreErrAlreadyExistGRPCStatus(t *testing.T) { | func TestStoreErrAlreadyExistGRPCStatus(t *testing.T) { | ||||||
| 	err := errdefs.ToGRPC(ErrAlreadyExist) | 	err := errdefs.ToGRPC(errdefs.ErrAlreadyExists) | ||||||
| 	s, ok := status.FromError(err) | 	s, ok := status.FromError(err) | ||||||
| 	if !ok { | 	if !ok { | ||||||
| 		t.Fatalf("failed to convert err: %v to status: %d", err, codes.AlreadyExists) | 		t.Fatalf("failed to convert err: %v to status: %d", err, codes.AlreadyExists) | ||||||
| @@ -37,7 +37,7 @@ func TestStoreErrAlreadyExistGRPCStatus(t *testing.T) { | |||||||
| } | } | ||||||
|  |  | ||||||
| func TestStoreErrNotExistGRPCStatus(t *testing.T) { | func TestStoreErrNotExistGRPCStatus(t *testing.T) { | ||||||
| 	err := errdefs.ToGRPC(ErrNotExist) | 	err := errdefs.ToGRPC(errdefs.ErrNotFound) | ||||||
| 	s, ok := status.FromError(err) | 	s, ok := status.FromError(err) | ||||||
| 	if !ok { | 	if !ok { | ||||||
| 		t.Fatalf("failed to convert err: %v to status: %d", err, codes.NotFound) | 		t.Fatalf("failed to convert err: %v to status: %d", err, codes.NotFound) | ||||||
|   | |||||||
| @@ -24,14 +24,13 @@ import ( | |||||||
| 	"github.com/containerd/containerd" | 	"github.com/containerd/containerd" | ||||||
| 	"github.com/containerd/containerd/content" | 	"github.com/containerd/containerd/content" | ||||||
| 	"github.com/containerd/containerd/errdefs" | 	"github.com/containerd/containerd/errdefs" | ||||||
|  | 	"github.com/containerd/containerd/pkg/cri/util" | ||||||
|  |  | ||||||
| 	imagedigest "github.com/opencontainers/go-digest" | 	imagedigest "github.com/opencontainers/go-digest" | ||||||
| 	"github.com/opencontainers/go-digest/digestset" | 	"github.com/opencontainers/go-digest/digestset" | ||||||
| 	imageidentity "github.com/opencontainers/image-spec/identity" | 	imageidentity "github.com/opencontainers/image-spec/identity" | ||||||
| 	imagespec "github.com/opencontainers/image-spec/specs-go/v1" | 	imagespec "github.com/opencontainers/image-spec/specs-go/v1" | ||||||
| 	"github.com/pkg/errors" | 	"github.com/pkg/errors" | ||||||
|  |  | ||||||
| 	storeutil "github.com/containerd/containerd/pkg/cri/store" |  | ||||||
| 	"github.com/containerd/containerd/pkg/cri/util" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // Image contains all resources associated with the image. All fields | // Image contains all resources associated with the image. All fields | ||||||
| @@ -159,7 +158,7 @@ func (s *Store) Resolve(ref string) (string, error) { | |||||||
| 	defer s.lock.RUnlock() | 	defer s.lock.RUnlock() | ||||||
| 	id, ok := s.refCache[ref] | 	id, ok := s.refCache[ref] | ||||||
| 	if !ok { | 	if !ok { | ||||||
| 		return "", storeutil.ErrNotExist | 		return "", errdefs.ErrNotFound | ||||||
| 	} | 	} | ||||||
| 	return id, nil | 	return id, nil | ||||||
| } | } | ||||||
| @@ -222,14 +221,14 @@ func (s *store) get(id string) (Image, error) { | |||||||
| 	digest, err := s.digestSet.Lookup(id) | 	digest, err := s.digestSet.Lookup(id) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		if err == digestset.ErrDigestNotFound { | 		if err == digestset.ErrDigestNotFound { | ||||||
| 			err = storeutil.ErrNotExist | 			err = errdefs.ErrNotFound | ||||||
| 		} | 		} | ||||||
| 		return Image{}, err | 		return Image{}, err | ||||||
| 	} | 	} | ||||||
| 	if i, ok := s.images[digest.String()]; ok { | 	if i, ok := s.images[digest.String()]; ok { | ||||||
| 		return i, nil | 		return i, nil | ||||||
| 	} | 	} | ||||||
| 	return Image{}, storeutil.ErrNotExist | 	return Image{}, errdefs.ErrNotFound | ||||||
| } | } | ||||||
|  |  | ||||||
| func (s *store) delete(id, ref string) { | func (s *store) delete(id, ref string) { | ||||||
|   | |||||||
| @@ -21,10 +21,10 @@ import ( | |||||||
| 	"strings" | 	"strings" | ||||||
| 	"testing" | 	"testing" | ||||||
|  |  | ||||||
|  | 	"github.com/containerd/containerd/errdefs" | ||||||
|  |  | ||||||
| 	"github.com/opencontainers/go-digest/digestset" | 	"github.com/opencontainers/go-digest/digestset" | ||||||
| 	assertlib "github.com/stretchr/testify/assert" | 	assertlib "github.com/stretchr/testify/assert" | ||||||
|  |  | ||||||
| 	storeutil "github.com/containerd/containerd/pkg/cri/store" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TestInternalStore(t *testing.T) { | func TestInternalStore(t *testing.T) { | ||||||
| @@ -128,7 +128,7 @@ func TestInternalStore(t *testing.T) { | |||||||
| 		t.Logf("should be able to delete image") | 		t.Logf("should be able to delete image") | ||||||
| 		s.delete(truncID, newRef) | 		s.delete(truncID, newRef) | ||||||
| 		got, err = s.get(truncID) | 		got, err = s.get(truncID) | ||||||
| 		assert.Equal(storeutil.ErrNotExist, err) | 		assert.Equal(errdefs.ErrNotFound, err) | ||||||
| 		assert.Equal(Image{}, got) | 		assert.Equal(Image{}, got) | ||||||
|  |  | ||||||
| 		imageNum-- | 		imageNum-- | ||||||
| @@ -241,7 +241,7 @@ func TestImageStore(t *testing.T) { | |||||||
| 		if test.image == nil { | 		if test.image == nil { | ||||||
| 			// Shouldn't be able to index by removed ref. | 			// Shouldn't be able to index by removed ref. | ||||||
| 			id, err := s.Resolve(test.ref) | 			id, err := s.Resolve(test.ref) | ||||||
| 			assert.Equal(storeutil.ErrNotExist, err) | 			assert.Equal(errdefs.ErrNotFound, err) | ||||||
| 			assert.Empty(id) | 			assert.Empty(id) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -20,10 +20,10 @@ import ( | |||||||
| 	"sync" | 	"sync" | ||||||
|  |  | ||||||
| 	"github.com/containerd/containerd" | 	"github.com/containerd/containerd" | ||||||
|  | 	"github.com/containerd/containerd/errdefs" | ||||||
|  | 	"github.com/containerd/containerd/pkg/cri/store" | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store/label" | 	"github.com/containerd/containerd/pkg/cri/store/label" | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store/truncindex" | 	"github.com/containerd/containerd/pkg/cri/store/truncindex" | ||||||
|  |  | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store" |  | ||||||
| 	"github.com/containerd/containerd/pkg/netns" | 	"github.com/containerd/containerd/pkg/netns" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -80,7 +80,7 @@ func (s *Store) Add(sb Sandbox) error { | |||||||
| 	s.lock.Lock() | 	s.lock.Lock() | ||||||
| 	defer s.lock.Unlock() | 	defer s.lock.Unlock() | ||||||
| 	if _, ok := s.sandboxes[sb.ID]; ok { | 	if _, ok := s.sandboxes[sb.ID]; ok { | ||||||
| 		return store.ErrAlreadyExist | 		return errdefs.ErrAlreadyExists | ||||||
| 	} | 	} | ||||||
| 	if err := s.labels.Reserve(sb.ProcessLabel); err != nil { | 	if err := s.labels.Reserve(sb.ProcessLabel); err != nil { | ||||||
| 		return err | 		return err | ||||||
| @@ -100,14 +100,14 @@ func (s *Store) Get(id string) (Sandbox, error) { | |||||||
| 	id, err := s.idIndex.Get(id) | 	id, err := s.idIndex.Get(id) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		if err == truncindex.ErrNotExist { | 		if err == truncindex.ErrNotExist { | ||||||
| 			err = store.ErrNotExist | 			err = errdefs.ErrNotFound | ||||||
| 		} | 		} | ||||||
| 		return Sandbox{}, err | 		return Sandbox{}, err | ||||||
| 	} | 	} | ||||||
| 	if sb, ok := s.sandboxes[id]; ok { | 	if sb, ok := s.sandboxes[id]; ok { | ||||||
| 		return sb, nil | 		return sb, nil | ||||||
| 	} | 	} | ||||||
| 	return Sandbox{}, store.ErrNotExist | 	return Sandbox{}, errdefs.ErrNotFound | ||||||
| } | } | ||||||
|  |  | ||||||
| // List lists all sandboxes. | // List lists all sandboxes. | ||||||
|   | |||||||
| @@ -19,11 +19,11 @@ package sandbox | |||||||
| import ( | import ( | ||||||
| 	"testing" | 	"testing" | ||||||
|  |  | ||||||
|  | 	"github.com/containerd/containerd/errdefs" | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store/label" | 	"github.com/containerd/containerd/pkg/cri/store/label" | ||||||
|  |  | ||||||
| 	assertlib "github.com/stretchr/testify/assert" | 	assertlib "github.com/stretchr/testify/assert" | ||||||
| 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | 	runtime "k8s.io/cri-api/pkg/apis/runtime/v1" | ||||||
|  |  | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TestSandboxStore(t *testing.T) { | func TestSandboxStore(t *testing.T) { | ||||||
| @@ -140,7 +140,7 @@ func TestSandboxStore(t *testing.T) { | |||||||
| 		truncID := genTruncIndex(testID) | 		truncID := genTruncIndex(testID) | ||||||
|  |  | ||||||
| 		t.Logf("add should return already exists error for duplicated sandbox") | 		t.Logf("add should return already exists error for duplicated sandbox") | ||||||
| 		assert.Equal(store.ErrAlreadyExist, s.Add(v)) | 		assert.Equal(errdefs.ErrAlreadyExists, s.Add(v)) | ||||||
|  |  | ||||||
| 		t.Logf("should be able to delete sandbox") | 		t.Logf("should be able to delete sandbox") | ||||||
| 		s.Delete(truncID) | 		s.Delete(truncID) | ||||||
| @@ -151,6 +151,6 @@ func TestSandboxStore(t *testing.T) { | |||||||
| 		t.Logf("get should return not exist error after deletion") | 		t.Logf("get should return not exist error after deletion") | ||||||
| 		sb, err := s.Get(truncID) | 		sb, err := s.Get(truncID) | ||||||
| 		assert.Equal(Sandbox{}, sb) | 		assert.Equal(Sandbox{}, sb) | ||||||
| 		assert.Equal(store.ErrNotExist, err) | 		assert.Equal(errdefs.ErrNotFound, err) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|   | |||||||
| @@ -19,9 +19,8 @@ package snapshot | |||||||
| import ( | import ( | ||||||
| 	"sync" | 	"sync" | ||||||
|  |  | ||||||
|  | 	"github.com/containerd/containerd/errdefs" | ||||||
| 	snapshot "github.com/containerd/containerd/snapshots" | 	snapshot "github.com/containerd/containerd/snapshots" | ||||||
|  |  | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // Snapshot contains the information about the snapshot. | // Snapshot contains the information about the snapshot. | ||||||
| @@ -65,7 +64,7 @@ func (s *Store) Get(key string) (Snapshot, error) { | |||||||
| 	if sn, ok := s.snapshots[key]; ok { | 	if sn, ok := s.snapshots[key]; ok { | ||||||
| 		return sn, nil | 		return sn, nil | ||||||
| 	} | 	} | ||||||
| 	return Snapshot{}, store.ErrNotExist | 	return Snapshot{}, errdefs.ErrNotFound | ||||||
| } | } | ||||||
|  |  | ||||||
| // List lists all snapshots. | // List lists all snapshots. | ||||||
|   | |||||||
| @@ -20,10 +20,10 @@ import ( | |||||||
| 	"testing" | 	"testing" | ||||||
| 	"time" | 	"time" | ||||||
|  |  | ||||||
|  | 	"github.com/containerd/containerd/errdefs" | ||||||
| 	snapshot "github.com/containerd/containerd/snapshots" | 	snapshot "github.com/containerd/containerd/snapshots" | ||||||
| 	assertlib "github.com/stretchr/testify/assert" |  | ||||||
|  |  | ||||||
| 	"github.com/containerd/containerd/pkg/cri/store" | 	assertlib "github.com/stretchr/testify/assert" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TestSnapshotStore(t *testing.T) { | func TestSnapshotStore(t *testing.T) { | ||||||
| @@ -80,5 +80,5 @@ func TestSnapshotStore(t *testing.T) { | |||||||
| 	t.Logf("get should return empty struct and ErrNotExist after deletion") | 	t.Logf("get should return empty struct and ErrNotExist after deletion") | ||||||
| 	sn, err := s.Get(testKey) | 	sn, err := s.Get(testKey) | ||||||
| 	assert.Equal(Snapshot{}, sn) | 	assert.Equal(Snapshot{}, sn) | ||||||
| 	assert.Equal(store.ErrNotExist, err) | 	assert.Equal(errdefs.ErrNotFound, err) | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 zounengren
					zounengren