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:
Derek McGowan
2024-10-18 15:57:27 -07:00
parent b291eb802b
commit 2f24aa00a5
61 changed files with 2054 additions and 529 deletions

View File

@@ -22,15 +22,17 @@ import (
"io"
contentapi "github.com/containerd/containerd/api/services/content/v1"
"github.com/containerd/containerd/v2/core/content"
"github.com/containerd/containerd/v2/pkg/protobuf"
protobuftypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
"github.com/containerd/errdefs"
"github.com/containerd/errdefs/pkg/errgrpc"
"github.com/containerd/ttrpc"
digest "github.com/opencontainers/go-digest"
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
"google.golang.org/grpc"
"google.golang.org/protobuf/types/known/emptypb"
"github.com/containerd/containerd/v2/core/content"
"github.com/containerd/containerd/v2/pkg/protobuf"
protobuftypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
)
type proxyContentStore struct {
@@ -69,7 +71,7 @@ func (pcs *proxyContentStore) Info(ctx context.Context, dgst digest.Digest) (con
Digest: dgst.String(),
})
if err != nil {
return content.Info{}, errdefs.FromGRPC(err)
return content.Info{}, errgrpc.ToNative(err)
}
return infoFromGRPC(resp.Info), nil
@@ -80,14 +82,14 @@ func (pcs *proxyContentStore) Walk(ctx context.Context, fn content.WalkFunc, fil
Filters: filters,
})
if err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
for {
msg, err := session.Recv()
if err != nil {
if err != io.EOF {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
break
@@ -107,7 +109,7 @@ func (pcs *proxyContentStore) Delete(ctx context.Context, dgst digest.Digest) er
if _, err := pcs.client.Delete(ctx, &contentapi.DeleteContentRequest{
Digest: dgst.String(),
}); err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
@@ -133,7 +135,7 @@ func (pcs *proxyContentStore) Status(ctx context.Context, ref string) (content.S
Ref: ref,
})
if err != nil {
return content.Status{}, errdefs.FromGRPC(err)
return content.Status{}, errgrpc.ToNative(err)
}
status := resp.Status
@@ -155,7 +157,7 @@ func (pcs *proxyContentStore) Update(ctx context.Context, info content.Info, fie
},
})
if err != nil {
return content.Info{}, errdefs.FromGRPC(err)
return content.Info{}, errgrpc.ToNative(err)
}
return infoFromGRPC(resp.Info), nil
}
@@ -165,7 +167,7 @@ func (pcs *proxyContentStore) ListStatuses(ctx context.Context, filters ...strin
Filters: filters,
})
if err != nil {
return nil, errdefs.FromGRPC(err)
return nil, errgrpc.ToNative(err)
}
var statuses []content.Status
@@ -193,7 +195,7 @@ func (pcs *proxyContentStore) Writer(ctx context.Context, opts ...content.Writer
}
wrclient, offset, err := pcs.negotiate(ctx, wOpts.Ref, wOpts.Desc.Size, wOpts.Desc.Digest)
if err != nil {
return nil, errdefs.FromGRPC(err)
return nil, errgrpc.ToNative(err)
}
return &remoteWriter{
@@ -208,7 +210,7 @@ func (pcs *proxyContentStore) Abort(ctx context.Context, ref string) error {
if _, err := pcs.client.Abort(ctx, &contentapi.AbortRequest{
Ref: ref,
}); err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil

View File

@@ -22,10 +22,11 @@ import (
"io"
contentapi "github.com/containerd/containerd/api/services/content/v1"
"github.com/containerd/errdefs/pkg/errgrpc"
digest "github.com/opencontainers/go-digest"
"github.com/containerd/containerd/v2/core/content"
"github.com/containerd/containerd/v2/pkg/protobuf"
"github.com/containerd/errdefs"
digest "github.com/opencontainers/go-digest"
)
type remoteWriter struct {
@@ -58,7 +59,7 @@ func (rw *remoteWriter) Status() (content.Status, error) {
Action: contentapi.WriteAction_STAT,
})
if err != nil {
return content.Status{}, fmt.Errorf("error getting writer status: %w", errdefs.FromGRPC(err))
return content.Status{}, fmt.Errorf("error getting writer status: %w", errgrpc.ToNative(err))
}
return content.Status{
@@ -83,7 +84,7 @@ func (rw *remoteWriter) Write(p []byte) (n int, err error) {
Data: p,
})
if err != nil {
return 0, fmt.Errorf("failed to send write: %w", errdefs.FromGRPC(err))
return 0, fmt.Errorf("failed to send write: %w", errgrpc.ToNative(err))
}
n = int(resp.Offset - offset)
@@ -120,7 +121,7 @@ func (rw *remoteWriter) Commit(ctx context.Context, size int64, expected digest.
Labels: base.Labels,
})
if err != nil {
return fmt.Errorf("commit failed: %w", errdefs.FromGRPC(err))
return fmt.Errorf("commit failed: %w", errgrpc.ToNative(err))
}
if size != 0 && resp.Offset != size {

View File

@@ -20,15 +20,16 @@ import (
"context"
diffapi "github.com/containerd/containerd/api/services/diff/v1"
"github.com/containerd/errdefs/pkg/errgrpc"
"github.com/containerd/typeurl/v2"
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
"google.golang.org/protobuf/types/known/timestamppb"
"github.com/containerd/containerd/v2/core/diff"
"github.com/containerd/containerd/v2/core/mount"
"github.com/containerd/containerd/v2/pkg/epoch"
"github.com/containerd/containerd/v2/pkg/oci"
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
"github.com/containerd/errdefs"
"github.com/containerd/typeurl/v2"
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
"google.golang.org/protobuf/types/known/timestamppb"
)
// NewDiffApplier returns a new comparer and applier which communicates
@@ -64,7 +65,7 @@ func (r *diffRemote) Apply(ctx context.Context, desc ocispec.Descriptor, mounts
}
resp, err := r.client.Apply(ctx, req)
if err != nil {
return ocispec.Descriptor{}, errdefs.FromGRPC(err)
return ocispec.Descriptor{}, errgrpc.ToNative(err)
}
return oci.DescriptorFromProto(resp.Applied), nil
}
@@ -93,7 +94,7 @@ func (r *diffRemote) Compare(ctx context.Context, a, b []mount.Mount, opts ...di
}
resp, err := r.client.Diff(ctx, req)
if err != nil {
return ocispec.Descriptor{}, errdefs.FromGRPC(err)
return ocispec.Descriptor{}, errgrpc.ToNative(err)
}
return oci.DescriptorFromProto(resp.Diff), nil
}

View File

@@ -22,12 +22,14 @@ import (
api "github.com/containerd/containerd/api/services/events/v1"
"github.com/containerd/containerd/api/types"
"github.com/containerd/containerd/v2/core/events"
"github.com/containerd/containerd/v2/pkg/protobuf"
"github.com/containerd/errdefs"
"github.com/containerd/errdefs/pkg/errgrpc"
"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/pkg/protobuf"
)
type EventService interface {
@@ -73,7 +75,7 @@ func (p *grpcEventsProxy) Publish(ctx context.Context, topic string, event event
Event: typeurl.MarshalProto(evt),
}
if _, err := p.client.Publish(ctx, req); err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
}
@@ -88,7 +90,7 @@ func (p *grpcEventsProxy) Forward(ctx context.Context, envelope *events.Envelope
},
}
if _, err := p.client.Forward(ctx, req); err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
}
@@ -154,7 +156,7 @@ func (p *ttrpcEventsProxy) Publish(ctx context.Context, topic string, event even
Event: typeurl.MarshalProto(evt),
}
if _, err := p.client.Publish(ctx, req); err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
}
@@ -169,7 +171,7 @@ func (p *ttrpcEventsProxy) Forward(ctx context.Context, envelope *events.Envelop
},
}
if _, err := p.client.Forward(ctx, req); err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
}

View File

@@ -21,14 +21,16 @@ import (
"fmt"
api "github.com/containerd/containerd/api/services/introspection/v1"
"github.com/containerd/containerd/v2/core/introspection"
"github.com/containerd/errdefs"
"github.com/containerd/errdefs/pkg/errgrpc"
"github.com/containerd/log"
"github.com/containerd/ttrpc"
"github.com/containerd/typeurl/v2"
"google.golang.org/grpc"
"google.golang.org/protobuf/types/known/anypb"
"google.golang.org/protobuf/types/known/emptypb"
"github.com/containerd/containerd/v2/core/introspection"
)
var _ = (introspection.Service)(&introspectionRemote{})
@@ -60,7 +62,7 @@ func (i *introspectionRemote) Plugins(ctx context.Context, filters ...string) (*
})
if err != nil {
return nil, errdefs.FromGRPC(err)
return nil, errgrpc.ToNative(err)
}
return resp, nil
@@ -70,7 +72,7 @@ func (i *introspectionRemote) Server(ctx context.Context) (*api.ServerResponse,
resp, err := i.client.Server(ctx, &emptypb.Empty{})
if err != nil {
return nil, errdefs.FromGRPC(err)
return nil, errgrpc.ToNative(err)
}
return resp, nil
@@ -90,7 +92,7 @@ func (i *introspectionRemote) PluginInfo(ctx context.Context, pluginType, id str
Options: optionsPB,
})
return resp, errdefs.FromGRPC(err)
return resp, errgrpc.ToNative(err)
}
type convertIntrospection struct {

View File

@@ -20,9 +20,10 @@ import (
"context"
leasesapi "github.com/containerd/containerd/api/services/leases/v1"
"github.com/containerd/errdefs/pkg/errgrpc"
"github.com/containerd/containerd/v2/core/leases"
"github.com/containerd/containerd/v2/pkg/protobuf"
"github.com/containerd/errdefs"
)
type proxyManager struct {
@@ -49,7 +50,7 @@ func (pm *proxyManager) Create(ctx context.Context, opts ...leases.Opt) (leases.
Labels: l.Labels,
})
if err != nil {
return leases.Lease{}, errdefs.FromGRPC(err)
return leases.Lease{}, errgrpc.ToNative(err)
}
return leases.Lease{
@@ -71,7 +72,7 @@ func (pm *proxyManager) Delete(ctx context.Context, l leases.Lease, opts ...leas
ID: l.ID,
Sync: do.Synchronous,
})
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
func (pm *proxyManager) List(ctx context.Context, filters ...string) ([]leases.Lease, error) {
@@ -79,7 +80,7 @@ func (pm *proxyManager) List(ctx context.Context, filters ...string) ([]leases.L
Filters: filters,
})
if err != nil {
return nil, errdefs.FromGRPC(err)
return nil, errgrpc.ToNative(err)
}
l := make([]leases.Lease, len(resp.Leases))
for i := range resp.Leases {
@@ -101,7 +102,7 @@ func (pm *proxyManager) AddResource(ctx context.Context, lease leases.Lease, r l
Type: r.Type,
},
})
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
func (pm *proxyManager) DeleteResource(ctx context.Context, lease leases.Lease, r leases.Resource) error {
@@ -112,7 +113,7 @@ func (pm *proxyManager) DeleteResource(ctx context.Context, lease leases.Lease,
Type: r.Type,
},
})
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
func (pm *proxyManager) ListResources(ctx context.Context, lease leases.Lease) ([]leases.Resource, error) {
@@ -120,7 +121,7 @@ func (pm *proxyManager) ListResources(ctx context.Context, lease leases.Lease) (
ID: lease.ID,
})
if err != nil {
return nil, errdefs.FromGRPC(err)
return nil, errgrpc.ToNative(err)
}
rs := make([]leases.Resource, 0, len(resp.Resources))

View File

@@ -22,10 +22,12 @@ import (
task "github.com/containerd/containerd/api/runtime/task/v3"
tasktypes "github.com/containerd/containerd/api/types/task"
"github.com/containerd/errdefs"
"github.com/containerd/errdefs/pkg/errgrpc"
"github.com/containerd/ttrpc"
"github.com/containerd/containerd/v2/core/runtime"
"github.com/containerd/containerd/v2/pkg/protobuf"
"github.com/containerd/errdefs"
"github.com/containerd/ttrpc"
)
type process struct {
@@ -44,7 +46,7 @@ func (p *process) Kill(ctx context.Context, signal uint32, _ bool) error {
ExecID: p.id,
})
if err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
}
@@ -73,7 +75,7 @@ func (p *process) State(ctx context.Context) (runtime.State, error) {
})
if err != nil {
if !errors.Is(err, ttrpc.ErrClosed) {
return runtime.State{}, errdefs.FromGRPC(err)
return runtime.State{}, errgrpc.ToNative(err)
}
return runtime.State{}, errdefs.ErrNotFound
}
@@ -98,7 +100,7 @@ func (p *process) ResizePty(ctx context.Context, size runtime.ConsoleSize) error
Height: size.Height,
})
if err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
}
@@ -111,7 +113,7 @@ func (p *process) CloseIO(ctx context.Context) error {
Stdin: true,
})
if err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
}
@@ -123,7 +125,7 @@ func (p *process) Start(ctx context.Context) error {
ExecID: p.id,
})
if err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
}
@@ -135,7 +137,7 @@ func (p *process) Wait(ctx context.Context) (*runtime.Exit, error) {
ExecID: p.id,
})
if err != nil {
return nil, errdefs.FromGRPC(err)
return nil, errgrpc.ToNative(err)
}
return &runtime.Exit{
Timestamp: protobuf.FromTimestamp(response.ExitedAt),
@@ -149,7 +151,7 @@ func (p *process) Delete(ctx context.Context) (*runtime.Exit, error) {
ExecID: p.id,
})
if err != nil {
return nil, errdefs.FromGRPC(err)
return nil, errgrpc.ToNative(err)
}
return &runtime.Exit{
Status: response.ExitStatus,

View File

@@ -36,6 +36,13 @@ import (
eventstypes "github.com/containerd/containerd/api/events"
task "github.com/containerd/containerd/api/runtime/task/v3"
"github.com/containerd/containerd/api/types"
"github.com/containerd/errdefs"
"github.com/containerd/errdefs/pkg/errgrpc"
"github.com/containerd/log"
"github.com/containerd/otelttrpc"
"github.com/containerd/ttrpc"
"github.com/containerd/typeurl/v2"
"github.com/containerd/containerd/v2/core/events/exchange"
"github.com/containerd/containerd/v2/core/runtime"
"github.com/containerd/containerd/v2/pkg/atomicfile"
@@ -45,11 +52,6 @@ import (
ptypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
client "github.com/containerd/containerd/v2/pkg/shim"
"github.com/containerd/containerd/v2/pkg/timeout"
"github.com/containerd/errdefs"
"github.com/containerd/log"
"github.com/containerd/otelttrpc"
"github.com/containerd/ttrpc"
"github.com/containerd/typeurl/v2"
)
const (
@@ -467,7 +469,7 @@ func (s *shimTask) Shutdown(ctx context.Context) error {
ID: s.ID(),
})
if err != nil && !errors.Is(err, ttrpc.ErrClosed) {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
}
@@ -484,7 +486,7 @@ func (s *shimTask) PID(ctx context.Context) (uint32, error) {
ID: s.ID(),
})
if err != nil {
return 0, errdefs.FromGRPC(err)
return 0, errgrpc.ToNative(err)
}
return response.TaskPid, nil
@@ -497,7 +499,7 @@ func (s *shimTask) delete(ctx context.Context, sandboxed bool, removeTask func(c
if shimErr != nil {
log.G(ctx).WithField("id", s.ID()).WithError(shimErr).Debug("failed to delete task")
if !errors.Is(shimErr, ttrpc.ErrClosed) {
shimErr = errdefs.FromGRPC(shimErr)
shimErr = errgrpc.ToNative(shimErr)
if !errdefs.IsNotFound(shimErr) {
return nil, shimErr
}
@@ -581,7 +583,7 @@ func (s *shimTask) Create(ctx context.Context, opts runtime.CreateOpts) (runtime
_, err := s.task.Create(ctx, request)
if err != nil {
return nil, errdefs.FromGRPC(err)
return nil, errgrpc.ToNative(err)
}
return s, nil
@@ -591,7 +593,7 @@ func (s *shimTask) Pause(ctx context.Context) error {
if _, err := s.task.Pause(ctx, &task.PauseRequest{
ID: s.ID(),
}); err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
}
@@ -600,7 +602,7 @@ func (s *shimTask) Resume(ctx context.Context) error {
if _, err := s.task.Resume(ctx, &task.ResumeRequest{
ID: s.ID(),
}); err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
}
@@ -610,7 +612,7 @@ func (s *shimTask) Start(ctx context.Context) error {
ID: s.ID(),
})
if err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
}
@@ -621,7 +623,7 @@ func (s *shimTask) Kill(ctx context.Context, signal uint32, all bool) error {
Signal: signal,
All: all,
}); err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
}
@@ -640,7 +642,7 @@ func (s *shimTask) Exec(ctx context.Context, id string, opts runtime.ExecOpts) (
Spec: opts.Spec,
}
if _, err := s.task.Exec(ctx, request); err != nil {
return nil, errdefs.FromGRPC(err)
return nil, errgrpc.ToNative(err)
}
return &process{
id: id,
@@ -653,7 +655,7 @@ func (s *shimTask) Pids(ctx context.Context) ([]runtime.ProcessInfo, error) {
ID: s.ID(),
})
if err != nil {
return nil, errdefs.FromGRPC(err)
return nil, errgrpc.ToNative(err)
}
var processList []runtime.ProcessInfo
for _, p := range resp.Processes {
@@ -672,7 +674,7 @@ func (s *shimTask) ResizePty(ctx context.Context, size runtime.ConsoleSize) erro
Height: size.Height,
})
if err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
}
@@ -683,7 +685,7 @@ func (s *shimTask) CloseIO(ctx context.Context) error {
Stdin: true,
})
if err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
}
@@ -697,7 +699,7 @@ func (s *shimTask) Wait(ctx context.Context) (*runtime.Exit, error) {
ID: s.ID(),
})
if err != nil {
return nil, errdefs.FromGRPC(err)
return nil, errgrpc.ToNative(err)
}
return &runtime.Exit{
Pid: taskPid,
@@ -713,7 +715,7 @@ func (s *shimTask) Checkpoint(ctx context.Context, path string, options *ptypes.
Options: options,
}
if _, err := s.task.Checkpoint(ctx, request); err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
}
@@ -724,7 +726,7 @@ func (s *shimTask) Update(ctx context.Context, resources *ptypes.Any, annotation
Resources: resources,
Annotations: annotations,
}); err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
}
@@ -734,7 +736,7 @@ func (s *shimTask) Stats(ctx context.Context) (*ptypes.Any, error) {
ID: s.ID(),
})
if err != nil {
return nil, errdefs.FromGRPC(err)
return nil, errgrpc.ToNative(err)
}
return response.Stats, nil
}
@@ -756,7 +758,7 @@ func (s *shimTask) State(ctx context.Context) (runtime.State, error) {
})
if err != nil {
if !errors.Is(err, ttrpc.ErrClosed) {
return runtime.State{}, errdefs.FromGRPC(err)
return runtime.State{}, errgrpc.ToNative(err)
}
return runtime.State{}, errdefs.ErrNotFound
}

View File

@@ -22,11 +22,13 @@ import (
api "github.com/containerd/containerd/api/services/sandbox/v1"
"github.com/containerd/containerd/api/types"
"github.com/containerd/containerd/v2/core/mount"
"github.com/containerd/containerd/v2/core/sandbox"
"github.com/containerd/errdefs"
"github.com/containerd/errdefs/pkg/errgrpc"
"github.com/containerd/typeurl/v2"
imagespec "github.com/opencontainers/image-spec/specs-go/v1"
"github.com/containerd/containerd/v2/core/mount"
"github.com/containerd/containerd/v2/core/sandbox"
)
// remoteSandboxController is a low level GRPC client for containerd's sandbox controller service
@@ -58,7 +60,7 @@ func (s *remoteSandboxController) Create(ctx context.Context, sandboxInfo sandbo
Sandboxer: s.sandboxerName,
})
if err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
@@ -70,7 +72,7 @@ func (s *remoteSandboxController) Start(ctx context.Context, sandboxID string) (
Sandboxer: s.sandboxerName,
})
if err != nil {
return sandbox.ControllerInstance{}, errdefs.FromGRPC(err)
return sandbox.ControllerInstance{}, errgrpc.ToNative(err)
}
return sandbox.ControllerInstance{
@@ -89,7 +91,7 @@ func (s *remoteSandboxController) Platform(ctx context.Context, sandboxID string
Sandboxer: s.sandboxerName,
})
if err != nil {
return imagespec.Platform{}, errdefs.FromGRPC(err)
return imagespec.Platform{}, errgrpc.ToNative(err)
}
platform := resp.GetPlatform()
@@ -114,7 +116,7 @@ func (s *remoteSandboxController) Stop(ctx context.Context, sandboxID string, op
}
_, err := s.client.Stop(ctx, req)
if err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
@@ -126,7 +128,7 @@ func (s *remoteSandboxController) Shutdown(ctx context.Context, sandboxID string
Sandboxer: s.sandboxerName,
})
if err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
@@ -146,7 +148,7 @@ func (s *remoteSandboxController) Wait(ctx context.Context, sandboxID string) (s
Sandboxer: s.sandboxerName,
})
if err != nil {
grpcErr := errdefs.FromGRPC(err)
grpcErr := errgrpc.ToNative(err)
if !errdefs.IsUnavailable(grpcErr) {
return sandbox.ExitStatus{}, grpcErr
}
@@ -176,7 +178,7 @@ func (s *remoteSandboxController) Status(ctx context.Context, sandboxID string,
Sandboxer: s.sandboxerName,
})
if err != nil {
return sandbox.ControllerStatus{}, errdefs.FromGRPC(err)
return sandbox.ControllerStatus{}, errgrpc.ToNative(err)
}
return sandbox.ControllerStatus{
SandboxID: sandboxID,
@@ -197,7 +199,7 @@ func (s *remoteSandboxController) Metrics(ctx context.Context, sandboxID string)
Sandboxer: s.sandboxerName,
})
if err != nil {
return nil, errdefs.FromGRPC(err)
return nil, errgrpc.ToNative(err)
}
return resp.Metrics, nil
}
@@ -214,7 +216,7 @@ func (s *remoteSandboxController) Update(
Fields: fields,
})
if err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
return nil
}

View File

@@ -20,8 +20,9 @@ import (
"context"
api "github.com/containerd/containerd/api/services/sandbox/v1"
"github.com/containerd/errdefs/pkg/errgrpc"
sb "github.com/containerd/containerd/v2/core/sandbox"
"github.com/containerd/errdefs"
)
// remoteSandboxStore is a low-level containerd client to manage sandbox environments metadata
@@ -41,7 +42,7 @@ func (s *remoteSandboxStore) Create(ctx context.Context, sandbox sb.Sandbox) (sb
Sandbox: sb.ToProto(&sandbox),
})
if err != nil {
return sb.Sandbox{}, errdefs.FromGRPC(err)
return sb.Sandbox{}, errgrpc.ToNative(err)
}
return sb.FromProto(resp.Sandbox), nil
@@ -53,7 +54,7 @@ func (s *remoteSandboxStore) Update(ctx context.Context, sandbox sb.Sandbox, fie
Fields: fieldpaths,
})
if err != nil {
return sb.Sandbox{}, errdefs.FromGRPC(err)
return sb.Sandbox{}, errgrpc.ToNative(err)
}
return sb.FromProto(resp.Sandbox), nil
@@ -64,7 +65,7 @@ func (s *remoteSandboxStore) Get(ctx context.Context, id string) (sb.Sandbox, er
SandboxID: id,
})
if err != nil {
return sb.Sandbox{}, errdefs.FromGRPC(err)
return sb.Sandbox{}, errgrpc.ToNative(err)
}
return sb.FromProto(resp.Sandbox), nil
@@ -75,7 +76,7 @@ func (s *remoteSandboxStore) List(ctx context.Context, filters ...string) ([]sb.
Filters: filters,
})
if err != nil {
return nil, errdefs.FromGRPC(err)
return nil, errgrpc.ToNative(err)
}
out := make([]sb.Sandbox, len(resp.List))
@@ -91,5 +92,5 @@ func (s *remoteSandboxStore) Delete(ctx context.Context, id string) error {
SandboxID: id,
})
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}

View File

@@ -21,10 +21,11 @@ import (
"io"
snapshotsapi "github.com/containerd/containerd/api/services/snapshots/v1"
"github.com/containerd/errdefs/pkg/errgrpc"
"github.com/containerd/containerd/v2/core/mount"
"github.com/containerd/containerd/v2/core/snapshots"
protobuftypes "github.com/containerd/containerd/v2/pkg/protobuf/types"
"github.com/containerd/errdefs"
)
// NewSnapshotter returns a new Snapshotter which communicates over a GRPC
@@ -48,7 +49,7 @@ func (p *proxySnapshotter) Stat(ctx context.Context, key string) (snapshots.Info
Key: key,
})
if err != nil {
return snapshots.Info{}, errdefs.FromGRPC(err)
return snapshots.Info{}, errgrpc.ToNative(err)
}
return InfoFromProto(resp.Info), nil
}
@@ -63,7 +64,7 @@ func (p *proxySnapshotter) Update(ctx context.Context, info snapshots.Info, fiel
},
})
if err != nil {
return snapshots.Info{}, errdefs.FromGRPC(err)
return snapshots.Info{}, errgrpc.ToNative(err)
}
return InfoFromProto(resp.Info), nil
}
@@ -74,7 +75,7 @@ func (p *proxySnapshotter) Usage(ctx context.Context, key string) (snapshots.Usa
Key: key,
})
if err != nil {
return snapshots.Usage{}, errdefs.FromGRPC(err)
return snapshots.Usage{}, errgrpc.ToNative(err)
}
return UsageFromProto(resp), nil
}
@@ -85,7 +86,7 @@ func (p *proxySnapshotter) Mounts(ctx context.Context, key string) ([]mount.Moun
Key: key,
})
if err != nil {
return nil, errdefs.FromGRPC(err)
return nil, errgrpc.ToNative(err)
}
return mount.FromProto(resp.Mounts), nil
}
@@ -104,7 +105,7 @@ func (p *proxySnapshotter) Prepare(ctx context.Context, key, parent string, opts
Labels: local.Labels,
})
if err != nil {
return nil, errdefs.FromGRPC(err)
return nil, errgrpc.ToNative(err)
}
return mount.FromProto(resp.Mounts), nil
}
@@ -123,7 +124,7 @@ func (p *proxySnapshotter) View(ctx context.Context, key, parent string, opts ..
Labels: local.Labels,
})
if err != nil {
return nil, errdefs.FromGRPC(err)
return nil, errgrpc.ToNative(err)
}
return mount.FromProto(resp.Mounts), nil
}
@@ -141,7 +142,7 @@ func (p *proxySnapshotter) Commit(ctx context.Context, name, key string, opts ..
Key: key,
Labels: local.Labels,
})
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
func (p *proxySnapshotter) Remove(ctx context.Context, key string) error {
@@ -149,7 +150,7 @@ func (p *proxySnapshotter) Remove(ctx context.Context, key string) error {
Snapshotter: p.snapshotterName,
Key: key,
})
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
func (p *proxySnapshotter) Walk(ctx context.Context, fn snapshots.WalkFunc, fs ...string) error {
@@ -158,7 +159,7 @@ func (p *proxySnapshotter) Walk(ctx context.Context, fn snapshots.WalkFunc, fs .
Filters: fs,
})
if err != nil {
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
for {
resp, err := sc.Recv()
@@ -166,7 +167,7 @@ func (p *proxySnapshotter) Walk(ctx context.Context, fn snapshots.WalkFunc, fs .
if err == io.EOF {
return nil
}
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}
if resp == nil {
return nil
@@ -187,5 +188,5 @@ func (p *proxySnapshotter) Cleanup(ctx context.Context) error {
_, err := p.client.Cleanup(ctx, &snapshotsapi.CleanupRequest{
Snapshotter: p.snapshotterName,
})
return errdefs.FromGRPC(err)
return errgrpc.ToNative(err)
}

View File

@@ -23,11 +23,13 @@ import (
"io"
streamingapi "github.com/containerd/containerd/api/services/streaming/v1"
"github.com/containerd/containerd/v2/core/streaming"
"github.com/containerd/errdefs"
"github.com/containerd/errdefs/pkg/errgrpc"
"github.com/containerd/ttrpc"
"github.com/containerd/typeurl/v2"
"google.golang.org/grpc"
"github.com/containerd/containerd/v2/core/streaming"
)
// NewStreamCreator returns a new stream creator which can communicate over a GRPC
@@ -84,7 +86,7 @@ func (sc *streamCreator) Create(ctx context.Context, id string) (streaming.Strea
err = stream.Send(typeurl.MarshalProto(a))
if err != nil {
if !errors.Is(err, io.EOF) {
err = errdefs.FromGRPC(err)
err = errgrpc.ToNative(err)
}
return nil, err
}
@@ -92,7 +94,7 @@ func (sc *streamCreator) Create(ctx context.Context, id string) (streaming.Strea
// Receive an ack that stream is init and ready
if _, err = stream.Recv(); err != nil {
if !errors.Is(err, io.EOF) {
err = errdefs.FromGRPC(err)
err = errgrpc.ToNative(err)
}
return nil, err
}
@@ -109,7 +111,7 @@ type clientStream struct {
func (cs *clientStream) Send(a typeurl.Any) (err error) {
err = cs.s.Send(typeurl.MarshalProto(a))
if !errors.Is(err, io.EOF) {
err = errdefs.FromGRPC(err)
err = errgrpc.ToNative(err)
}
return
}
@@ -117,7 +119,7 @@ func (cs *clientStream) Send(a typeurl.Any) (err error) {
func (cs *clientStream) Recv() (a typeurl.Any, err error) {
a, err = cs.s.Recv()
if !errors.Is(err, io.EOF) {
err = errdefs.FromGRPC(err)
err = errgrpc.ToNative(err)
}
return
}