use sdk types/constants throughout the codebase for backend and share modes (#34)

This commit is contained in:
Michael Quigley 2023-07-17 16:21:29 -04:00
parent 141c9ae685
commit c0503ae593
No known key found for this signature in database
GPG Key ID: 9B60314A9DD20A62
10 changed files with 41 additions and 31 deletions

View File

@ -6,6 +6,7 @@ import (
"github.com/openziti/zrok/model" "github.com/openziti/zrok/model"
"github.com/openziti/zrok/rest_client_zrok/share" "github.com/openziti/zrok/rest_client_zrok/share"
"github.com/openziti/zrok/rest_model_zrok" "github.com/openziti/zrok/rest_model_zrok"
"github.com/openziti/zrok/sdk"
"github.com/openziti/zrok/tui" "github.com/openziti/zrok/tui"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
@ -39,8 +40,8 @@ func newReserveCommand() *reserveCommand {
} }
func (cmd *reserveCommand) run(_ *cobra.Command, args []string) { func (cmd *reserveCommand) run(_ *cobra.Command, args []string) {
shareMode := args[0] shareMode := sdk.ShareMode(args[0])
if shareMode != "public" && shareMode != "private" { if shareMode != sdk.PublicShareMode && shareMode != sdk.PrivateShareMode {
tui.Error("invalid sharing mode; expecting 'public' or 'private'", nil) tui.Error("invalid sharing mode; expecting 'public' or 'private'", nil)
} }
@ -83,13 +84,13 @@ func (cmd *reserveCommand) run(_ *cobra.Command, args []string) {
req := share.NewShareParams() req := share.NewShareParams()
req.Body = &rest_model_zrok.ShareRequest{ req.Body = &rest_model_zrok.ShareRequest{
EnvZID: env.Environment().ZitiIdentity, EnvZID: env.Environment().ZitiIdentity,
ShareMode: shareMode, ShareMode: string(shareMode),
BackendMode: cmd.backendMode, BackendMode: cmd.backendMode,
BackendProxyEndpoint: target, BackendProxyEndpoint: target,
AuthScheme: string(model.None), AuthScheme: string(model.None),
Reserved: true, Reserved: true,
} }
if shareMode == "public" { if shareMode == sdk.PublicShareMode {
req.Body.FrontendSelection = cmd.frontendSelection req.Body.FrontendSelection = cmd.frontendSelection
} }
if len(cmd.basicAuth) > 0 { if len(cmd.basicAuth) > 0 {

View File

@ -14,6 +14,7 @@ import (
"github.com/openziti/zrok/rest_client_zrok" "github.com/openziti/zrok/rest_client_zrok"
"github.com/openziti/zrok/rest_client_zrok/share" "github.com/openziti/zrok/rest_client_zrok/share"
"github.com/openziti/zrok/rest_model_zrok" "github.com/openziti/zrok/rest_model_zrok"
"github.com/openziti/zrok/sdk"
"github.com/openziti/zrok/tui" "github.com/openziti/zrok/tui"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
@ -110,7 +111,7 @@ func (cmd *sharePrivateCommand) run(_ *cobra.Command, args []string) {
req := share.NewShareParams() req := share.NewShareParams()
req.Body = &rest_model_zrok.ShareRequest{ req.Body = &rest_model_zrok.ShareRequest{
EnvZID: env.Environment().ZitiIdentity, EnvZID: env.Environment().ZitiIdentity,
ShareMode: "private", ShareMode: string(sdk.PrivateShareMode),
BackendMode: cmd.backendMode, BackendMode: cmd.backendMode,
BackendProxyEndpoint: target, BackendProxyEndpoint: target,
AuthScheme: string(model.None), AuthScheme: string(model.None),
@ -231,7 +232,7 @@ func (cmd *sharePrivateCommand) run(_ *cobra.Command, args []string) {
} else { } else {
shareDescription := fmt.Sprintf("access your share with: %v", tui.Code.Render(fmt.Sprintf("zrok access private %v", resp.Payload.ShrToken))) shareDescription := fmt.Sprintf("access your share with: %v", tui.Code.Render(fmt.Sprintf("zrok access private %v", resp.Payload.ShrToken)))
mdl := newShareModel(resp.Payload.ShrToken, []string{shareDescription}, "private", cmd.backendMode) mdl := newShareModel(resp.Payload.ShrToken, []string{shareDescription}, sdk.PrivateShareMode, sdk.BackendMode(cmd.backendMode))
logrus.SetOutput(mdl) logrus.SetOutput(mdl)
prg := tea.NewProgram(mdl, tea.WithAltScreen()) prg := tea.NewProgram(mdl, tea.WithAltScreen())
mdl.prg = prg mdl.prg = prg

View File

@ -12,6 +12,7 @@ import (
"github.com/openziti/zrok/rest_client_zrok" "github.com/openziti/zrok/rest_client_zrok"
"github.com/openziti/zrok/rest_client_zrok/share" "github.com/openziti/zrok/rest_client_zrok/share"
"github.com/openziti/zrok/rest_model_zrok" "github.com/openziti/zrok/rest_model_zrok"
"github.com/openziti/zrok/sdk"
"github.com/openziti/zrok/tui" "github.com/openziti/zrok/tui"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
@ -104,7 +105,7 @@ func (cmd *sharePublicCommand) run(_ *cobra.Command, args []string) {
req := share.NewShareParams() req := share.NewShareParams()
req.Body = &rest_model_zrok.ShareRequest{ req.Body = &rest_model_zrok.ShareRequest{
EnvZID: env.Environment().ZitiIdentity, EnvZID: env.Environment().ZitiIdentity,
ShareMode: "public", ShareMode: string(sdk.PublicShareMode),
FrontendSelection: cmd.frontendSelection, FrontendSelection: cmd.frontendSelection,
BackendMode: cmd.backendMode, BackendMode: cmd.backendMode,
BackendProxyEndpoint: target, BackendProxyEndpoint: target,
@ -185,7 +186,7 @@ func (cmd *sharePublicCommand) run(_ *cobra.Command, args []string) {
} }
} else { } else {
mdl := newShareModel(resp.Payload.ShrToken, resp.Payload.FrontendProxyEndpoints, "public", cmd.backendMode) mdl := newShareModel(resp.Payload.ShrToken, resp.Payload.FrontendProxyEndpoints, sdk.PublicShareMode, sdk.BackendMode(cmd.backendMode))
logrus.SetOutput(mdl) logrus.SetOutput(mdl)
prg := tea.NewProgram(mdl, tea.WithAltScreen()) prg := tea.NewProgram(mdl, tea.WithAltScreen())
mdl.prg = prg mdl.prg = prg

View File

@ -10,6 +10,7 @@ import (
"github.com/openziti/zrok/rest_client_zrok/metadata" "github.com/openziti/zrok/rest_client_zrok/metadata"
"github.com/openziti/zrok/rest_client_zrok/share" "github.com/openziti/zrok/rest_client_zrok/share"
"github.com/openziti/zrok/rest_model_zrok" "github.com/openziti/zrok/rest_model_zrok"
"github.com/openziti/zrok/sdk"
"github.com/openziti/zrok/tui" "github.com/openziti/zrok/tui"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
@ -144,10 +145,10 @@ func (cmd *shareReservedCommand) run(_ *cobra.Command, args []string) {
if cmd.headless { if cmd.headless {
switch resp.Payload.ShareMode { switch resp.Payload.ShareMode {
case "public": case string(sdk.PublicShareMode):
logrus.Infof("access your zrok share: %v", resp.Payload.FrontendEndpoint) logrus.Infof("access your zrok share: %v", resp.Payload.FrontendEndpoint)
case "private": case string(sdk.PrivateShareMode):
logrus.Infof("use this command to access your zrok share: 'zrok access private %v'", shrToken) logrus.Infof("use this command to access your zrok share: 'zrok access private %v'", shrToken)
} }
for { for {
@ -159,13 +160,13 @@ func (cmd *shareReservedCommand) run(_ *cobra.Command, args []string) {
} else { } else {
var shareDescription string var shareDescription string
switch resp.Payload.ShareMode { switch resp.Payload.ShareMode {
case "public": case string(sdk.PublicShareMode):
shareDescription = resp.Payload.FrontendEndpoint shareDescription = resp.Payload.FrontendEndpoint
case "private": case string(sdk.PrivateShareMode):
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)))
} }
mdl := newShareModel(shrToken, []string{shareDescription}, resp.Payload.ShareMode, resp.Payload.BackendMode) mdl := newShareModel(shrToken, []string{shareDescription}, sdk.ShareMode(resp.Payload.ShareMode), sdk.BackendMode(resp.Payload.BackendMode))
logrus.SetOutput(mdl) logrus.SetOutput(mdl)
prg := tea.NewProgram(mdl, tea.WithAltScreen()) prg := tea.NewProgram(mdl, tea.WithAltScreen())
mdl.prg = prg mdl.prg = prg

View File

@ -2,6 +2,7 @@ package main
import ( import (
"fmt" "fmt"
"github.com/openziti/zrok/sdk"
"strings" "strings"
"time" "time"
@ -19,8 +20,8 @@ var wordwrapBreakpoints = map[rune]bool{' ': true, '-': true}
type shareModel struct { type shareModel struct {
shrToken string shrToken string
frontendDescriptions []string frontendDescriptions []string
shareMode string shareMode sdk.ShareMode
backendMode string backendMode sdk.BackendMode
requests []*endpoints.Request requests []*endpoints.Request
log []string log []string
showLog bool showLog bool
@ -32,7 +33,7 @@ type shareModel struct {
type shareLogLine string type shareLogLine string
func newShareModel(shrToken string, frontendEndpoints []string, shareMode, backendMode string) *shareModel { func newShareModel(shrToken string, frontendEndpoints []string, shareMode sdk.ShareMode, backendMode sdk.BackendMode) *shareModel {
return &shareModel{ return &shareModel{
shrToken: shrToken, shrToken: shrToken,
frontendDescriptions: frontendEndpoints, frontendDescriptions: frontendEndpoints,
@ -116,15 +117,15 @@ func (m *shareModel) adjustPaneHeights() {
func (m *shareModel) renderConfig() string { func (m *shareModel) renderConfig() string {
out := "[" out := "["
if m.shareMode == "public" { if m.shareMode == "public" {
out += shareModePublicStyle.Render(strings.ToUpper(m.shareMode)) out += shareModePublicStyle.Render(strings.ToUpper(string(m.shareMode)))
} else { } else {
out += shareModePrivateStyle.Render(strings.ToUpper(m.shareMode)) out += shareModePrivateStyle.Render(strings.ToUpper(string(m.shareMode)))
} }
out += "] [" out += "] ["
if m.backendMode == "proxy" { if m.backendMode == "proxy" {
out += backendModeProxyStyle.Render(strings.ToUpper(m.backendMode)) out += backendModeProxyStyle.Render(strings.ToUpper(string(m.backendMode)))
} else { } else {
out += backendModeWebStyle.Render(strings.ToUpper(m.backendMode)) out += backendModeWebStyle.Render(strings.ToUpper(string(m.backendMode)))
} }
out += "]" out += "]"
return out return out

View File

@ -14,6 +14,7 @@ import (
"github.com/openziti/zrok/rest_client_zrok" "github.com/openziti/zrok/rest_client_zrok"
"github.com/openziti/zrok/rest_client_zrok/share" "github.com/openziti/zrok/rest_client_zrok/share"
"github.com/openziti/zrok/rest_model_zrok" "github.com/openziti/zrok/rest_model_zrok"
"github.com/openziti/zrok/sdk"
"github.com/openziti/zrok/tui" "github.com/openziti/zrok/tui"
"github.com/openziti/zrok/util" "github.com/openziti/zrok/util"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
@ -198,9 +199,9 @@ func (l *looper) startup() {
tunnelReq := share.NewShareParams() tunnelReq := share.NewShareParams()
tunnelReq.Body = &rest_model_zrok.ShareRequest{ tunnelReq.Body = &rest_model_zrok.ShareRequest{
EnvZID: l.env.ZitiIdentity, EnvZID: l.env.ZitiIdentity,
ShareMode: "public", ShareMode: string(sdk.PublicShareMode),
FrontendSelection: l.cmd.frontendSelection, FrontendSelection: l.cmd.frontendSelection,
BackendMode: "proxy", BackendMode: string(sdk.ProxyBackendMode),
BackendProxyEndpoint: fmt.Sprintf("looper#%d", l.id), BackendProxyEndpoint: fmt.Sprintf("looper#%d", l.id),
AuthScheme: string(model.None), AuthScheme: string(model.None),
} }

View File

@ -4,6 +4,7 @@ import (
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
"github.com/openziti/zrok/controller/store" "github.com/openziti/zrok/controller/store"
"github.com/openziti/zrok/controller/zrokEdgeSdk" "github.com/openziti/zrok/controller/zrokEdgeSdk"
"github.com/openziti/zrok/sdk"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
) )
@ -38,11 +39,11 @@ func (a *accountRelaxAction) HandleAccount(acct *store.Account, _, _ int64, _ *B
for _, shr := range shrs { for _, shr := range shrs {
switch shr.ShareMode { switch shr.ShareMode {
case "public": case string(sdk.PublicShareMode):
if err := relaxPublicShare(a.str, edge, shr, trx); err != nil { if err := relaxPublicShare(a.str, edge, shr, trx); err != nil {
return errors.Wrap(err, "error relaxing public share") return errors.Wrap(err, "error relaxing public share")
} }
case "private": case string(sdk.PrivateShareMode):
if err := relaxPrivateShare(a.str, edge, shr, trx); err != nil { if err := relaxPrivateShare(a.str, edge, shr, trx); err != nil {
return errors.Wrap(err, "error relaxing private share") return errors.Wrap(err, "error relaxing private share")
} }

View File

@ -4,6 +4,7 @@ import (
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
"github.com/openziti/zrok/controller/store" "github.com/openziti/zrok/controller/store"
"github.com/openziti/zrok/controller/zrokEdgeSdk" "github.com/openziti/zrok/controller/zrokEdgeSdk"
"github.com/openziti/zrok/sdk"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
) )
@ -33,11 +34,11 @@ func (a *environmentRelaxAction) HandleEnvironment(env *store.Environment, rxByt
for _, shr := range shrs { for _, shr := range shrs {
if !shr.Deleted { if !shr.Deleted {
switch shr.ShareMode { switch shr.ShareMode {
case "public": case string(sdk.PublicShareMode):
if err := relaxPublicShare(a.str, edge, shr, trx); err != nil { if err := relaxPublicShare(a.str, edge, shr, trx); err != nil {
return err return err
} }
case "private": case string(sdk.PrivateShareMode):
if err := relaxPrivateShare(a.str, edge, shr, trx); err != nil { if err := relaxPrivateShare(a.str, edge, shr, trx); err != nil {
return err return err
} }

View File

@ -5,6 +5,7 @@ import (
"github.com/openziti/edge-api/rest_management_api_client" "github.com/openziti/edge-api/rest_management_api_client"
"github.com/openziti/zrok/controller/store" "github.com/openziti/zrok/controller/store"
"github.com/openziti/zrok/controller/zrokEdgeSdk" "github.com/openziti/zrok/controller/zrokEdgeSdk"
"github.com/openziti/zrok/sdk"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
) )
@ -28,11 +29,11 @@ func (a *shareRelaxAction) HandleShare(shr *store.Share, _, _ int64, _ *Bandwidt
} }
switch shr.ShareMode { switch shr.ShareMode {
case "public": case string(sdk.PublicShareMode):
if err := relaxPublicShare(a.str, edge, shr, trx); err != nil { if err := relaxPublicShare(a.str, edge, shr, trx); err != nil {
return err return err
} }
case "private": case string(sdk.PrivateShareMode):
if err := relaxPrivateShare(a.str, edge, shr, trx); err != nil { if err := relaxPrivateShare(a.str, edge, shr, trx); err != nil {
return err return err
} }

View File

@ -7,6 +7,7 @@ import (
"github.com/openziti/zrok/controller/zrokEdgeSdk" "github.com/openziti/zrok/controller/zrokEdgeSdk"
"github.com/openziti/zrok/rest_model_zrok" "github.com/openziti/zrok/rest_model_zrok"
"github.com/openziti/zrok/rest_server_zrok/operations/share" "github.com/openziti/zrok/rest_server_zrok/operations/share"
"github.com/openziti/zrok/sdk"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
) )
@ -68,7 +69,7 @@ func (h *shareHandler) Handle(params share.ShareParams, principal *rest_model_zr
var shrZId string var shrZId string
var frontendEndpoints []string var frontendEndpoints []string
switch params.Body.ShareMode { switch params.Body.ShareMode {
case "public": case string(sdk.PublicShareMode):
if len(params.Body.FrontendSelection) < 1 { if len(params.Body.FrontendSelection) < 1 {
logrus.Info("no frontend selection provided") logrus.Info("no frontend selection provided")
return share.NewShareNotFound() return share.NewShareNotFound()
@ -94,7 +95,7 @@ func (h *shareHandler) Handle(params share.ShareParams, principal *rest_model_zr
return share.NewShareInternalServerError() return share.NewShareInternalServerError()
} }
case "private": case string(sdk.PrivateShareMode):
logrus.Info("doing private") logrus.Info("doing private")
shrZId, frontendEndpoints, err = newPrivateResourceAllocator().allocate(envZId, shrToken, params, edge) shrZId, frontendEndpoints, err = newPrivateResourceAllocator().allocate(envZId, shrToken, params, edge)
if err != nil { if err != nil {
@ -123,7 +124,7 @@ func (h *shareHandler) Handle(params share.ShareParams, principal *rest_model_zr
} }
if len(frontendEndpoints) > 0 { if len(frontendEndpoints) > 0 {
sshr.FrontendEndpoint = &frontendEndpoints[0] sshr.FrontendEndpoint = &frontendEndpoints[0]
} else if sshr.ShareMode == "private" { } else if sshr.ShareMode == string(sdk.PrivateShareMode) {
sshr.FrontendEndpoint = &sshr.ShareMode sshr.FrontendEndpoint = &sshr.ShareMode
} }