new service: version

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
This commit is contained in:
Akihiro Suda
2017-04-27 07:46:23 +00:00
parent b53105ed25
commit 2562aca1a3
14 changed files with 607 additions and 28 deletions

View File

@@ -14,11 +14,11 @@ import (
"google.golang.org/grpc"
"github.com/Sirupsen/logrus"
"github.com/containerd/containerd"
shimapi "github.com/containerd/containerd/api/services/shim"
"github.com/containerd/containerd/linux/shim"
"github.com/containerd/containerd/reaper"
"github.com/containerd/containerd/sys"
"github.com/containerd/containerd/version"
runc "github.com/containerd/go-runc"
"github.com/urfave/cli"
)
@@ -36,7 +36,7 @@ shim for container lifecycle and reconnection
func main() {
app := cli.NewApp()
app.Name = "containerd-shim"
app.Version = containerd.Version
app.Version = version.Version
app.Usage = usage
app.Flags = []cli.Flag{
cli.BoolFlag{

View File

@@ -8,4 +8,5 @@ import (
_ "github.com/containerd/containerd/services/images"
_ "github.com/containerd/containerd/services/metrics"
_ "github.com/containerd/containerd/services/rootfs"
_ "github.com/containerd/containerd/services/version"
)

View File

@@ -22,12 +22,14 @@ import (
api "github.com/containerd/containerd/api/services/execution"
imagesapi "github.com/containerd/containerd/api/services/images"
rootfsapi "github.com/containerd/containerd/api/services/rootfs"
versionapi "github.com/containerd/containerd/api/services/version"
"github.com/containerd/containerd/content"
"github.com/containerd/containerd/images"
"github.com/containerd/containerd/log"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/snapshot"
"github.com/containerd/containerd/sys"
"github.com/containerd/containerd/version"
metrics "github.com/docker/go-metrics"
"github.com/pkg/errors"
"github.com/urfave/cli"
@@ -50,14 +52,14 @@ var (
func init() {
cli.VersionPrinter = func(c *cli.Context) {
fmt.Println(c.App.Name, containerd.Package, c.App.Version)
fmt.Println(c.App.Name, version.Package, c.App.Version)
}
}
func main() {
app := cli.NewApp()
app.Name = "containerd"
app.Version = containerd.Version
app.Version = version.Version
app.Usage = usage
app.Flags = []cli.Flag{
cli.StringFlag{
@@ -422,6 +424,8 @@ func interceptor(ctx gocontext.Context,
ctx = log.WithModule(ctx, "images")
case grpc_health_v1.HealthServer:
// No need to change the context
case versionapi.VersionServer:
ctx = log.WithModule(ctx, "version")
default:
log.G(ctx).Warnf("unknown GRPC server type: %#v\n", info.Server)
}

View File

@@ -5,7 +5,7 @@ import (
"os"
"github.com/Sirupsen/logrus"
"github.com/containerd/containerd"
"github.com/containerd/containerd/version"
"github.com/urfave/cli"
)
@@ -15,14 +15,14 @@ var (
func init() {
cli.VersionPrinter = func(c *cli.Context) {
fmt.Println(c.App.Name, containerd.Package, c.App.Version)
fmt.Println(c.App.Name, version.Package, c.App.Version)
}
}
func main() {
app := cli.NewApp()
app.Name = "ctr"
app.Version = containerd.Version
app.Version = version.Version
app.Usage = `
__
_____/ /______
@@ -61,6 +61,7 @@ containerd client
execCommand,
pauseCommand,
resumeCommand,
versionCommand,
}
app.Commands = append(app.Commands, extraCmds...)
app.Before = func(context *cli.Context) error {

View File

@@ -16,6 +16,7 @@ import (
"github.com/containerd/containerd/api/services/execution"
imagesapi "github.com/containerd/containerd/api/services/images"
rootfsapi "github.com/containerd/containerd/api/services/rootfs"
versionservice "github.com/containerd/containerd/api/services/version"
"github.com/containerd/containerd/api/types/container"
"github.com/containerd/containerd/content"
"github.com/containerd/containerd/images"
@@ -59,6 +60,14 @@ func getImageStore(clicontext *cli.Context) (images.Store, error) {
return imagesservice.NewStoreFromClient(imagesapi.NewImagesClient(conn)), nil
}
func getVersionService(context *cli.Context) (versionservice.VersionClient, error) {
conn, err := getGRPCConnection(context)
if err != nil {
return nil, err
}
return versionservice.NewVersionClient(conn), nil
}
func getTempDir(id string) (string, error) {
err := os.MkdirAll(filepath.Join(os.TempDir(), "ctr"), 0700)
if err != nil {

43
cmd/ctr/version.go Normal file
View File

@@ -0,0 +1,43 @@
package main
import (
gocontext "context"
"fmt"
"os"
"github.com/containerd/containerd/version"
empty "github.com/golang/protobuf/ptypes/empty"
"github.com/urfave/cli"
)
var versionCommand = cli.Command{
Name: "version",
Usage: "print the version",
Action: func(context *cli.Context) error {
if context.NArg() > 0 {
return fmt.Errorf("no argument expected")
}
fmt.Println("Client:")
fmt.Printf(" Version: %s\n", version.Version)
fmt.Printf(" Revision: %s\n", version.Revision)
fmt.Println("")
vs, err := getVersionService(context)
if err != nil {
return err
}
v, err := vs.Version(gocontext.Background(), &empty.Empty{})
if err != nil {
return err
}
fmt.Println("Server:")
fmt.Printf(" Version: %s\n", v.Version)
fmt.Printf(" Revision: %s\n", v.Revision)
if v.Version != version.Version {
fmt.Fprintf(os.Stderr, "WARNING: version mismatch\n")
}
if v.Revision != version.Revision {
fmt.Fprintf(os.Stderr, "WARNING: revision mismatch\n")
}
return nil
},
}

6
cmd/dist/main.go vendored
View File

@@ -7,7 +7,7 @@ import (
"time"
"github.com/Sirupsen/logrus"
"github.com/containerd/containerd"
"github.com/containerd/containerd/version"
"github.com/urfave/cli"
)
@@ -17,7 +17,7 @@ var (
func init() {
cli.VersionPrinter = func(c *cli.Context) {
fmt.Println(c.App.Name, containerd.Package, c.App.Version)
fmt.Println(c.App.Name, version.Package, c.App.Version)
}
}
@@ -33,7 +33,7 @@ func appContext() (contextpkg.Context, contextpkg.CancelFunc) {
func main() {
app := cli.NewApp()
app.Name = "dist"
app.Version = containerd.Version
app.Version = version.Version
app.Usage = `
___ __
____/ (_)____/ /_