2016-09-23 07:50:05 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
|
|
|
|
"github.com/urfave/cli"
|
|
|
|
"golang.org/x/net/context"
|
2017-08-04 11:13:19 +00:00
|
|
|
pb "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime"
|
2016-09-23 07:50:05 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
var runtimeVersionCommand = cli.Command{
|
|
|
|
Name: "runtimeversion",
|
|
|
|
Usage: "get runtime version information",
|
|
|
|
Action: func(context *cli.Context) error {
|
|
|
|
// Set up a connection to the server.
|
|
|
|
conn, err := getClientConnection(context)
|
|
|
|
if err != nil {
|
|
|
|
return fmt.Errorf("failed to connect: %v", err)
|
|
|
|
}
|
|
|
|
defer conn.Close()
|
|
|
|
client := pb.NewRuntimeServiceClient(conn)
|
|
|
|
|
|
|
|
// Test RuntimeServiceClient.Version
|
|
|
|
version := "v1alpha1"
|
|
|
|
err = Version(client, version)
|
|
|
|
if err != nil {
|
|
|
|
return fmt.Errorf("Getting the runtime version failed: %v", err)
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
// Version sends a VersionRequest to the server, and parses the returned VersionResponse.
|
|
|
|
func Version(client pb.RuntimeServiceClient, version string) error {
|
2017-02-03 14:41:28 +00:00
|
|
|
r, err := client.Version(context.Background(), &pb.VersionRequest{Version: version})
|
2016-09-23 07:50:05 +00:00
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2017-02-03 14:41:28 +00:00
|
|
|
fmt.Printf("VersionResponse: Version: %s, RuntimeName: %s, RuntimeVersion: %s, RuntimeApiVersion: %s\n", r.Version, r.RuntimeName, r.RuntimeVersion, r.RuntimeApiVersion)
|
2016-09-23 07:50:05 +00:00
|
|
|
return nil
|
|
|
|
}
|