Skip to content

Commit

Permalink
rudimentary 'zrok agent status' implementation (#463)
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelquigley committed Aug 26, 2024
1 parent 66a95f0 commit b69025c
Show file tree
Hide file tree
Showing 9 changed files with 213 additions and 80 deletions.
2 changes: 1 addition & 1 deletion agent/agent.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func (a *Agent) Run() error {
a.agentSocket = agentSocket

srv := grpc.NewServer()
agentGrpc.RegisterAgentServer(srv, &agentGrpcImpl{})
agentGrpc.RegisterAgentServer(srv, &agentGrpcImpl{a: a})
if err := srv.Serve(l); err != nil {
return err
}
Expand Down
113 changes: 49 additions & 64 deletions agent/agentGrpc/agent.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 7 additions & 8 deletions agent/agentGrpc/agent.proto
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ syntax = "proto3";
option go_package = "github.com/openziti/zrok/agent/agentGrpc";

service Agent {
rpc Status(StatusRequest) returns (StatusReply) {}
rpc Version(VersionRequest) returns (VersionReply) {}
}

Expand All @@ -17,20 +18,18 @@ message ShareDetail {
string shareMode = 2;
string backendMode = 3;
bool reserved = 4;
string uniqueName = 5;
repeated string frontendEndpoint = 6;
string backendEndpoint = 7;
bool closed = 8;
string status = 9;
repeated string frontendEndpoint = 5;
string backendEndpoint = 6;
bool closed = 7;
string status = 8;
}

message StatusRequest {
repeated AccessDetail accesses = 1;
repeated ShareDetail shares = 2;
}

message StatusReply {
repeated string v = 1;
repeated AccessDetail accesses = 1;
repeated ShareDetail shares = 2;
}

message VersionRequest {
Expand Down
38 changes: 38 additions & 0 deletions agent/agentGrpc/agent_grpc.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 10 additions & 1 deletion agent/model.go
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
package agent

import (
"github.com/openziti/zrok/agent/agentGrpc"
"github.com/openziti/zrok/sdk/golang/sdk"
"time"
)

type share struct {
token string
token string
target string

basicAuth []string
frontendSelection []string
shareMode sdk.ShareMode
backendMode sdk.BackendMode
reserved bool
insecure bool
oauthProvider string
oauthEmailAddressPatterns []string
Expand All @@ -25,3 +29,8 @@ type access struct {
bindAddress string
responseHeaders []string
}

type agentGrpcImpl struct {
agentGrpc.UnimplementedAgentServer
a *Agent
}
32 changes: 32 additions & 0 deletions agent/status.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package agent

import (
"context"
"github.com/openziti/zrok/agent/agentGrpc"
)

func (i *agentGrpcImpl) Status(_ context.Context, _ *agentGrpc.StatusRequest) (*agentGrpc.StatusReply, error) {
var accesses []*agentGrpc.AccessDetail
for token, acc := range i.a.accesses {
accesses = append(accesses, &agentGrpc.AccessDetail{
Token: token,
BindAddress: acc.bindAddress,
ResponseHeaders: acc.responseHeaders,
})
}

var shares []*agentGrpc.ShareDetail
for token, shr := range i.a.shares {
shares = append(shares, &agentGrpc.ShareDetail{
Token: token,
ShareMode: string(shr.shareMode),
BackendMode: string(shr.backendMode),
Reserved: shr.reserved,
FrontendEndpoint: shr.frontendSelection,
BackendEndpoint: shr.target,
Closed: shr.closed,
})
}

return &agentGrpc.StatusReply{Accesses: accesses, Shares: shares}, nil
}
6 changes: 1 addition & 5 deletions agent/grpcImpl.go → agent/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,7 @@ import (
"github.com/sirupsen/logrus"
)

type agentGrpcImpl struct {
agentGrpc.UnimplementedAgentServer
}

func (s *agentGrpcImpl) Version(_ context.Context, _ *agentGrpc.VersionRequest) (*agentGrpc.VersionReply, error) {
func (i *agentGrpcImpl) Version(_ context.Context, _ *agentGrpc.VersionRequest) (*agentGrpc.VersionReply, error) {
v := build.String()
logrus.Infof("responding to version inquiry with '%v'", v)
return &agentGrpc.VersionReply{V: v}, nil
Expand Down
Loading

0 comments on commit b69025c

Please sign in to comment.