Merge pull request #1043 from dmcgowan/dist-remove-grpc-connect

Clean up dist tool to use containerd client
This commit is contained in:
Phil Estes 2017-06-21 14:35:12 -04:00 committed by GitHub
commit ac4c2ab35b
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/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.

18
cmd/dist/delete.go vendored
View File

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

6
cmd/dist/edit.go vendored
View File

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

12
cmd/dist/images.go vendored
View File

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

6
cmd/dist/rootfs.go vendored
View File

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