Skip to content

Commit

Permalink
casext: switch to NewEngine API
Browse files Browse the repository at this point in the history
This is necessary in order to avoid go-vet warnings, as well as removing
the ugly Engine{engine} interface. In future, the implementation of
casext.Engine will be made private and casext.Engine will be an
interface.

Signed-off-by: Aleksa Sarai <asarai@suse.de>
  • Loading branch information
cyphar committed Jul 23, 2017
1 parent c2d0868 commit 272950d
Show file tree
Hide file tree
Showing 14 changed files with 31 additions and 22 deletions.
2 changes: 1 addition & 1 deletion cmd/umoci/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ func config(ctx *cli.Context) error {
if err != nil {
return errors.Wrap(err, "open CAS")
}
engineExt := casext.Engine{engine}
engineExt := casext.NewEngine(engine)
defer engine.Close()

fromDescriptorPaths, err := engineExt.ResolveReference(context.Background(), fromName)
Expand Down
2 changes: 1 addition & 1 deletion cmd/umoci/gc.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ func gc(ctx *cli.Context) error {
if err != nil {
return errors.Wrap(err, "open CAS")
}
engineExt := casext.Engine{engine}
engineExt := casext.NewEngine(engine)
defer engine.Close()

// Run the GC.
Expand Down
2 changes: 1 addition & 1 deletion cmd/umoci/new.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ func newImage(ctx *cli.Context) error {
if err != nil {
return errors.Wrap(err, "open CAS")
}
engineExt := casext.Engine{engine}
engineExt := casext.NewEngine(engine)
defer engine.Close()

// Create a new manifest.
Expand Down
2 changes: 1 addition & 1 deletion cmd/umoci/raw-runtime-config.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ func rawConfig(ctx *cli.Context) error {
if err != nil {
return errors.Wrap(err, "open CAS")
}
engineExt := casext.Engine{engine}
engineExt := casext.NewEngine(engine)
defer engine.Close()

fromDescriptorPaths, err := engineExt.ResolveReference(context.Background(), fromName)
Expand Down
2 changes: 1 addition & 1 deletion cmd/umoci/repack.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ func repack(ctx *cli.Context) error {
if err != nil {
return errors.Wrap(err, "open CAS")
}
engineExt := casext.Engine{engine}
engineExt := casext.NewEngine(engine)
defer engine.Close()

// Create the mutator.
Expand Down
2 changes: 1 addition & 1 deletion cmd/umoci/stat.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ func stat(ctx *cli.Context) error {
if err != nil {
return errors.Wrap(err, "open CAS")
}
engineExt := casext.Engine{engine}
engineExt := casext.NewEngine(engine)
defer engine.Close()

manifestDescriptorPaths, err := engineExt.ResolveReference(context.Background(), tagName)
Expand Down
6 changes: 3 additions & 3 deletions cmd/umoci/tag.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ func tagAdd(ctx *cli.Context) error {
if err != nil {
return errors.Wrap(err, "open CAS")
}
engineExt := casext.Engine{engine}
engineExt := casext.NewEngine(engine)
defer engine.Close()

// Get original descriptor.
Expand Down Expand Up @@ -114,7 +114,7 @@ func tagRemove(ctx *cli.Context) error {
if err != nil {
return errors.Wrap(err, "open CAS")
}
engineExt := casext.Engine{engine}
engineExt := casext.NewEngine(engine)
defer engine.Close()

// Remove it.
Expand Down Expand Up @@ -151,7 +151,7 @@ func tagList(ctx *cli.Context) error {
if err != nil {
return errors.Wrap(err, "open CAS")
}
engineExt := casext.Engine{engine}
engineExt := casext.NewEngine(engine)
defer engine.Close()

names, err := engineExt.ListReferences(context.Background())
Expand Down
2 changes: 1 addition & 1 deletion cmd/umoci/unpack.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ func unpack(ctx *cli.Context) error {
if err != nil {
return errors.Wrap(err, "open CAS")
}
engineExt := casext.Engine{engine}
engineExt := casext.NewEngine(engine)
defer engine.Close()

fromDescriptorPaths, err := engineExt.ResolveReference(context.Background(), fromName)
Expand Down
2 changes: 1 addition & 1 deletion mutate/mutate.go
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ func New(engine cas.Engine, src casext.DescriptorPath) (*Mutator, error) {
}

return &Mutator{
engine: casext.Engine{engine},
engine: casext.NewEngine(engine),
source: src,
}, nil
}
Expand Down
4 changes: 2 additions & 2 deletions mutate/mutate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ func setup(t *testing.T, dir string) (cas.Engine, ispec.Descriptor) {
if err != nil {
t.Fatal(err)
}
engineExt := casext.Engine{engine}
engineExt := casext.NewEngine(engine)

// Write a tar layer.
var buffer bytes.Buffer
Expand Down Expand Up @@ -458,7 +458,7 @@ func TestMutatePath(t *testing.T) {
defer os.RemoveAll(dir)

engine, manifestDescriptor := setup(t, dir)
engineExt := casext.Engine{engine}
engineExt := casext.NewEngine(engine)
defer engine.Close()

// Create some additional structure.
Expand Down
9 changes: 9 additions & 0 deletions oci/casext/casext.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,17 @@ package casext

import "github.com/openSUSE/umoci/oci/cas"

// TODO: Convert this to an interface and make Engine private.

// Engine is a wrapper around cas.Engine that provides additional, generic
// extensions to the transport-dependent cas.Engine implementation.
type Engine struct {
cas.Engine
}

// NewEngine returns a new Engine which acts as a wrapper around the given
// cas.Engine and provides additional, generic extensions to the
// transport-dependent cas.Engine implementation.
func NewEngine(engine cas.Engine) Engine {
return Engine{Engine: engine}
}
6 changes: 3 additions & 3 deletions oci/casext/json_dir_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ func TestEngineBlobJSON(t *testing.T) {
if err != nil {
t.Fatalf("unexpected error opening image: %+v", err)
}
engineExt := Engine{engine}
engineExt := NewEngine(engine)
defer engine.Close()

type object struct {
Expand Down Expand Up @@ -145,7 +145,7 @@ func TestEngineBlobJSONReadonly(t *testing.T) {
if err != nil {
t.Fatalf("unexpected error opening image: %+v", err)
}
engineExt := Engine{engine}
engineExt := NewEngine(engine)

digest, _, err := engineExt.PutBlobJSON(ctx, test.object)
if err != nil {
Expand All @@ -163,7 +163,7 @@ func TestEngineBlobJSONReadonly(t *testing.T) {
if err != nil {
t.Errorf("unexpected error opening ro image: %+v", err)
}
newEngineExt := Engine{newEngine}
newEngineExt := NewEngine(newEngine)

blobReader, err := newEngineExt.GetBlob(ctx, digest)
if err != nil {
Expand Down
8 changes: 4 additions & 4 deletions oci/casext/refname_dir_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ func TestEngineReference(t *testing.T) {
if err != nil {
t.Fatalf("unexpected error opening image: %+v", err)
}
engineExt := Engine{engine}
engineExt := NewEngine(engine)
defer engine.Close()

descMap, err := fakeSetupEngine(t, engineExt)
Expand Down Expand Up @@ -318,7 +318,7 @@ func TestEngineReferenceReadonly(t *testing.T) {
if err != nil {
t.Fatalf("unexpected error opening image: %+v", err)
}
engineExt := Engine{engine}
engineExt := NewEngine(engine)

descMap, err := fakeSetupEngine(t, engineExt)
if err != nil {
Expand All @@ -336,7 +336,7 @@ func TestEngineReferenceReadonly(t *testing.T) {
if err != nil {
t.Fatalf("unexpected error opening image: %+v", err)
}
engineExt := Engine{engine}
engineExt := NewEngine(engine)

if err := engineExt.UpdateReference(ctx, name, test.index); err != nil {
t.Errorf("UpdateReference: unexpected error: %+v", err)
Expand All @@ -353,7 +353,7 @@ func TestEngineReferenceReadonly(t *testing.T) {
if err != nil {
t.Errorf("unexpected error opening ro image: %+v", err)
}
newEngineExt := Engine{newEngine}
newEngineExt := NewEngine(newEngine)

gotDescriptorPaths, err := newEngineExt.ResolveReference(ctx, name)
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions oci/layer/unpack.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ func isLayerType(mediaType string) bool {
//
// FIXME: This interface is ugly.
func UnpackManifest(ctx context.Context, engine cas.Engine, bundle string, manifest ispec.Manifest, opt *MapOptions) error {
engineExt := casext.Engine{engine}
engineExt := casext.NewEngine(engine)

// Create the bundle directory. We only error out if config.json or rootfs/
// already exists, because we cannot be sure that the user intended us to
Expand Down Expand Up @@ -227,7 +227,7 @@ func UnpackManifest(ctx context.Context, engine cas.Engine, bundle string, manif
//
// XXX: I don't like this API. It has way too many arguments.
func UnpackRuntimeJSON(ctx context.Context, engine cas.Engine, configFile io.Writer, rootfs string, manifest ispec.Manifest, opt *MapOptions) error {
engineExt := casext.Engine{engine}
engineExt := casext.NewEngine(engine)

var mapOptions MapOptions
if opt != nil {
Expand Down

0 comments on commit 272950d

Please sign in to comment.