Skip to content

Commit

Permalink
support --auto mode for agent-based private shares (#780)
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelquigley committed Nov 7, 2024
1 parent 3f8e760 commit c728ae8
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 2 deletions.
4 changes: 4 additions & 0 deletions agent/access.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ type access struct {
frontendToken string
token string
bindAddress string
autoMode bool
autoAddress string
autoStartPort uint16
autoEndPort uint16
responseHeaders []string

process *proctree.Child
Expand Down
11 changes: 11 additions & 0 deletions agent/accessPrivate.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package agent
import (
"context"
"errors"
"fmt"
"github.com/openziti/zrok/agent/agentGrpc"
"github.com/openziti/zrok/agent/proctree"
"github.com/openziti/zrok/environment"
Expand All @@ -21,9 +22,19 @@ func (i *agentGrpcImpl) AccessPrivate(_ context.Context, req *agentGrpc.AccessPr
}

accCmd := []string{os.Args[0], "access", "private", "--subordinate", "-b", req.BindAddress, req.Token}
if req.AutoMode {
accCmd = append(accCmd, "--auto", "--auto-address", req.AutoAddress, "--auto-start-port", fmt.Sprintf("%v", req.AutoStartPort))
accCmd = append(accCmd, "--auto-end-port", fmt.Sprintf("%v", req.AutoEndPort))
}
logrus.Info(accCmd)

acc := &access{
token: req.Token,
bindAddress: req.BindAddress,
autoMode: req.AutoMode,
autoAddress: req.AutoAddress,
autoStartPort: uint16(req.AutoStartPort),
autoEndPort: uint16(req.AutoEndPort),
responseHeaders: req.ResponseHeaders,
bootComplete: make(chan struct{}),
agent: i.agent,
Expand Down
12 changes: 10 additions & 2 deletions cmd/zrok/accessPrivate.go
Original file line number Diff line number Diff line change
Expand Up @@ -374,11 +374,19 @@ func (cmd *accessPrivateCommand) accessAgent(args []string, root env_core.Root)
}
defer func() { _ = conn.Close() }()

acc, err := client.AccessPrivate(context.Background(), &agentGrpc.AccessPrivateRequest{
req := &agentGrpc.AccessPrivateRequest{
Token: args[0],
BindAddress: cmd.bindAddress,
ResponseHeaders: cmd.responseHeaders,
})
}
if cmd.autoMode {
req.AutoMode = true
req.AutoAddress = cmd.autoAddress
req.AutoStartPort = uint32(cmd.autoStartPort)
req.AutoEndPort = uint32(cmd.autoEndPort)
}

acc, err := client.AccessPrivate(context.Background(), req)
if err != nil {
tui.Error("error creating access", err)
}
Expand Down

0 comments on commit c728ae8

Please sign in to comment.