diff --git a/api/services/content/v1/content.proto b/api/services/content/v1/content.proto index bafca9066..0c48a37ad 100644 --- a/api/services/content/v1/content.proto +++ b/api/services/content/v1/content.proto @@ -136,7 +136,6 @@ message StatusResponse { Status status = 1; } - message ListStatusesRequest { string filter = 1; } diff --git a/metadata/buckets.go b/metadata/buckets.go index 51daceb2a..0ba3126bb 100644 --- a/metadata/buckets.go +++ b/metadata/buckets.go @@ -36,7 +36,7 @@ var ( bucketKeyObjectSnapshots = []byte("snapshots") // stores snapshot references bucketKeyObjectContent = []byte("content") // stores content references bucketKeyObjectBlob = []byte("blob") // stores content links - bucketKeyObjectIngest = []byte("ingest") // stores content links + bucketKeyObjectIngest = []byte("ingest") // stores ingest links bucketKeyDigest = []byte("digest") bucketKeyMediaType = []byte("mediatype") diff --git a/metadata/content.go b/metadata/content.go index d7b2912df..74e6add54 100644 --- a/metadata/content.go +++ b/metadata/content.go @@ -296,6 +296,11 @@ func (nw *namespacedWriter) commit(tx *bolt.Tx, size int64, expected digest.Dige if err != nil { return err } + if size != 0 && size != status.Offset { + return errors.Errorf("%q failed size validation: %v != %v", nw.ref, status.Offset, size) + } + size = status.Offset + actual := nw.Writer.Digest() if err := nw.Writer.Commit(size, expected); err != nil { @@ -307,8 +312,6 @@ func (nw *namespacedWriter) commit(tx *bolt.Tx, size int64, expected digest.Dige } } - size = status.Total - bkt, err := createBlobBucket(tx, nw.namespace, actual) if err != nil { return err diff --git a/services/diff/service.go b/services/diff/service.go index b97908ace..b4d1a150b 100644 --- a/services/diff/service.go +++ b/services/diff/service.go @@ -3,6 +3,7 @@ package diff import ( diffapi "github.com/containerd/containerd/api/services/diff/v1" "github.com/containerd/containerd/api/types" + "github.com/containerd/containerd/errdefs" "github.com/containerd/containerd/mount" "github.com/containerd/containerd/plugin" "golang.org/x/net/context" @@ -45,7 +46,7 @@ func (s *service) Apply(ctx context.Context, er *diffapi.ApplyRequest) (*diffapi ocidesc, err := s.diff.Apply(ctx, desc, mounts) if err != nil { - return nil, err + return nil, errdefs.ToGRPC(err) } return &diffapi.ApplyResponse{ @@ -60,7 +61,7 @@ func (s *service) Diff(ctx context.Context, dr *diffapi.DiffRequest) (*diffapi.D ocidesc, err := s.diff.DiffMounts(ctx, aMounts, bMounts, dr.MediaType, dr.Ref) if err != nil { - return nil, err + return nil, errdefs.ToGRPC(err) } return &diffapi.DiffResponse{ diff --git a/services/tasks/service.go b/services/tasks/service.go index 63a273872..81bd61910 100644 --- a/services/tasks/service.go +++ b/services/tasks/service.go @@ -62,6 +62,7 @@ func New(ic *plugin.InitContext) (interface{}, error) { if err != nil { return nil, err } + cs := metadata.NewContentStore(m.(*bolt.DB), ct.(content.Store)) runtimes := make(map[string]runtime.Runtime) for _, rr := range rt { r := rr.(runtime.Runtime) @@ -71,7 +72,7 @@ func New(ic *plugin.InitContext) (interface{}, error) { return &Service{ runtimes: runtimes, db: m.(*bolt.DB), - store: ct.(content.Store), + store: cs, emitter: e, }, nil } diff --git a/task.go b/task.go index bfbaa6453..60f894686 100644 --- a/task.go +++ b/task.go @@ -346,7 +346,7 @@ func writeContent(ctx context.Context, store content.Store, mediaType, ref strin if err != nil { return d, err } - if err := writer.Commit(0, ""); err != nil { + if err := writer.Commit(size, ""); err != nil { return d, err } return v1.Descriptor{