cmd/{ctr,dist}: move images command to ctr

Rather than make a large PR, we can move parts of the dist commands over
piece by piece. This first step moves over the images command. Others
will follow.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
This commit is contained in:
Stephen J Day 2017-07-14 14:50:02 -07:00
parent d50e4bcdf3
commit f7306d7f6c
No known key found for this signature in database
GPG Key ID: 67B3DED84EDC823F
4 changed files with 37 additions and 46 deletions

View File

@ -39,7 +39,7 @@ var imagesListCommand = cli.Command{
)
defer cancel()
client, err := getClient(clicontext)
client, err := newClient(clicontext)
if err != nil {
return err
}
@ -95,7 +95,7 @@ var imagesSetLabelsCommand = cli.Command{
)
defer cancel()
client, err := getClient(clicontext)
client, err := newClient(clicontext)
if err != nil {
return err
}
@ -148,7 +148,7 @@ var imageRemoveCommand = cli.Command{
ctx, cancel := appContext(clicontext)
defer cancel()
client, err := getClient(clicontext)
client, err := newClient(clicontext)
if err != nil {
return err
}
@ -172,30 +172,3 @@ var imageRemoveCommand = cli.Command{
return exitErr
},
}
// TODO(stevvooe): These helpers should go away when we merge dist and ctr.
func objectWithLabelArgs(clicontext *cli.Context) (string, map[string]string) {
var (
name = clicontext.Args().First()
labelStrings = clicontext.Args().Tail()
)
return name, labelArgs(labelStrings)
}
func labelArgs(labelStrings []string) map[string]string {
labels := make(map[string]string, len(labelStrings))
for _, label := range labelStrings {
parts := strings.SplitN(label, "=", 2)
key := parts[0]
value := "true"
if len(parts) > 1 {
value = parts[1]
}
labels[key] = value
}
return labels
}

View File

@ -46,6 +46,10 @@ containerd CLI
Name: "timeout",
Usage: "total timeout for ctr commands",
},
cli.DurationFlag{
Name: "connect-timeout",
Usage: "timeout for connecting to containerd",
},
cli.StringFlag{
Name: "namespace, n",
Usage: "namespace to use with commands",
@ -54,13 +58,14 @@ containerd CLI
},
}
app.Commands = append([]cli.Command{
attachCommand,
imageCommand,
containersCommand,
checkpointCommand,
runCommand,
attachCommand,
deleteCommand,
namespacesCommand,
eventsCommand,
containersCommand,
taskListCommand,
infoCommand,
killCommand,

27
cmd/dist/labels.go vendored
View File

@ -9,7 +9,7 @@ import (
"github.com/urfave/cli"
)
var labelCommand = cli.Command{
var labelContentCommand = cli.Command{
Name: "label",
Usage: "adds labels to content",
ArgsUsage: "[flags] <digest> [<label>=<value> ...]",
@ -65,3 +65,28 @@ var labelCommand = cli.Command{
return nil
},
}
func objectWithLabelArgs(clicontext *cli.Context) (string, map[string]string) {
var (
namespace = clicontext.Args().First()
labelStrings = clicontext.Args().Tail()
)
return namespace, labelArgs(labelStrings)
}
func labelArgs(labelStrings []string) map[string]string {
labels := make(map[string]string, len(labelStrings))
for _, label := range labelStrings {
parts := strings.SplitN(label, "=", 2)
key := parts[0]
value := "true"
if len(parts) > 1 {
value = parts[1]
}
labels[key] = value
}
return labels
}

14
cmd/dist/main.go vendored
View File

@ -45,17 +45,6 @@ distribution tool
Name: "timeout",
Usage: "total timeout for dist commands",
},
cli.DurationFlag{
Name: "connect-timeout",
Usage: "timeout for connecting to containerd",
},
cli.StringFlag{
// TODO(stevvooe): for now, we allow circumventing the GRPC. Once
// we have clear separation, this will likely go away.
Name: "root",
Usage: "path to content store root",
Value: "/var/lib/containerd",
},
cli.StringFlag{
Name: "address, a",
Usage: "address for containerd's GRPC server",
@ -69,7 +58,6 @@ distribution tool
},
}
app.Commands = []cli.Command{
imageCommand,
contentCommand,
pullCommand,
fetchCommand,
@ -101,6 +89,6 @@ var contentCommand = cli.Command{
getCommand,
editCommand,
deleteCommand,
labelCommand,
labelContentCommand,
},
}