From 896125d25d3b853a05bd7cc275292f0041aa456a Mon Sep 17 00:00:00 2001 From: Michael Quigley Date: Fri, 23 Aug 2024 12:27:20 -0400 Subject: [PATCH] version client (#463) --- agent/grpc.go | 5 ++- cmd/zrok/{agent.go => agentStart.go} | 2 +- cmd/zrok/agentVersion.go | 56 ++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 3 deletions(-) rename cmd/zrok/{agent.go => agentStart.go} (96%) create mode 100644 cmd/zrok/agentVersion.go diff --git a/agent/grpc.go b/agent/grpc.go index 12b9da0d..652b55df 100644 --- a/agent/grpc.go +++ b/agent/grpc.go @@ -3,7 +3,7 @@ package agent import ( "context" "github.com/openziti/zrok/agent/grpc" - "github.com/prometheus/common/version" + "github.com/openziti/zrok/build" _ "google.golang.org/grpc" ) @@ -12,5 +12,6 @@ type agentGrpcImpl struct { } func (s *agentGrpcImpl) Version(ctx context.Context, req *grpc.VersionRequest) (*grpc.VersionReply, error) { - return &grpc.VersionReply{V: &version.Version}, nil + v := build.String() + return &grpc.VersionReply{V: &v}, nil } diff --git a/cmd/zrok/agent.go b/cmd/zrok/agentStart.go similarity index 96% rename from cmd/zrok/agent.go rename to cmd/zrok/agentStart.go index 1a040864..698863b2 100644 --- a/cmd/zrok/agent.go +++ b/cmd/zrok/agentStart.go @@ -18,7 +18,7 @@ type agentStartCommand struct { func newAgentStartCommand() *agentStartCommand { cmd := &cobra.Command{ Use: "start", - Short: "Launch a zrok agent", + Short: "Start a zrok agent", Args: cobra.NoArgs, } command := &agentStartCommand{cmd: cmd} diff --git a/cmd/zrok/agentVersion.go b/cmd/zrok/agentVersion.go new file mode 100644 index 00000000..cc4cc3cc --- /dev/null +++ b/cmd/zrok/agentVersion.go @@ -0,0 +1,56 @@ +package main + +import ( + "context" + grpc2 "github.com/openziti/zrok/agent/grpc" + "github.com/openziti/zrok/environment" + "github.com/openziti/zrok/tui" + "github.com/spf13/cobra" + "google.golang.org/grpc" + "google.golang.org/grpc/credentials/insecure" +) + +func init() { + agentCmd.AddCommand(newAgentVersionCommand().cmd) +} + +type agentVersionCommand struct { + cmd *cobra.Command +} + +func newAgentVersionCommand() *agentVersionCommand { + cmd := &cobra.Command{ + Use: "version", + Short: "Retrieve the running zrok Agent version", + Args: cobra.NoArgs, + } + command := &agentVersionCommand{cmd: cmd} + cmd.Run = command.run + return command +} + +func (cmd *agentVersionCommand) run(_ *cobra.Command, _ []string) { + root, err := environment.LoadRoot() + if err != nil { + tui.Error("error loading zrokdir", err) + } + + agentSocket, err := root.AgentSocket() + if err != nil { + tui.Error("error getting agent socket", err) + } + + conn, err := grpc.NewClient("unix://"+agentSocket, grpc.WithTransportCredentials(insecure.NewCredentials())) + if err != nil { + tui.Error("error connecting to agent socket", err) + } + defer conn.Close() + client := grpc2.NewAgentClient(conn) + + v, err := client.Version(context.Background(), &grpc2.VersionRequest{}) + if err != nil { + tui.Error("error getting agent version", err) + } + + println(*v.V) +}