Update errdefs to 0.3.0
Uses the new github.com/containerd/errdefs/pkg module which is intended to hold less stable utility functions separately from the stable github.com/containerd/errdefs error types. Includes temporary update to hcsshim until a release is cut there Signed-off-by: Derek McGowan <derek@mcg.dev>
This commit is contained in:
@@ -22,13 +22,7 @@ import (
|
||||
|
||||
eventstypes "github.com/containerd/containerd/api/events"
|
||||
api "github.com/containerd/containerd/api/services/containers/v1"
|
||||
"github.com/containerd/containerd/v2/core/containers"
|
||||
"github.com/containerd/containerd/v2/core/events"
|
||||
"github.com/containerd/containerd/v2/core/metadata"
|
||||
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/containerd/v2/plugins/services"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/errdefs/pkg/errgrpc"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
bolt "go.etcd.io/bbolt"
|
||||
@@ -36,6 +30,13 @@ import (
|
||||
"google.golang.org/grpc/codes"
|
||||
grpcm "google.golang.org/grpc/metadata"
|
||||
"google.golang.org/grpc/status"
|
||||
|
||||
"github.com/containerd/containerd/v2/core/containers"
|
||||
"github.com/containerd/containerd/v2/core/events"
|
||||
"github.com/containerd/containerd/v2/core/metadata"
|
||||
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/containerd/v2/plugins/services"
|
||||
)
|
||||
|
||||
var empty = &ptypes.Empty{}
|
||||
@@ -79,7 +80,7 @@ var _ api.ContainersClient = &local{}
|
||||
func (l *local) Get(ctx context.Context, req *api.GetContainerRequest, _ ...grpc.CallOption) (*api.GetContainerResponse, error) {
|
||||
var resp api.GetContainerResponse
|
||||
|
||||
return &resp, errdefs.ToGRPC(l.withStoreView(ctx, func(ctx context.Context) error {
|
||||
return &resp, errgrpc.ToGRPC(l.withStoreView(ctx, func(ctx context.Context) error {
|
||||
container, err := l.Store.Get(ctx, req.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -93,7 +94,7 @@ func (l *local) Get(ctx context.Context, req *api.GetContainerRequest, _ ...grpc
|
||||
|
||||
func (l *local) List(ctx context.Context, req *api.ListContainersRequest, _ ...grpc.CallOption) (*api.ListContainersResponse, error) {
|
||||
var resp api.ListContainersResponse
|
||||
return &resp, errdefs.ToGRPC(l.withStoreView(ctx, func(ctx context.Context) error {
|
||||
return &resp, errgrpc.ToGRPC(l.withStoreView(ctx, func(ctx context.Context) error {
|
||||
containers, err := l.Store.List(ctx, req.Filters...)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -107,7 +108,7 @@ func (l *local) ListStream(ctx context.Context, req *api.ListContainersRequest,
|
||||
stream := &localStream{
|
||||
ctx: ctx,
|
||||
}
|
||||
return stream, errdefs.ToGRPC(l.withStoreView(ctx, func(ctx context.Context) error {
|
||||
return stream, errgrpc.ToGRPC(l.withStoreView(ctx, func(ctx context.Context) error {
|
||||
containers, err := l.Store.List(ctx, req.Filters...)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -132,7 +133,7 @@ func (l *local) Create(ctx context.Context, req *api.CreateContainerRequest, _ .
|
||||
|
||||
return nil
|
||||
}); err != nil {
|
||||
return &resp, errdefs.ToGRPC(err)
|
||||
return &resp, errgrpc.ToGRPC(err)
|
||||
}
|
||||
if err := l.publisher.Publish(ctx, "/containers/create", &eventstypes.ContainerCreate{
|
||||
ID: resp.Container.ID,
|
||||
@@ -171,7 +172,7 @@ func (l *local) Update(ctx context.Context, req *api.UpdateContainerRequest, _ .
|
||||
resp.Container = containerToProto(&updated)
|
||||
return nil
|
||||
}); err != nil {
|
||||
return &resp, errdefs.ToGRPC(err)
|
||||
return &resp, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
if err := l.publisher.Publish(ctx, "/containers/update", &eventstypes.ContainerUpdate{
|
||||
@@ -190,7 +191,7 @@ func (l *local) Delete(ctx context.Context, req *api.DeleteContainerRequest, _ .
|
||||
if err := l.withStoreUpdate(ctx, func(ctx context.Context) error {
|
||||
return l.Store.Delete(ctx, req.ID)
|
||||
}); err != nil {
|
||||
return empty, errdefs.ToGRPC(err)
|
||||
return empty, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
if err := l.publisher.Publish(ctx, "/containers/delete", &eventstypes.ContainerDelete{
|
||||
|
||||
@@ -23,16 +23,17 @@ import (
|
||||
"sync"
|
||||
|
||||
api "github.com/containerd/containerd/api/services/content/v1"
|
||||
"github.com/containerd/containerd/v2/core/content"
|
||||
"github.com/containerd/containerd/v2/pkg/protobuf"
|
||||
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/errdefs/pkg/errgrpc"
|
||||
"github.com/containerd/log"
|
||||
digest "github.com/opencontainers/go-digest"
|
||||
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
|
||||
"github.com/containerd/containerd/v2/core/content"
|
||||
"github.com/containerd/containerd/v2/pkg/protobuf"
|
||||
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
|
||||
)
|
||||
|
||||
type service struct {
|
||||
@@ -68,7 +69,7 @@ func (s *service) Info(ctx context.Context, req *api.InfoRequest) (*api.InfoResp
|
||||
|
||||
bi, err := s.store.Info(ctx, dg)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return &api.InfoResponse{
|
||||
@@ -84,7 +85,7 @@ func (s *service) Update(ctx context.Context, req *api.UpdateRequest) (*api.Upda
|
||||
|
||||
info, err := s.store.Update(ctx, infoFromGRPC(req.Info), req.UpdateMask.GetPaths()...)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return &api.UpdateResponse{
|
||||
@@ -116,7 +117,7 @@ func (s *service) List(req *api.ListContentRequest, session api.Content_ListServ
|
||||
|
||||
return nil
|
||||
}, req.Filters...); err != nil {
|
||||
return errdefs.ToGRPC(err)
|
||||
return errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
if len(buffer) > 0 {
|
||||
@@ -137,7 +138,7 @@ func (s *service) Delete(ctx context.Context, req *api.DeleteContentRequest) (*p
|
||||
}
|
||||
|
||||
if err := s.store.Delete(ctx, dg); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return empty, nil
|
||||
@@ -151,12 +152,12 @@ func (s *service) Read(req *api.ReadContentRequest, session api.Content_ReadServ
|
||||
|
||||
oi, err := s.store.Info(session.Context(), dg)
|
||||
if err != nil {
|
||||
return errdefs.ToGRPC(err)
|
||||
return errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
ra, err := s.store.ReaderAt(session.Context(), ocispec.Descriptor{Digest: dg})
|
||||
if err != nil {
|
||||
return errdefs.ToGRPC(err)
|
||||
return errgrpc.ToGRPC(err)
|
||||
}
|
||||
defer ra.Close()
|
||||
|
||||
@@ -187,7 +188,7 @@ func (s *service) Read(req *api.ReadContentRequest, session api.Content_ReadServ
|
||||
_, err = io.CopyBuffer(
|
||||
&readResponseWriter{session: session},
|
||||
io.NewSectionReader(ra, offset, size), *p)
|
||||
return errdefs.ToGRPC(err)
|
||||
return errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
// readResponseWriter is a writer that places the output into ReadContentRequest messages.
|
||||
@@ -214,7 +215,7 @@ func (rw *readResponseWriter) Write(p []byte) (n int, err error) {
|
||||
func (s *service) Status(ctx context.Context, req *api.StatusRequest) (*api.StatusResponse, error) {
|
||||
status, err := s.store.Status(ctx, req.Ref)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPCf(err, "could not get status for ref %q", req.Ref)
|
||||
return nil, errgrpc.ToGRPCf(err, "could not get status for ref %q", req.Ref)
|
||||
}
|
||||
|
||||
var resp api.StatusResponse
|
||||
@@ -233,7 +234,7 @@ func (s *service) Status(ctx context.Context, req *api.StatusRequest) (*api.Stat
|
||||
func (s *service) ListStatuses(ctx context.Context, req *api.ListStatusesRequest) (*api.ListStatusesResponse, error) {
|
||||
statuses, err := s.store.ListStatuses(ctx, req.Filters...)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
var resp api.ListStatusesResponse
|
||||
@@ -313,7 +314,7 @@ func (s *service) Write(session api.Content_WriteServer) (err error) {
|
||||
content.WithRef(ref),
|
||||
content.WithDescriptor(ocispec.Descriptor{Size: total, Digest: expected}))
|
||||
if err != nil {
|
||||
return errdefs.ToGRPC(err)
|
||||
return errgrpc.ToGRPC(err)
|
||||
}
|
||||
defer wr.Close()
|
||||
|
||||
@@ -321,7 +322,7 @@ func (s *service) Write(session api.Content_WriteServer) (err error) {
|
||||
msg.Action = req.Action
|
||||
ws, err := wr.Status()
|
||||
if err != nil {
|
||||
return errdefs.ToGRPC(err)
|
||||
return errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
msg.Offset = ws.Offset // always set the offset.
|
||||
@@ -398,7 +399,7 @@ func (s *service) Write(session api.Content_WriteServer) (err error) {
|
||||
// maintain the offset as append only, we just issue the write.
|
||||
n, err := wr.Write(req.Data)
|
||||
if err != nil {
|
||||
return errdefs.ToGRPC(err)
|
||||
return errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
if n != len(req.Data) {
|
||||
@@ -416,7 +417,7 @@ func (s *service) Write(session api.Content_WriteServer) (err error) {
|
||||
opts = append(opts, content.WithLabels(req.Labels))
|
||||
}
|
||||
if err := wr.Commit(ctx, total, expected, opts...); err != nil {
|
||||
return errdefs.ToGRPC(err)
|
||||
return errgrpc.ToGRPC(err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -444,7 +445,7 @@ func (s *service) Write(session api.Content_WriteServer) (err error) {
|
||||
|
||||
func (s *service) Abort(ctx context.Context, req *api.AbortRequest) (*ptypes.Empty, error) {
|
||||
if err := s.store.Abort(ctx, req.Ref); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return empty, nil
|
||||
|
||||
@@ -21,17 +21,19 @@ import (
|
||||
"fmt"
|
||||
|
||||
diffapi "github.com/containerd/containerd/api/services/diff/v1"
|
||||
"github.com/containerd/containerd/v2/core/diff"
|
||||
"github.com/containerd/containerd/v2/core/mount"
|
||||
"github.com/containerd/containerd/v2/pkg/oci"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/containerd/v2/plugins/services"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/errdefs/pkg/errgrpc"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
"github.com/containerd/typeurl/v2"
|
||||
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
|
||||
"google.golang.org/grpc"
|
||||
|
||||
"github.com/containerd/containerd/v2/core/diff"
|
||||
"github.com/containerd/containerd/v2/core/mount"
|
||||
"github.com/containerd/containerd/v2/pkg/oci"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/containerd/v2/plugins/services"
|
||||
)
|
||||
|
||||
type config struct {
|
||||
@@ -125,7 +127,7 @@ func (l *local) Apply(ctx context.Context, er *diffapi.ApplyRequest, _ ...grpc.C
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return &diffapi.ApplyResponse{
|
||||
@@ -164,7 +166,7 @@ func (l *local) Diff(ctx context.Context, dr *diffapi.DiffRequest, _ ...grpc.Cal
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return &diffapi.DiffResponse{
|
||||
|
||||
@@ -23,17 +23,18 @@ import (
|
||||
api "github.com/containerd/containerd/api/services/events/v1"
|
||||
apittrpc "github.com/containerd/containerd/api/services/ttrpc/events/v1"
|
||||
"github.com/containerd/containerd/api/types"
|
||||
"github.com/containerd/containerd/v2/core/events"
|
||||
"github.com/containerd/containerd/v2/core/events/exchange"
|
||||
"github.com/containerd/containerd/v2/pkg/protobuf"
|
||||
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/errdefs/pkg/errgrpc"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
"github.com/containerd/ttrpc"
|
||||
"github.com/containerd/typeurl/v2"
|
||||
"google.golang.org/grpc"
|
||||
|
||||
"github.com/containerd/containerd/v2/core/events"
|
||||
"github.com/containerd/containerd/v2/core/events/exchange"
|
||||
"github.com/containerd/containerd/v2/pkg/protobuf"
|
||||
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
)
|
||||
|
||||
var empty = &ptypes.Empty{}
|
||||
@@ -83,7 +84,7 @@ func (s *service) RegisterTTRPC(server *ttrpc.Server) error {
|
||||
|
||||
func (s *service) Publish(ctx context.Context, r *api.PublishRequest) (*ptypes.Empty, error) {
|
||||
if err := s.events.Publish(ctx, r.Topic, r.Event); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return empty, nil
|
||||
@@ -91,7 +92,7 @@ func (s *service) Publish(ctx context.Context, r *api.PublishRequest) (*ptypes.E
|
||||
|
||||
func (s *service) Forward(ctx context.Context, r *api.ForwardRequest) (*ptypes.Empty, error) {
|
||||
if err := s.events.Forward(ctx, fromProto(r.Envelope)); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return empty, nil
|
||||
|
||||
@@ -21,11 +21,12 @@ import (
|
||||
|
||||
api "github.com/containerd/containerd/api/services/ttrpc/events/v1"
|
||||
"github.com/containerd/containerd/api/types"
|
||||
"github.com/containerd/errdefs/pkg/errgrpc"
|
||||
|
||||
"github.com/containerd/containerd/v2/core/events"
|
||||
"github.com/containerd/containerd/v2/core/events/exchange"
|
||||
"github.com/containerd/containerd/v2/pkg/protobuf"
|
||||
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
|
||||
"github.com/containerd/errdefs"
|
||||
)
|
||||
|
||||
type ttrpcService struct {
|
||||
@@ -34,7 +35,7 @@ type ttrpcService struct {
|
||||
|
||||
func (s *ttrpcService) Forward(ctx context.Context, r *api.ForwardRequest) (*ptypes.Empty, error) {
|
||||
if err := s.events.Forward(ctx, fromTProto(r.Envelope)); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return empty, nil
|
||||
|
||||
@@ -19,12 +19,16 @@ package images
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/containerd/errdefs/pkg/errgrpc"
|
||||
"github.com/containerd/log"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
|
||||
imagesapi "github.com/containerd/containerd/api/services/images/v1"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
|
||||
"github.com/containerd/containerd/v2/core/images"
|
||||
"github.com/containerd/containerd/v2/core/metadata"
|
||||
"github.com/containerd/containerd/v2/pkg/deprecation"
|
||||
@@ -35,9 +39,6 @@ import (
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/containerd/v2/plugins/services"
|
||||
"github.com/containerd/containerd/v2/plugins/services/warning"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
)
|
||||
|
||||
var empty = &ptypes.Empty{}
|
||||
@@ -89,7 +90,7 @@ var _ imagesapi.ImagesClient = &local{}
|
||||
func (l *local) Get(ctx context.Context, req *imagesapi.GetImageRequest, _ ...grpc.CallOption) (*imagesapi.GetImageResponse, error) {
|
||||
image, err := l.store.Get(ctx, req.Name)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
imagepb := imageToProto(&image)
|
||||
@@ -101,7 +102,7 @@ func (l *local) Get(ctx context.Context, req *imagesapi.GetImageRequest, _ ...gr
|
||||
func (l *local) List(ctx context.Context, req *imagesapi.ListImagesRequest, _ ...grpc.CallOption) (*imagesapi.ListImagesResponse, error) {
|
||||
images, err := l.store.List(ctx, req.Filters...)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return &imagesapi.ListImagesResponse{
|
||||
@@ -125,7 +126,7 @@ func (l *local) Create(ctx context.Context, req *imagesapi.CreateImageRequest, _
|
||||
}
|
||||
created, err := l.store.Create(ctx, image)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
resp.Image = imageToProto(&created)
|
||||
@@ -157,7 +158,7 @@ func (l *local) Update(ctx context.Context, req *imagesapi.UpdateImageRequest, _
|
||||
|
||||
updated, err := l.store.Update(ctx, image, fieldpaths...)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
resp.Image = imageToProto(&updated)
|
||||
@@ -177,7 +178,7 @@ func (l *local) Delete(ctx context.Context, req *imagesapi.DeleteImageRequest, _
|
||||
|
||||
// Sync option handled here after event is published
|
||||
if err := l.store.Delete(ctx, req.Name, opts...); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
if req.Sync {
|
||||
|
||||
@@ -32,6 +32,12 @@ import (
|
||||
|
||||
api "github.com/containerd/containerd/api/services/introspection/v1"
|
||||
"github.com/containerd/containerd/api/types"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/errdefs/pkg/errgrpc"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
"github.com/containerd/typeurl/v2"
|
||||
|
||||
"github.com/containerd/containerd/v2/core/introspection"
|
||||
"github.com/containerd/containerd/v2/pkg/filters"
|
||||
"github.com/containerd/containerd/v2/pkg/protobuf"
|
||||
@@ -39,10 +45,6 @@ import (
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/containerd/v2/plugins/services"
|
||||
"github.com/containerd/containerd/v2/plugins/services/warning"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
"github.com/containerd/typeurl/v2"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -222,7 +224,7 @@ func pluginToPB(p *plugin.Plugin) *api.Plugin {
|
||||
|
||||
var initErr *rpc.Status
|
||||
if err := p.Err(); err != nil {
|
||||
st, ok := status.FromError(errdefs.ToGRPC(err))
|
||||
st, ok := status.FromError(errgrpc.ToGRPC(err))
|
||||
if ok {
|
||||
var details []*ptypes.Any
|
||||
for _, d := range st.Proto().Details {
|
||||
@@ -307,7 +309,7 @@ func (l *Local) PluginInfo(ctx context.Context, pluginType, id string, options a
|
||||
|
||||
info, err := pi.PluginInfo(ctx, options)
|
||||
if err != nil {
|
||||
return resp, errdefs.ToGRPC(err)
|
||||
return resp, errgrpc.ToGRPC(err)
|
||||
}
|
||||
ai, err := typeurl.MarshalAny(info)
|
||||
if err != nil {
|
||||
|
||||
@@ -22,15 +22,16 @@ import (
|
||||
"fmt"
|
||||
|
||||
api "github.com/containerd/containerd/api/services/introspection/v1"
|
||||
"github.com/containerd/containerd/v2/core/introspection"
|
||||
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/containerd/v2/plugins/services"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/errdefs/pkg/errgrpc"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
"github.com/containerd/typeurl/v2"
|
||||
"google.golang.org/grpc"
|
||||
|
||||
"github.com/containerd/containerd/v2/core/introspection"
|
||||
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/containerd/v2/plugins/services"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -71,12 +72,12 @@ func (s *server) Register(server *grpc.Server) error {
|
||||
|
||||
func (s *server) Plugins(ctx context.Context, req *api.PluginsRequest) (resp *api.PluginsResponse, err error) {
|
||||
resp, err = s.local.Plugins(ctx, req.Filters...)
|
||||
return resp, errdefs.ToGRPC(err)
|
||||
return resp, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
func (s *server) Server(ctx context.Context, _ *ptypes.Empty) (resp *api.ServerResponse, err error) {
|
||||
resp, err = s.local.Server(ctx)
|
||||
return resp, errdefs.ToGRPC(err)
|
||||
return resp, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
func (s *server) PluginInfo(ctx context.Context, req *api.PluginInfoRequest) (resp *api.PluginInfoResponse, err error) {
|
||||
@@ -84,10 +85,10 @@ func (s *server) PluginInfo(ctx context.Context, req *api.PluginInfoRequest) (re
|
||||
if req.Options != nil {
|
||||
options, err = typeurl.UnmarshalAny(req.Options)
|
||||
if err != nil {
|
||||
return resp, errdefs.ToGRPC(fmt.Errorf("failed to unmarshal plugin info Options: %w", err))
|
||||
return resp, errgrpc.ToGRPC(fmt.Errorf("failed to unmarshal plugin info Options: %w", err))
|
||||
}
|
||||
}
|
||||
|
||||
resp, err = s.local.PluginInfo(ctx, req.Type, req.ID, options)
|
||||
return resp, errdefs.ToGRPC(err)
|
||||
return resp, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
@@ -20,14 +20,15 @@ import (
|
||||
"context"
|
||||
|
||||
api "github.com/containerd/containerd/api/services/leases/v1"
|
||||
"github.com/containerd/errdefs/pkg/errgrpc"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
"google.golang.org/grpc"
|
||||
|
||||
"github.com/containerd/containerd/v2/core/leases"
|
||||
"github.com/containerd/containerd/v2/pkg/protobuf"
|
||||
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
"google.golang.org/grpc"
|
||||
)
|
||||
|
||||
var empty = &ptypes.Empty{}
|
||||
@@ -71,7 +72,7 @@ func (s *service) Create(ctx context.Context, r *api.CreateRequest) (*api.Create
|
||||
|
||||
l, err := s.lm.Create(ctx, opts...)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return &api.CreateResponse{
|
||||
@@ -87,7 +88,7 @@ func (s *service) Delete(ctx context.Context, r *api.DeleteRequest) (*ptypes.Emp
|
||||
if err := s.lm.Delete(ctx, leases.Lease{
|
||||
ID: r.ID,
|
||||
}, opts...); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return empty, nil
|
||||
}
|
||||
@@ -95,7 +96,7 @@ func (s *service) Delete(ctx context.Context, r *api.DeleteRequest) (*ptypes.Emp
|
||||
func (s *service) List(ctx context.Context, r *api.ListRequest) (*api.ListResponse, error) {
|
||||
l, err := s.lm.List(ctx, r.Filters...)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
apileases := make([]*api.Lease, len(l))
|
||||
@@ -117,7 +118,7 @@ func (s *service) AddResource(ctx context.Context, r *api.AddResourceRequest) (*
|
||||
ID: r.Resource.ID,
|
||||
Type: r.Resource.Type,
|
||||
}); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return empty, nil
|
||||
}
|
||||
@@ -131,7 +132,7 @@ func (s *service) DeleteResource(ctx context.Context, r *api.DeleteResourceReque
|
||||
ID: r.Resource.ID,
|
||||
Type: r.Resource.Type,
|
||||
}); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return empty, nil
|
||||
}
|
||||
@@ -143,7 +144,7 @@ func (s *service) ListResources(ctx context.Context, r *api.ListResourcesRequest
|
||||
|
||||
rs, err := s.lm.ListResources(ctx, lease)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
apiResources := make([]*api.Resource, 0, len(rs))
|
||||
|
||||
@@ -22,19 +22,20 @@ import (
|
||||
|
||||
eventstypes "github.com/containerd/containerd/api/events"
|
||||
api "github.com/containerd/containerd/api/services/namespaces/v1"
|
||||
"github.com/containerd/containerd/v2/core/events"
|
||||
"github.com/containerd/containerd/v2/core/metadata"
|
||||
"github.com/containerd/containerd/v2/pkg/namespaces"
|
||||
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/containerd/v2/plugins/services"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/errdefs/pkg/errgrpc"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
bolt "go.etcd.io/bbolt"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
|
||||
"github.com/containerd/containerd/v2/core/events"
|
||||
"github.com/containerd/containerd/v2/core/metadata"
|
||||
"github.com/containerd/containerd/v2/pkg/namespaces"
|
||||
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/containerd/v2/plugins/services"
|
||||
)
|
||||
|
||||
var empty = &ptypes.Empty{}
|
||||
@@ -80,7 +81,7 @@ func (l *local) Get(ctx context.Context, req *api.GetNamespaceRequest, _ ...grpc
|
||||
return &resp, l.withStoreView(ctx, func(ctx context.Context, store namespaces.Store) error {
|
||||
labels, err := store.Labels(ctx, req.Name)
|
||||
if err != nil {
|
||||
return errdefs.ToGRPC(err)
|
||||
return errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
resp.Namespace = &api.Namespace{
|
||||
@@ -106,7 +107,7 @@ func (l *local) List(ctx context.Context, req *api.ListNamespacesRequest, _ ...g
|
||||
if err != nil {
|
||||
// In general, this should be unlikely, since we are holding a
|
||||
// transaction to service this request.
|
||||
return errdefs.ToGRPC(err)
|
||||
return errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
resp.Namespaces = append(resp.Namespaces, &api.Namespace{
|
||||
@@ -124,7 +125,7 @@ func (l *local) Create(ctx context.Context, req *api.CreateNamespaceRequest, _ .
|
||||
|
||||
if err := l.withStoreUpdate(ctx, func(ctx context.Context, store namespaces.Store) error {
|
||||
if err := store.Create(ctx, req.Namespace.Name, req.Namespace.Labels); err != nil {
|
||||
return errdefs.ToGRPC(err)
|
||||
return errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
for k, v := range req.Namespace.Labels {
|
||||
@@ -171,7 +172,7 @@ func (l *local) Update(ctx context.Context, req *api.UpdateNamespaceRequest, _ .
|
||||
// get current set of labels
|
||||
labels, err := store.Labels(ctx, req.Namespace.Name)
|
||||
if err != nil {
|
||||
return errdefs.ToGRPC(err)
|
||||
return errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
for k := range labels {
|
||||
@@ -206,7 +207,7 @@ func (l *local) Update(ctx context.Context, req *api.UpdateNamespaceRequest, _ .
|
||||
|
||||
func (l *local) Delete(ctx context.Context, req *api.DeleteNamespaceRequest, _ ...grpc.CallOption) (*ptypes.Empty, error) {
|
||||
if err := l.withStoreUpdate(ctx, func(ctx context.Context, store namespaces.Store) error {
|
||||
return errdefs.ToGRPC(store.Delete(ctx, req.Name))
|
||||
return errgrpc.ToGRPC(store.Delete(ctx, req.Name))
|
||||
}); err != nil {
|
||||
return empty, err
|
||||
}
|
||||
|
||||
@@ -26,14 +26,16 @@ import (
|
||||
|
||||
eventtypes "github.com/containerd/containerd/api/events"
|
||||
api "github.com/containerd/containerd/api/services/sandbox/v1"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/errdefs/pkg/errgrpc"
|
||||
"github.com/containerd/log"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
|
||||
"github.com/containerd/containerd/v2/core/events"
|
||||
"github.com/containerd/containerd/v2/core/sandbox"
|
||||
"github.com/containerd/containerd/v2/pkg/protobuf"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/log"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -105,7 +107,7 @@ func (s *controllerService) Create(ctx context.Context, req *api.ControllerCreat
|
||||
// TODO: Rootfs
|
||||
ctrl, err := s.getController(req.Sandboxer)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
var sb sandbox.Sandbox
|
||||
if req.Sandbox != nil {
|
||||
@@ -115,13 +117,13 @@ func (s *controllerService) Create(ctx context.Context, req *api.ControllerCreat
|
||||
}
|
||||
err = ctrl.Create(ctx, sb, sandbox.WithOptions(req.GetOptions()))
|
||||
if err != nil {
|
||||
return &api.ControllerCreateResponse{}, errdefs.ToGRPC(err)
|
||||
return &api.ControllerCreateResponse{}, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
if err := s.publisher.Publish(ctx, "sandboxes/create", &eventtypes.SandboxCreate{
|
||||
SandboxID: req.GetSandboxID(),
|
||||
}); err != nil {
|
||||
return &api.ControllerCreateResponse{}, errdefs.ToGRPC(err)
|
||||
return &api.ControllerCreateResponse{}, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return &api.ControllerCreateResponse{
|
||||
@@ -133,17 +135,17 @@ func (s *controllerService) Start(ctx context.Context, req *api.ControllerStartR
|
||||
log.G(ctx).WithField("req", req).Debug("start sandbox")
|
||||
ctrl, err := s.getController(req.Sandboxer)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
inst, err := ctrl.Start(ctx, req.GetSandboxID())
|
||||
if err != nil {
|
||||
return &api.ControllerStartResponse{}, errdefs.ToGRPC(err)
|
||||
return &api.ControllerStartResponse{}, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
if err := s.publisher.Publish(ctx, "sandboxes/start", &eventtypes.SandboxStart{
|
||||
SandboxID: req.GetSandboxID(),
|
||||
}); err != nil {
|
||||
return &api.ControllerStartResponse{}, errdefs.ToGRPC(err)
|
||||
return &api.ControllerStartResponse{}, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return &api.ControllerStartResponse{
|
||||
@@ -158,20 +160,20 @@ func (s *controllerService) Stop(ctx context.Context, req *api.ControllerStopReq
|
||||
log.G(ctx).WithField("req", req).Debug("delete sandbox")
|
||||
ctrl, err := s.getController(req.Sandboxer)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return &api.ControllerStopResponse{}, errdefs.ToGRPC(ctrl.Stop(ctx, req.GetSandboxID(), sandbox.WithTimeout(time.Duration(req.TimeoutSecs)*time.Second)))
|
||||
return &api.ControllerStopResponse{}, errgrpc.ToGRPC(ctrl.Stop(ctx, req.GetSandboxID(), sandbox.WithTimeout(time.Duration(req.TimeoutSecs)*time.Second)))
|
||||
}
|
||||
|
||||
func (s *controllerService) Wait(ctx context.Context, req *api.ControllerWaitRequest) (*api.ControllerWaitResponse, error) {
|
||||
log.G(ctx).WithField("req", req).Debug("wait sandbox")
|
||||
ctrl, err := s.getController(req.Sandboxer)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
exitStatus, err := ctrl.Wait(ctx, req.GetSandboxID())
|
||||
if err != nil {
|
||||
return &api.ControllerWaitResponse{}, errdefs.ToGRPC(err)
|
||||
return &api.ControllerWaitResponse{}, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
if err := s.publisher.Publish(ctx, "sandboxes/exit", &eventtypes.SandboxExit{
|
||||
@@ -179,7 +181,7 @@ func (s *controllerService) Wait(ctx context.Context, req *api.ControllerWaitReq
|
||||
ExitStatus: exitStatus.ExitStatus,
|
||||
ExitedAt: protobuf.ToTimestamp(exitStatus.ExitedAt),
|
||||
}); err != nil {
|
||||
return &api.ControllerWaitResponse{}, errdefs.ToGRPC(err)
|
||||
return &api.ControllerWaitResponse{}, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return &api.ControllerWaitResponse{
|
||||
@@ -192,11 +194,11 @@ func (s *controllerService) Status(ctx context.Context, req *api.ControllerStatu
|
||||
log.G(ctx).WithField("req", req).Debug("sandbox status")
|
||||
ctrl, err := s.getController(req.Sandboxer)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
cstatus, err := ctrl.Status(ctx, req.GetSandboxID(), req.GetVerbose())
|
||||
if err != nil {
|
||||
return &api.ControllerStatusResponse{}, errdefs.ToGRPC(err)
|
||||
return &api.ControllerStatusResponse{}, errgrpc.ToGRPC(err)
|
||||
}
|
||||
extra := &anypb.Any{}
|
||||
if cstatus.Extra != nil {
|
||||
@@ -220,20 +222,20 @@ func (s *controllerService) Shutdown(ctx context.Context, req *api.ControllerShu
|
||||
log.G(ctx).WithField("req", req).Debug("shutdown sandbox")
|
||||
ctrl, err := s.getController(req.Sandboxer)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return &api.ControllerShutdownResponse{}, errdefs.ToGRPC(ctrl.Shutdown(ctx, req.GetSandboxID()))
|
||||
return &api.ControllerShutdownResponse{}, errgrpc.ToGRPC(ctrl.Shutdown(ctx, req.GetSandboxID()))
|
||||
}
|
||||
|
||||
func (s *controllerService) Metrics(ctx context.Context, req *api.ControllerMetricsRequest) (*api.ControllerMetricsResponse, error) {
|
||||
log.G(ctx).WithField("req", req).Debug("sandbox metrics")
|
||||
ctrl, err := s.getController(req.Sandboxer)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
metrics, err := ctrl.Metrics(ctx, req.GetSandboxID())
|
||||
if err != nil {
|
||||
return &api.ControllerMetricsResponse{}, errdefs.ToGRPC(err)
|
||||
return &api.ControllerMetricsResponse{}, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return &api.ControllerMetricsResponse{
|
||||
Metrics: metrics,
|
||||
@@ -246,14 +248,14 @@ func (s *controllerService) Update(
|
||||
log.G(ctx).WithField("req", req).Debug("sandbox update resource")
|
||||
ctrl, err := s.getController(req.Sandboxer)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
if req.Sandbox == nil {
|
||||
return nil, fmt.Errorf("sandbox can not be nil")
|
||||
}
|
||||
err = ctrl.Update(ctx, req.SandboxID, sandbox.FromProto(req.Sandbox), req.Fields...)
|
||||
if err != nil {
|
||||
return &api.ControllerUpdateResponse{}, errdefs.ToGRPC(err)
|
||||
return &api.ControllerUpdateResponse{}, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return &api.ControllerUpdateResponse{}, nil
|
||||
}
|
||||
|
||||
@@ -23,12 +23,13 @@ import (
|
||||
|
||||
api "github.com/containerd/containerd/api/services/sandbox/v1"
|
||||
"github.com/containerd/containerd/api/types"
|
||||
"github.com/containerd/containerd/v2/core/sandbox"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/errdefs/pkg/errgrpc"
|
||||
"github.com/containerd/log"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
|
||||
"github.com/containerd/containerd/v2/core/sandbox"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -65,7 +66,7 @@ func (s *sandboxService) Create(ctx context.Context, req *api.StoreCreateRequest
|
||||
log.G(ctx).WithField("req", req).Debug("create sandbox")
|
||||
sb, err := s.store.Create(ctx, sandbox.FromProto(req.Sandbox))
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return &api.StoreCreateResponse{Sandbox: sandbox.ToProto(&sb)}, nil
|
||||
@@ -76,7 +77,7 @@ func (s *sandboxService) Update(ctx context.Context, req *api.StoreUpdateRequest
|
||||
|
||||
sb, err := s.store.Update(ctx, sandbox.FromProto(req.Sandbox), req.Fields...)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return &api.StoreUpdateResponse{Sandbox: sandbox.ToProto(&sb)}, nil
|
||||
@@ -87,7 +88,7 @@ func (s *sandboxService) List(ctx context.Context, req *api.StoreListRequest) (*
|
||||
|
||||
resp, err := s.store.List(ctx, req.Filters...)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
list := make([]*types.Sandbox, len(resp))
|
||||
@@ -102,7 +103,7 @@ func (s *sandboxService) Get(ctx context.Context, req *api.StoreGetRequest) (*ap
|
||||
log.G(ctx).WithField("req", req).Debug("get sandbox")
|
||||
resp, err := s.store.Get(ctx, req.SandboxID)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
desc := sandbox.ToProto(&resp)
|
||||
@@ -112,7 +113,7 @@ func (s *sandboxService) Get(ctx context.Context, req *api.StoreGetRequest) (*ap
|
||||
func (s *sandboxService) Delete(ctx context.Context, req *api.StoreDeleteRequest) (*api.StoreDeleteResponse, error) {
|
||||
log.G(ctx).WithField("req", req).Debug("delete sandbox")
|
||||
if err := s.store.Delete(ctx, req.SandboxID); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return &api.StoreDeleteResponse{}, nil
|
||||
|
||||
@@ -20,17 +20,19 @@ import (
|
||||
"context"
|
||||
|
||||
snapshotsapi "github.com/containerd/containerd/api/services/snapshots/v1"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/errdefs/pkg/errgrpc"
|
||||
"github.com/containerd/log"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
"google.golang.org/grpc"
|
||||
|
||||
"github.com/containerd/containerd/v2/core/mount"
|
||||
"github.com/containerd/containerd/v2/core/snapshots"
|
||||
"github.com/containerd/containerd/v2/core/snapshots/proxy"
|
||||
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/containerd/v2/plugins/services"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/log"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
"google.golang.org/grpc"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -61,12 +63,12 @@ func newService(ic *plugin.InitContext) (interface{}, error) {
|
||||
|
||||
func (s *service) getSnapshotter(name string) (snapshots.Snapshotter, error) {
|
||||
if name == "" {
|
||||
return nil, errdefs.ToGRPCf(errdefs.ErrInvalidArgument, "snapshotter argument missing")
|
||||
return nil, errgrpc.ToGRPCf(errdefs.ErrInvalidArgument, "snapshotter argument missing")
|
||||
}
|
||||
|
||||
sn := s.ss[name]
|
||||
if sn == nil {
|
||||
return nil, errdefs.ToGRPCf(errdefs.ErrInvalidArgument, "snapshotter not loaded: %s", name)
|
||||
return nil, errgrpc.ToGRPCf(errdefs.ErrInvalidArgument, "snapshotter not loaded: %s", name)
|
||||
}
|
||||
return sn, nil
|
||||
}
|
||||
@@ -89,7 +91,7 @@ func (s *service) Prepare(ctx context.Context, pr *snapshotsapi.PrepareSnapshotR
|
||||
}
|
||||
mounts, err := sn.Prepare(ctx, pr.Key, pr.Parent, opts...)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return &snapshotsapi.PrepareSnapshotResponse{
|
||||
@@ -109,7 +111,7 @@ func (s *service) View(ctx context.Context, pr *snapshotsapi.ViewSnapshotRequest
|
||||
}
|
||||
mounts, err := sn.View(ctx, pr.Key, pr.Parent, opts...)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return &snapshotsapi.ViewSnapshotResponse{
|
||||
Mounts: mount.ToProto(mounts),
|
||||
@@ -125,7 +127,7 @@ func (s *service) Mounts(ctx context.Context, mr *snapshotsapi.MountsRequest) (*
|
||||
|
||||
mounts, err := sn.Mounts(ctx, mr.Key)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return &snapshotsapi.MountsResponse{
|
||||
Mounts: mount.ToProto(mounts),
|
||||
@@ -144,7 +146,7 @@ func (s *service) Commit(ctx context.Context, cr *snapshotsapi.CommitSnapshotReq
|
||||
opts = append(opts, snapshots.WithLabels(cr.Labels))
|
||||
}
|
||||
if err := sn.Commit(ctx, cr.Name, cr.Key, opts...); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return empty, nil
|
||||
@@ -158,7 +160,7 @@ func (s *service) Remove(ctx context.Context, rr *snapshotsapi.RemoveSnapshotReq
|
||||
}
|
||||
|
||||
if err := sn.Remove(ctx, rr.Key); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return empty, nil
|
||||
@@ -173,7 +175,7 @@ func (s *service) Stat(ctx context.Context, sr *snapshotsapi.StatSnapshotRequest
|
||||
|
||||
info, err := sn.Stat(ctx, sr.Key)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return &snapshotsapi.StatSnapshotResponse{Info: proxy.InfoToProto(info)}, nil
|
||||
@@ -188,7 +190,7 @@ func (s *service) Update(ctx context.Context, sr *snapshotsapi.UpdateSnapshotReq
|
||||
|
||||
info, err := sn.Update(ctx, proxy.InfoFromProto(sr.Info), sr.UpdateMask.GetPaths()...)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return &snapshotsapi.UpdateSnapshotResponse{Info: proxy.InfoToProto(info)}, nil
|
||||
@@ -242,7 +244,7 @@ func (s *service) Usage(ctx context.Context, ur *snapshotsapi.UsageRequest) (*sn
|
||||
|
||||
usage, err := sn.Usage(ctx, ur.Key)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return proxy.UsageToProto(usage), nil
|
||||
@@ -256,12 +258,12 @@ func (s *service) Cleanup(ctx context.Context, cr *snapshotsapi.CleanupRequest)
|
||||
|
||||
c, ok := sn.(snapshots.Cleaner)
|
||||
if !ok {
|
||||
return nil, errdefs.ToGRPCf(errdefs.ErrNotImplemented, "snapshotter does not implement Cleanup method")
|
||||
return nil, errgrpc.ToGRPCf(errdefs.ErrNotImplemented, "snapshotter does not implement Cleanup method")
|
||||
}
|
||||
|
||||
err = c.Cleanup(ctx)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return empty, nil
|
||||
|
||||
@@ -21,15 +21,16 @@ import (
|
||||
"io"
|
||||
|
||||
api "github.com/containerd/containerd/api/services/streaming/v1"
|
||||
"github.com/containerd/containerd/v2/core/streaming"
|
||||
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/errdefs/pkg/errgrpc"
|
||||
"github.com/containerd/log"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
"github.com/containerd/typeurl/v2"
|
||||
"google.golang.org/grpc"
|
||||
|
||||
"github.com/containerd/containerd/v2/core/streaming"
|
||||
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
)
|
||||
|
||||
var emptyResponse typeurl.Any
|
||||
@@ -110,9 +111,9 @@ type serviceStream struct {
|
||||
}
|
||||
|
||||
func (ss *serviceStream) Send(a typeurl.Any) (err error) {
|
||||
err = errdefs.FromGRPC(ss.s.Send(typeurl.MarshalProto(a)))
|
||||
err = errgrpc.ToNative(ss.s.Send(typeurl.MarshalProto(a)))
|
||||
if !errors.Is(err, io.EOF) {
|
||||
err = errdefs.FromGRPC(err)
|
||||
err = errgrpc.ToNative(err)
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -120,7 +121,7 @@ func (ss *serviceStream) Send(a typeurl.Any) (err error) {
|
||||
func (ss *serviceStream) Recv() (a typeurl.Any, err error) {
|
||||
a, err = ss.s.Recv()
|
||||
if !errors.Is(err, io.EOF) {
|
||||
err = errdefs.FromGRPC(err)
|
||||
err = errgrpc.ToNative(err)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -30,6 +30,18 @@ import (
|
||||
"github.com/containerd/containerd/api/types"
|
||||
"github.com/containerd/containerd/api/types/runc/options"
|
||||
"github.com/containerd/containerd/api/types/task"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/errdefs/pkg/errgrpc"
|
||||
"github.com/containerd/log"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
"github.com/containerd/typeurl/v2"
|
||||
"github.com/opencontainers/go-digest"
|
||||
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
|
||||
"github.com/containerd/containerd/v2/core/containers"
|
||||
"github.com/containerd/containerd/v2/core/content"
|
||||
"github.com/containerd/containerd/v2/core/events"
|
||||
@@ -47,16 +59,6 @@ import (
|
||||
"github.com/containerd/containerd/v2/pkg/timeout"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/containerd/v2/plugins/services"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/log"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
"github.com/containerd/typeurl/v2"
|
||||
"github.com/opencontainers/go-digest"
|
||||
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -153,7 +155,7 @@ type local struct {
|
||||
func (l *local) Create(ctx context.Context, r *api.CreateTaskRequest, _ ...grpc.CallOption) (*api.CreateTaskResponse, error) {
|
||||
container, err := l.getContainer(ctx, r.ContainerID)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
var (
|
||||
@@ -228,14 +230,14 @@ func (l *local) Create(ctx context.Context, r *api.CreateTaskRequest, _ ...grpc.
|
||||
|
||||
_, err = rtime.Get(ctx, r.ContainerID)
|
||||
if err != nil && !errdefs.IsNotFound(err) {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
if err == nil {
|
||||
return nil, errdefs.ToGRPC(fmt.Errorf("task %s: %w", r.ContainerID, errdefs.ErrAlreadyExists))
|
||||
return nil, errgrpc.ToGRPC(fmt.Errorf("task %s: %w", r.ContainerID, errdefs.ErrAlreadyExists))
|
||||
}
|
||||
c, err := rtime.Create(ctx, r.ContainerID, opts)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
labels := map[string]string{"runtime": container.Runtime.Name}
|
||||
if err := l.monitor.Monitor(c, labels); err != nil {
|
||||
@@ -259,15 +261,15 @@ func (l *local) Start(ctx context.Context, r *api.StartRequest, _ ...grpc.CallOp
|
||||
p := runtime.Process(t)
|
||||
if r.ExecID != "" {
|
||||
if p, err = t.Process(ctx, r.ExecID); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
}
|
||||
if err := p.Start(ctx); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
state, err := p.State(ctx)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return &api.StartResponse{
|
||||
Pid: state.Pid,
|
||||
@@ -292,7 +294,7 @@ func (l *local) Delete(ctx context.Context, r *api.DeleteTaskRequest, _ ...grpc.
|
||||
|
||||
exit, err := l.v2Runtime.Delete(ctx, r.ContainerID)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
return &api.DeleteResponse{
|
||||
@@ -309,11 +311,11 @@ func (l *local) DeleteProcess(ctx context.Context, r *api.DeleteProcessRequest,
|
||||
}
|
||||
process, err := t.Process(ctx, r.ExecID)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
exit, err := process.Delete(ctx)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return &api.DeleteResponse{
|
||||
ID: r.ExecID,
|
||||
@@ -370,12 +372,12 @@ func (l *local) Get(ctx context.Context, r *api.GetRequest, _ ...grpc.CallOption
|
||||
p := runtime.Process(task)
|
||||
if r.ExecID != "" {
|
||||
if p, err = task.Process(ctx, r.ExecID); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
}
|
||||
t, err := getProcessState(ctx, p)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return &api.GetResponse{
|
||||
Process: t,
|
||||
@@ -386,7 +388,7 @@ func (l *local) List(ctx context.Context, r *api.ListTasksRequest, _ ...grpc.Cal
|
||||
resp := &api.ListTasksResponse{}
|
||||
tasks, err := l.v2Runtime.Tasks(ctx, false)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
addTasks(ctx, resp, tasks)
|
||||
return resp, nil
|
||||
@@ -412,7 +414,7 @@ func (l *local) Pause(ctx context.Context, r *api.PauseTaskRequest, _ ...grpc.Ca
|
||||
}
|
||||
err = t.Pause(ctx)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return empty, nil
|
||||
}
|
||||
@@ -424,7 +426,7 @@ func (l *local) Resume(ctx context.Context, r *api.ResumeTaskRequest, _ ...grpc.
|
||||
}
|
||||
err = t.Resume(ctx)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return empty, nil
|
||||
}
|
||||
@@ -437,11 +439,11 @@ func (l *local) Kill(ctx context.Context, r *api.KillRequest, _ ...grpc.CallOpti
|
||||
p := runtime.Process(t)
|
||||
if r.ExecID != "" {
|
||||
if p, err = t.Process(ctx, r.ExecID); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
}
|
||||
if err := p.Kill(ctx, r.Signal, r.All); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return empty, nil
|
||||
}
|
||||
@@ -453,7 +455,7 @@ func (l *local) ListPids(ctx context.Context, r *api.ListPidsRequest, _ ...grpc.
|
||||
}
|
||||
processList, err := t.Pids(ctx)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
var processes []*task.ProcessInfo
|
||||
for _, p := range processList {
|
||||
@@ -491,7 +493,7 @@ func (l *local) Exec(ctx context.Context, r *api.ExecProcessRequest, _ ...grpc.C
|
||||
Terminal: r.Terminal,
|
||||
},
|
||||
}); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return empty, nil
|
||||
}
|
||||
@@ -504,14 +506,14 @@ func (l *local) ResizePty(ctx context.Context, r *api.ResizePtyRequest, _ ...grp
|
||||
p := runtime.Process(t)
|
||||
if r.ExecID != "" {
|
||||
if p, err = t.Process(ctx, r.ExecID); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
}
|
||||
if err := p.ResizePty(ctx, runtime.ConsoleSize{
|
||||
Width: r.Width,
|
||||
Height: r.Height,
|
||||
}); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return empty, nil
|
||||
}
|
||||
@@ -524,12 +526,12 @@ func (l *local) CloseIO(ctx context.Context, r *api.CloseIORequest, _ ...grpc.Ca
|
||||
p := runtime.Process(t)
|
||||
if r.ExecID != "" {
|
||||
if p, err = t.Process(ctx, r.ExecID); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
}
|
||||
if r.Stdin {
|
||||
if err := p.CloseIO(ctx); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
}
|
||||
return empty, nil
|
||||
@@ -553,12 +555,12 @@ func (l *local) Checkpoint(ctx context.Context, r *api.CheckpointTaskRequest, _
|
||||
checkpointImageExists = true
|
||||
image, err = os.MkdirTemp(os.Getenv("XDG_RUNTIME_DIR"), "ctrd-checkpoint")
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
defer os.RemoveAll(image)
|
||||
}
|
||||
if err := t.Checkpoint(ctx, image, r.Options); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
// do not commit checkpoint image if checkpoint ImagePath is passed,
|
||||
// return if checkpointImageExists is false
|
||||
@@ -584,7 +586,7 @@ func (l *local) Checkpoint(ctx context.Context, r *api.CheckpointTaskRequest, _
|
||||
spec := bytes.NewReader(data)
|
||||
specD, err := l.writeContent(ctx, images.MediaTypeContainerd1CheckpointConfig, filepath.Join(image, "spec"), spec)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return &api.CheckpointTaskResponse{
|
||||
Descriptors: []*types.Descriptor{
|
||||
@@ -600,7 +602,7 @@ func (l *local) Update(ctx context.Context, r *api.UpdateTaskRequest, _ ...grpc.
|
||||
return nil, err
|
||||
}
|
||||
if err := t.Update(ctx, r.Resources, r.Annotations); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return empty, nil
|
||||
}
|
||||
@@ -627,12 +629,12 @@ func (l *local) Wait(ctx context.Context, r *api.WaitRequest, _ ...grpc.CallOpti
|
||||
p := runtime.Process(t)
|
||||
if r.ExecID != "" {
|
||||
if p, err = t.Process(ctx, r.ExecID); err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
}
|
||||
exit, err := p.Wait(ctx)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return &api.WaitResponse{
|
||||
ExitStatus: exit.Status,
|
||||
@@ -697,7 +699,7 @@ func (l *local) getContainer(ctx context.Context, id string) (*containers.Contai
|
||||
var container containers.Container
|
||||
container, err := l.containers.Get(ctx, id)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
return &container, nil
|
||||
}
|
||||
|
||||
@@ -22,13 +22,8 @@ import (
|
||||
transferapi "github.com/containerd/containerd/api/services/transfer/v1"
|
||||
"github.com/containerd/containerd/api/types"
|
||||
transferTypes "github.com/containerd/containerd/api/types/transfer"
|
||||
"github.com/containerd/containerd/v2/core/streaming"
|
||||
"github.com/containerd/containerd/v2/core/transfer"
|
||||
tplugins "github.com/containerd/containerd/v2/core/transfer/plugins"
|
||||
"github.com/containerd/containerd/v2/pkg/oci"
|
||||
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/errdefs"
|
||||
"github.com/containerd/errdefs/pkg/errgrpc"
|
||||
"github.com/containerd/log"
|
||||
"github.com/containerd/plugin"
|
||||
"github.com/containerd/plugin/registry"
|
||||
@@ -37,6 +32,13 @@ import (
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
"google.golang.org/protobuf/types/known/emptypb"
|
||||
|
||||
"github.com/containerd/containerd/v2/core/streaming"
|
||||
"github.com/containerd/containerd/v2/core/transfer"
|
||||
tplugins "github.com/containerd/containerd/v2/core/transfer/plugins"
|
||||
"github.com/containerd/containerd/v2/pkg/oci"
|
||||
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
)
|
||||
|
||||
var empty = &ptypes.Empty{}
|
||||
@@ -91,7 +93,7 @@ func (s *service) Transfer(ctx context.Context, req *transferapi.TransferRequest
|
||||
if req.Options.ProgressStream != "" {
|
||||
stream, err := s.streamManager.Get(ctx, req.Options.ProgressStream)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
defer stream.Close()
|
||||
|
||||
@@ -123,18 +125,18 @@ func (s *service) Transfer(ctx context.Context, req *transferapi.TransferRequest
|
||||
}
|
||||
src, err := s.convertAny(ctx, req.Source)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
dst, err := s.convertAny(ctx, req.Destination)
|
||||
if err != nil {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
|
||||
for _, t := range s.transferrers {
|
||||
if err := t.Transfer(ctx, src, dst, transferOpts...); err == nil {
|
||||
return empty, nil
|
||||
} else if !errdefs.IsNotImplemented(err) {
|
||||
return nil, errdefs.ToGRPC(err)
|
||||
return nil, errgrpc.ToGRPC(err)
|
||||
}
|
||||
}
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Transfer not implemented for %s to %s", req.Source.GetTypeUrl(), req.Destination.GetTypeUrl())
|
||||
|
||||
Reference in New Issue
Block a user