From 6c498c61eb2d25b495fa12bdbd118b1795009925 Mon Sep 17 00:00:00 2001 From: Derek McGowan Date: Wed, 21 Jun 2017 11:26:02 -0700 Subject: [PATCH] Clean up dist tool to use containerd client Remove direct use of grpc in dist tool Signed-off-by: Derek McGowan --- cmd/dist/common.go | 30 ++---------------------------- cmd/dist/delete.go | 18 +++++------------- cmd/dist/edit.go | 6 ++---- cmd/dist/images.go | 12 ++++++------ cmd/dist/rootfs.go | 6 ++---- 5 files changed, 17 insertions(+), 55 deletions(-) diff --git a/cmd/dist/common.go b/cmd/dist/common.go index db879e107..d73e2f746 100644 --- a/cmd/dist/common.go +++ b/cmd/dist/common.go @@ -14,20 +14,15 @@ import ( "github.com/containerd/console" "github.com/containerd/containerd" - contentapi "github.com/containerd/containerd/api/services/content" - imagesapi "github.com/containerd/containerd/api/services/images" "github.com/containerd/containerd/content" "github.com/containerd/containerd/images" "github.com/containerd/containerd/namespaces" "github.com/containerd/containerd/remotes" "github.com/containerd/containerd/remotes/docker" "github.com/containerd/containerd/rootfs" - contentservice "github.com/containerd/containerd/services/content" - imagesservice "github.com/containerd/containerd/services/images" ocispec "github.com/opencontainers/image-spec/specs-go/v1" "github.com/pkg/errors" "github.com/urfave/cli" - "google.golang.org/grpc" ) var registryFlags = []cli.Flag{ @@ -81,32 +76,11 @@ func appContext(clicontext *cli.Context) (contextpkg.Context, contextpkg.CancelF } func resolveContentStore(context *cli.Context) (content.Store, error) { - conn, err := connectGRPC(context) + client, err := getClient(context) if err != nil { return nil, err } - - return contentservice.NewStoreFromClient(contentapi.NewContentClient(conn)), nil -} - -func resolveImageStore(clicontext *cli.Context) (images.Store, error) { - conn, err := connectGRPC(clicontext) - if err != nil { - return nil, err - } - return imagesservice.NewStoreFromClient(imagesapi.NewImagesClient(conn)), nil -} - -func connectGRPC(context *cli.Context) (*grpc.ClientConn, error) { - address := context.GlobalString("address") - timeout := context.GlobalDuration("connect-timeout") - return grpc.Dial(address, - grpc.WithTimeout(timeout), - grpc.WithInsecure(), - grpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) { - return net.DialTimeout("unix", address, timeout) - }), - ) + return client.ContentStore(), nil } // getResolver prepares the resolver from the environment and options. diff --git a/cmd/dist/delete.go b/cmd/dist/delete.go index d8cb76062..4a1be57e2 100644 --- a/cmd/dist/delete.go +++ b/cmd/dist/delete.go @@ -3,10 +3,7 @@ package main import ( "fmt" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - - contentapi "github.com/containerd/containerd/api/services/content" + "github.com/containerd/containerd/content" "github.com/containerd/containerd/log" digest "github.com/opencontainers/go-digest" "github.com/urfave/cli" @@ -28,12 +25,12 @@ var deleteCommand = cli.Command{ ctx, cancel := appContext(context) defer cancel() - conn, err := connectGRPC(context) + client, err := getClient(context) if err != nil { return err } - client := contentapi.NewContentClient(conn) + cs := client.ContentStore() for _, arg := range args { dgst, err := digest.Parse(arg) @@ -45,13 +42,8 @@ var deleteCommand = cli.Command{ continue } - if _, err := client.Delete(ctx, &contentapi.DeleteContentRequest{ - Digest: dgst, - }); err != nil { - switch grpc.Code(err) { - case codes.NotFound: - // if it is already deleted, ignore! - default: + if err := cs.Delete(ctx, dgst); err != nil { + if !content.IsNotFound(err) { if exitError == nil { exitError = err } diff --git a/cmd/dist/edit.go b/cmd/dist/edit.go index 365aa2d41..11a04af8b 100644 --- a/cmd/dist/edit.go +++ b/cmd/dist/edit.go @@ -8,8 +8,6 @@ import ( "os" "os/exec" - contentapi "github.com/containerd/containerd/api/services/content" - "github.com/containerd/containerd/services/content" digest "github.com/opencontainers/go-digest" "github.com/urfave/cli" ) @@ -45,12 +43,12 @@ var editCommand = cli.Command{ return err } - conn, err := connectGRPC(context) + client, err := getClient(context) if err != nil { return err } - content := content.NewStoreFromClient(contentapi.NewContentClient(conn)) + content := client.ContentStore() rc, err := content.Reader(ctx, dgst) if err != nil { diff --git a/cmd/dist/images.go b/cmd/dist/images.go index ec39f1a4d..03d05ee19 100644 --- a/cmd/dist/images.go +++ b/cmd/dist/images.go @@ -32,15 +32,13 @@ var imagesListCommand = cli.Command{ ctx, cancel := appContext(clicontext) defer cancel() - imageStore, err := resolveImageStore(clicontext) + client, err := getClient(clicontext) if err != nil { return err } - cs, err := resolveContentStore(clicontext) - if err != nil { - return err - } + imageStore := client.ImageService() + cs := client.ContentStore() images, err := imageStore.List(ctx) if err != nil { @@ -76,11 +74,13 @@ var imageRemoveCommand = cli.Command{ ctx, cancel := appContext(clicontext) defer cancel() - imageStore, err := resolveImageStore(clicontext) + client, err := getClient(clicontext) if err != nil { return err } + imageStore := client.ImageService() + for _, target := range clicontext.Args() { if err := imageStore.Delete(ctx, target); err != nil { if !metadata.IsNotFound(err) { diff --git a/cmd/dist/rootfs.go b/cmd/dist/rootfs.go index 134541c06..3797e7367 100644 --- a/cmd/dist/rootfs.go +++ b/cmd/dist/rootfs.go @@ -6,9 +6,7 @@ import ( "os" "strings" - snapshotapi "github.com/containerd/containerd/api/services/snapshot" "github.com/containerd/containerd/log" - snapshotservice "github.com/containerd/containerd/services/snapshot" digest "github.com/opencontainers/go-digest" "github.com/urfave/cli" ) @@ -95,12 +93,12 @@ var rootfsPrepareCommand = cli.Command{ log.G(ctx).Infof("preparing mounts %s", dgst.String()) - conn, err := connectGRPC(clicontext) + client, err := getClient(clicontext) if err != nil { return err } - snapshotter := snapshotservice.NewSnapshotterFromClient(snapshotapi.NewSnapshotClient(conn)) + snapshotter := client.SnapshotService() mounts, err := snapshotter.Prepare(ctx, target, dgst.String()) if err != nil {