Merge pull request #1043 from dmcgowan/dist-remove-grpc-connect
Clean up dist tool to use containerd client
This commit is contained in:
commit
ac4c2ab35b
30
cmd/dist/common.go
vendored
30
cmd/dist/common.go
vendored
@ -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
18
cmd/dist/delete.go
vendored
@ -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
6
cmd/dist/edit.go
vendored
@ -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
12
cmd/dist/images.go
vendored
@ -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
6
cmd/dist/rootfs.go
vendored
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user