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:
parent
3cdd7a9153
commit
6c498c61eb
30
cmd/dist/common.go
vendored
30
cmd/dist/common.go
vendored
@ -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
18
cmd/dist/delete.go
vendored
@ -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
6
cmd/dist/edit.go
vendored
@ -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
12
cmd/dist/images.go
vendored
@ -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
6
cmd/dist/rootfs.go
vendored
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user