mirror of
https://github.com/openziti/zrok.git
synced 2025-03-16 16:38:15 +01:00
update 'zrok share reserved' to latest subordinate protocol (#789)
This commit is contained in:
parent
ef5e654558
commit
bf3a470ebd
@ -91,7 +91,7 @@ func (cmd *sharePublicCommand) run(_ *cobra.Command, args []string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if !root.IsEnabled() {
|
if !root.IsEnabled() {
|
||||||
tui.Error("unable to load environment; did you 'zrok enable'?", nil)
|
cmd.error("unable to create share", errors.New("unable to load environment; did you 'zrok enable'?"))
|
||||||
}
|
}
|
||||||
|
|
||||||
if cmd.subordinate || cmd.forceLocal {
|
if cmd.subordinate || cmd.forceLocal {
|
||||||
|
@ -22,6 +22,7 @@ import (
|
|||||||
"github.com/openziti/zrok/rest_model_zrok"
|
"github.com/openziti/zrok/rest_model_zrok"
|
||||||
"github.com/openziti/zrok/sdk/golang/sdk"
|
"github.com/openziti/zrok/sdk/golang/sdk"
|
||||||
"github.com/openziti/zrok/tui"
|
"github.com/openziti/zrok/tui"
|
||||||
|
"github.com/pkg/errors"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
@ -66,14 +67,11 @@ func newShareReservedCommand() *shareReservedCommand {
|
|||||||
func (cmd *shareReservedCommand) run(_ *cobra.Command, args []string) {
|
func (cmd *shareReservedCommand) run(_ *cobra.Command, args []string) {
|
||||||
root, err := environment.LoadRoot()
|
root, err := environment.LoadRoot()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !panicInstead {
|
cmd.error("error loading environment", err)
|
||||||
tui.Error("error loading environment", err)
|
|
||||||
}
|
|
||||||
panic(err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if !root.IsEnabled() {
|
if !root.IsEnabled() {
|
||||||
tui.Error("unable to load environment; did you 'zrok enable'?", nil)
|
cmd.error("unable to create share", errors.New("unable to load environment; did you 'zrok enable'?"))
|
||||||
}
|
}
|
||||||
|
|
||||||
if cmd.subordinate || cmd.forceLocal {
|
if cmd.subordinate || cmd.forceLocal {
|
||||||
@ -100,20 +98,14 @@ func (cmd *shareReservedCommand) shareLocal(args []string, root env_core.Root) {
|
|||||||
|
|
||||||
zrok, err := root.Client()
|
zrok, err := root.Client()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !panicInstead {
|
cmd.error("unable to create zrok client", err)
|
||||||
tui.Error("unable to create zrok client", err)
|
|
||||||
}
|
|
||||||
panic(err)
|
|
||||||
}
|
}
|
||||||
auth := httptransport.APIKeyAuth("X-TOKEN", "header", root.Environment().Token)
|
auth := httptransport.APIKeyAuth("X-TOKEN", "header", root.Environment().Token)
|
||||||
req := metadata.NewGetShareDetailParams()
|
req := metadata.NewGetShareDetailParams()
|
||||||
req.ShrToken = shrToken
|
req.ShrToken = shrToken
|
||||||
resp, err := zrok.Metadata.GetShareDetail(req, auth)
|
resp, err := zrok.Metadata.GetShareDetail(req, auth)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !panicInstead {
|
cmd.error("unable to retrieve reserved share", err)
|
||||||
tui.Error("unable to retrieve reserved share", err)
|
|
||||||
}
|
|
||||||
panic(err)
|
|
||||||
}
|
}
|
||||||
target = cmd.overrideEndpoint
|
target = cmd.overrideEndpoint
|
||||||
if target == "" {
|
if target == "" {
|
||||||
@ -125,10 +117,7 @@ func (cmd *shareReservedCommand) shareLocal(args []string, root env_core.Root) {
|
|||||||
|
|
||||||
zif, err := root.ZitiIdentityNamed(root.EnvironmentIdentityName())
|
zif, err := root.ZitiIdentityNamed(root.EnvironmentIdentityName())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !panicInstead {
|
cmd.error("unable to load ziti identity configuration", err)
|
||||||
tui.Error("unable to load ziti identity configuration", err)
|
|
||||||
}
|
|
||||||
panic(err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if resp.Payload.BackendMode != "socks" {
|
if resp.Payload.BackendMode != "socks" {
|
||||||
@ -143,10 +132,7 @@ func (cmd *shareReservedCommand) shareLocal(args []string, root env_core.Root) {
|
|||||||
BackendProxyEndpoint: target,
|
BackendProxyEndpoint: target,
|
||||||
}
|
}
|
||||||
if _, err := zrok.Share.UpdateShare(upReq, auth); err != nil {
|
if _, err := zrok.Share.UpdateShare(upReq, auth); err != nil {
|
||||||
if !panicInstead {
|
cmd.error("unable to update backend target", err)
|
||||||
tui.Error("unable to update backend target", err)
|
|
||||||
}
|
|
||||||
panic(err)
|
|
||||||
}
|
}
|
||||||
if !cmd.subordinate {
|
if !cmd.subordinate {
|
||||||
logrus.Infof("updated backend target to: %v", target)
|
logrus.Infof("updated backend target to: %v", target)
|
||||||
@ -166,24 +152,6 @@ func (cmd *shareReservedCommand) shareLocal(args []string, root env_core.Root) {
|
|||||||
shareDescription = fmt.Sprintf("access your share with: %v", tui.Code.Render(fmt.Sprintf("zrok access private %v", shrToken)))
|
shareDescription = fmt.Sprintf("access your share with: %v", tui.Code.Render(fmt.Sprintf("zrok access private %v", shrToken)))
|
||||||
}
|
}
|
||||||
|
|
||||||
if cmd.subordinate {
|
|
||||||
data := make(map[string]interface{})
|
|
||||||
data["token"] = resp.Payload.Token
|
|
||||||
data["backend_mode"] = resp.Payload.BackendMode
|
|
||||||
data["share_mode"] = resp.Payload.ShareMode
|
|
||||||
if resp.Payload.FrontendEndpoint != "" {
|
|
||||||
data["frontend_endpoints"] = resp.Payload.FrontendEndpoint
|
|
||||||
}
|
|
||||||
if resp.Payload.BackendProxyEndpoint != "" {
|
|
||||||
data["target"] = resp.Payload.BackendProxyEndpoint
|
|
||||||
}
|
|
||||||
jsonData, err := json.Marshal(data)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
fmt.Println(string(jsonData))
|
|
||||||
}
|
|
||||||
|
|
||||||
mdl := newShareModel(shrToken, []string{shareDescription}, sdk.ShareMode(resp.Payload.ShareMode), sdk.BackendMode(resp.Payload.BackendMode))
|
mdl := newShareModel(shrToken, []string{shareDescription}, sdk.ShareMode(resp.Payload.ShareMode), sdk.BackendMode(resp.Payload.BackendMode))
|
||||||
if !cmd.headless && !cmd.subordinate {
|
if !cmd.headless && !cmd.subordinate {
|
||||||
proxy.SetCaddyLoggingWriter(mdl)
|
proxy.SetCaddyLoggingWriter(mdl)
|
||||||
@ -202,10 +170,7 @@ func (cmd *shareReservedCommand) shareLocal(args []string, root env_core.Root) {
|
|||||||
|
|
||||||
be, err := proxy.NewBackend(cfg)
|
be, err := proxy.NewBackend(cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !panicInstead {
|
cmd.error("unable to create 'proxy' backend", err)
|
||||||
tui.Error("unable to create proxy backend handler", err)
|
|
||||||
}
|
|
||||||
panic(err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
@ -224,10 +189,7 @@ func (cmd *shareReservedCommand) shareLocal(args []string, root env_core.Root) {
|
|||||||
|
|
||||||
be, err := proxy.NewCaddyWebBackend(cfg)
|
be, err := proxy.NewCaddyWebBackend(cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !panicInstead {
|
cmd.error("unable to create 'web' backend", err)
|
||||||
tui.Error("error creating web backend", err)
|
|
||||||
}
|
|
||||||
panic(err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
@ -246,10 +208,7 @@ func (cmd *shareReservedCommand) shareLocal(args []string, root env_core.Root) {
|
|||||||
|
|
||||||
be, err := tcpTunnel.NewBackend(cfg)
|
be, err := tcpTunnel.NewBackend(cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !panicInstead {
|
cmd.error("unable to create 'tcpTunnel' backend", err)
|
||||||
tui.Error("error creating tcpTunnel backend", err)
|
|
||||||
}
|
|
||||||
panic(err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
@ -268,10 +227,7 @@ func (cmd *shareReservedCommand) shareLocal(args []string, root env_core.Root) {
|
|||||||
|
|
||||||
be, err := udpTunnel.NewBackend(cfg)
|
be, err := udpTunnel.NewBackend(cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !panicInstead {
|
cmd.error("unable to create 'udpTunnel' backend", err)
|
||||||
tui.Error("error creating udpTunnel backend", err)
|
|
||||||
}
|
|
||||||
panic(err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
@ -289,10 +245,7 @@ func (cmd *shareReservedCommand) shareLocal(args []string, root env_core.Root) {
|
|||||||
|
|
||||||
be, err := proxy.NewCaddyfileBackend(cfg)
|
be, err := proxy.NewCaddyfileBackend(cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !panicInstead {
|
cmd.error("unable to create 'caddy' backend", err)
|
||||||
tui.Error("error creating caddy backend", err)
|
|
||||||
}
|
|
||||||
panic(err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
@ -311,10 +264,7 @@ func (cmd *shareReservedCommand) shareLocal(args []string, root env_core.Root) {
|
|||||||
|
|
||||||
be, err := drive.NewBackend(cfg)
|
be, err := drive.NewBackend(cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !panicInstead {
|
cmd.error("unable to create 'drive' backend", err)
|
||||||
tui.Error("error creating drive backend", err)
|
|
||||||
}
|
|
||||||
panic(err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
@ -332,10 +282,7 @@ func (cmd *shareReservedCommand) shareLocal(args []string, root env_core.Root) {
|
|||||||
|
|
||||||
be, err := socks.NewBackend(cfg)
|
be, err := socks.NewBackend(cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !panicInstead {
|
cmd.error("unable to create 'socks' backend", err)
|
||||||
tui.Error("error creating socks backend", err)
|
|
||||||
}
|
|
||||||
panic(err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
@ -354,10 +301,7 @@ func (cmd *shareReservedCommand) shareLocal(args []string, root env_core.Root) {
|
|||||||
|
|
||||||
be, err := vpn.NewBackend(cfg)
|
be, err := vpn.NewBackend(cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !panicInstead {
|
cmd.error("unable to create 'vpn' backend", err)
|
||||||
tui.Error("error creating VPN backend", err)
|
|
||||||
}
|
|
||||||
panic(err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
@ -367,10 +311,29 @@ func (cmd *shareReservedCommand) shareLocal(args []string, root env_core.Root) {
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
default:
|
default:
|
||||||
tui.Error("invalid backend mode", nil)
|
cmd.error("unable to share", errors.New("invalid backend mode"))
|
||||||
}
|
}
|
||||||
|
|
||||||
if cmd.headless {
|
if cmd.subordinate {
|
||||||
|
data := make(map[string]interface{})
|
||||||
|
data["message"] = "boot"
|
||||||
|
data["token"] = resp.Payload.Token
|
||||||
|
data["backend_mode"] = resp.Payload.BackendMode
|
||||||
|
data["share_mode"] = resp.Payload.ShareMode
|
||||||
|
if resp.Payload.FrontendEndpoint != "" {
|
||||||
|
data["frontend_endpoints"] = resp.Payload.FrontendEndpoint
|
||||||
|
}
|
||||||
|
if resp.Payload.BackendProxyEndpoint != "" {
|
||||||
|
data["target"] = resp.Payload.BackendProxyEndpoint
|
||||||
|
}
|
||||||
|
jsonData, err := json.Marshal(data)
|
||||||
|
if err != nil {
|
||||||
|
cmd.error("unable to marshal", err)
|
||||||
|
}
|
||||||
|
fmt.Println(string(jsonData))
|
||||||
|
}
|
||||||
|
|
||||||
|
if cmd.headless && !cmd.subordinate {
|
||||||
switch resp.Payload.ShareMode {
|
switch resp.Payload.ShareMode {
|
||||||
case string(sdk.PublicShareMode):
|
case string(sdk.PublicShareMode):
|
||||||
logrus.Infof("access your zrok share: %v", resp.Payload.FrontendEndpoint)
|
logrus.Infof("access your zrok share: %v", resp.Payload.FrontendEndpoint)
|
||||||
@ -390,6 +353,7 @@ func (cmd *shareReservedCommand) shareLocal(args []string, root env_core.Root) {
|
|||||||
select {
|
select {
|
||||||
case req := <-requests:
|
case req := <-requests:
|
||||||
data := make(map[string]interface{})
|
data := make(map[string]interface{})
|
||||||
|
data["message"] = "access"
|
||||||
data["remote-address"] = req.RemoteAddr
|
data["remote-address"] = req.RemoteAddr
|
||||||
data["method"] = req.Method
|
data["method"] = req.Method
|
||||||
data["path"] = req.Path
|
data["path"] = req.Path
|
||||||
@ -423,6 +387,16 @@ func (cmd *shareReservedCommand) shareLocal(args []string, root env_core.Root) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (cmd *shareReservedCommand) error(msg string, err error) {
|
||||||
|
if cmd.subordinate {
|
||||||
|
subordinateError(errors.Wrap(err, msg))
|
||||||
|
}
|
||||||
|
if !panicInstead {
|
||||||
|
tui.Error(msg, err)
|
||||||
|
}
|
||||||
|
panic(errors.Wrap(err, msg))
|
||||||
|
}
|
||||||
|
|
||||||
func (cmd *shareReservedCommand) shareAgent(args []string, root env_core.Root) {
|
func (cmd *shareReservedCommand) shareAgent(args []string, root env_core.Root) {
|
||||||
logrus.Info("starting")
|
logrus.Info("starting")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user