Update task service to use metadata content store

Address feedback and fix issues

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
This commit is contained in:
Derek McGowan 2017-07-06 15:37:25 -07:00
parent b6d58f63a8
commit 4322664b88
No known key found for this signature in database
GPG Key ID: F58C5D0A4405ACDB
6 changed files with 12 additions and 8 deletions

View File

@ -136,7 +136,6 @@ message StatusResponse {
Status status = 1;
}
message ListStatusesRequest {
string filter = 1;
}

View File

@ -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")

View File

@ -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

View File

@ -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{

View File

@ -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
}

View File

@ -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{