diff options
Diffstat (limited to 'cmd/crioctl/system.go')
-rw-r--r-- | cmd/crioctl/system.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/cmd/crioctl/system.go b/cmd/crioctl/system.go new file mode 100644 index 000000000..7e04161c2 --- /dev/null +++ b/cmd/crioctl/system.go @@ -0,0 +1,41 @@ +package main + +import ( + "fmt" + + "github.com/urfave/cli" + "golang.org/x/net/context" + pb "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" +) + +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 { + r, err := client.Version(context.Background(), &pb.VersionRequest{Version: version}) + if err != nil { + return err + } + fmt.Printf("VersionResponse: Version: %s, RuntimeName: %s, RuntimeVersion: %s, RuntimeApiVersion: %s\n", r.Version, r.RuntimeName, r.RuntimeVersion, r.RuntimeApiVersion) + return nil +} |