Clean up dist tool to use containerd client

Remove direct use of grpc in dist tool

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
This commit is contained in:
Derek McGowan 2017-06-21 11:26:02 -07:00
parent 3cdd7a9153
commit 6c498c61eb
No known key found for this signature in database
GPG Key ID: F58C5D0A4405ACDB
5 changed files with 17 additions and 55 deletions

30
cmd/dist/common.go vendored
View File

@ -14,20 +14,15 @@ import (
"github.com/containerd/console" "github.com/containerd/console"
"github.com/containerd/containerd" "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/content"
"github.com/containerd/containerd/images" "github.com/containerd/containerd/images"
"github.com/containerd/containerd/namespaces" "github.com/containerd/containerd/namespaces"
"github.com/containerd/containerd/remotes" "github.com/containerd/containerd/remotes"
"github.com/containerd/containerd/remotes/docker" "github.com/containerd/containerd/remotes/docker"
"github.com/containerd/containerd/rootfs" "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" ocispec "github.com/opencontainers/image-spec/specs-go/v1"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/urfave/cli" "github.com/urfave/cli"
"google.golang.org/grpc"
) )
var registryFlags = []cli.Flag{ 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) { func resolveContentStore(context *cli.Context) (content.Store, error) {
conn, err := connectGRPC(context) client, err := getClient(context)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return client.ContentStore(), nil
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)
}),
)
} }
// getResolver prepares the resolver from the environment and options. // getResolver prepares the resolver from the environment and options.

18
cmd/dist/delete.go vendored
View File

@ -3,10 +3,7 @@ package main
import ( import (
"fmt" "fmt"
"google.golang.org/grpc" "github.com/containerd/containerd/content"
"google.golang.org/grpc/codes"
contentapi "github.com/containerd/containerd/api/services/content"
"github.com/containerd/containerd/log" "github.com/containerd/containerd/log"
digest "github.com/opencontainers/go-digest" digest "github.com/opencontainers/go-digest"
"github.com/urfave/cli" "github.com/urfave/cli"
@ -28,12 +25,12 @@ var deleteCommand = cli.Command{
ctx, cancel := appContext(context) ctx, cancel := appContext(context)
defer cancel() defer cancel()
conn, err := connectGRPC(context) client, err := getClient(context)
if err != nil { if err != nil {
return err return err
} }
client := contentapi.NewContentClient(conn) cs := client.ContentStore()
for _, arg := range args { for _, arg := range args {
dgst, err := digest.Parse(arg) dgst, err := digest.Parse(arg)
@ -45,13 +42,8 @@ var deleteCommand = cli.Command{
continue continue
} }
if _, err := client.Delete(ctx, &contentapi.DeleteContentRequest{ if err := cs.Delete(ctx, dgst); err != nil {
Digest: dgst, if !content.IsNotFound(err) {
}); err != nil {
switch grpc.Code(err) {
case codes.NotFound:
// if it is already deleted, ignore!
default:
if exitError == nil { if exitError == nil {
exitError = err exitError = err
} }

6
cmd/dist/edit.go vendored
View File

@ -8,8 +8,6 @@ import (
"os" "os"
"os/exec" "os/exec"
contentapi "github.com/containerd/containerd/api/services/content"
"github.com/containerd/containerd/services/content"
digest "github.com/opencontainers/go-digest" digest "github.com/opencontainers/go-digest"
"github.com/urfave/cli" "github.com/urfave/cli"
) )
@ -45,12 +43,12 @@ var editCommand = cli.Command{
return err return err
} }
conn, err := connectGRPC(context) client, err := getClient(context)
if err != nil { if err != nil {
return err return err
} }
content := content.NewStoreFromClient(contentapi.NewContentClient(conn)) content := client.ContentStore()
rc, err := content.Reader(ctx, dgst) rc, err := content.Reader(ctx, dgst)
if err != nil { if err != nil {

12
cmd/dist/images.go vendored
View File

@ -32,15 +32,13 @@ var imagesListCommand = cli.Command{
ctx, cancel := appContext(clicontext) ctx, cancel := appContext(clicontext)
defer cancel() defer cancel()
imageStore, err := resolveImageStore(clicontext) client, err := getClient(clicontext)
if err != nil { if err != nil {
return err return err
} }
cs, err := resolveContentStore(clicontext) imageStore := client.ImageService()
if err != nil { cs := client.ContentStore()
return err
}
images, err := imageStore.List(ctx) images, err := imageStore.List(ctx)
if err != nil { if err != nil {
@ -76,11 +74,13 @@ var imageRemoveCommand = cli.Command{
ctx, cancel := appContext(clicontext) ctx, cancel := appContext(clicontext)
defer cancel() defer cancel()
imageStore, err := resolveImageStore(clicontext) client, err := getClient(clicontext)
if err != nil { if err != nil {
return err return err
} }
imageStore := client.ImageService()
for _, target := range clicontext.Args() { for _, target := range clicontext.Args() {
if err := imageStore.Delete(ctx, target); err != nil { if err := imageStore.Delete(ctx, target); err != nil {
if !metadata.IsNotFound(err) { if !metadata.IsNotFound(err) {

6
cmd/dist/rootfs.go vendored
View File

@ -6,9 +6,7 @@ import (
"os" "os"
"strings" "strings"
snapshotapi "github.com/containerd/containerd/api/services/snapshot"
"github.com/containerd/containerd/log" "github.com/containerd/containerd/log"
snapshotservice "github.com/containerd/containerd/services/snapshot"
digest "github.com/opencontainers/go-digest" digest "github.com/opencontainers/go-digest"
"github.com/urfave/cli" "github.com/urfave/cli"
) )
@ -95,12 +93,12 @@ var rootfsPrepareCommand = cli.Command{
log.G(ctx).Infof("preparing mounts %s", dgst.String()) log.G(ctx).Infof("preparing mounts %s", dgst.String())
conn, err := connectGRPC(clicontext) client, err := getClient(clicontext)
if err != nil { if err != nil {
return err return err
} }
snapshotter := snapshotservice.NewSnapshotterFromClient(snapshotapi.NewSnapshotClient(conn)) snapshotter := client.SnapshotService()
mounts, err := snapshotter.Prepare(ctx, target, dgst.String()) mounts, err := snapshotter.Prepare(ctx, target, dgst.String())
if err != nil { if err != nil {