1 package flagutil
2
3 import (
4 "errors"
5 "fmt"
6 "os"
7 "strconv"
8
9 "edge-infra.dev/pkg/edge/api/graph/model"
10 "edge-infra.dev/pkg/edge/edgecli"
11 "edge-infra.dev/pkg/edge/registration"
12 "edge-infra.dev/pkg/lib/cli/rags"
13 )
14
15 func GetConnectionFlags(cfg *edgecli.Config) []*rags.Rag {
16 return []*rags.Rag{
17 {
18 Name: UsernameFlag,
19 Usage: "BSL username with edge credentials",
20 Value: &rags.String{Default: cfg.CurrentBanner().Username},
21 },
22 {
23 Name: PasswordFlag,
24 Usage: "BSL password for username",
25 Value: &rags.String{},
26 },
27 {
28 Name: Endpoint,
29 Usage: "URL pointing to edge api",
30 Value: &rags.String{Default: cfg.CurrentBanner().Endpoint},
31 },
32 {
33 Name: BearerTokenFlag,
34 Usage: "Bearer token from UI",
35 Value: &rags.String{Default: cfg.CurrentBanner().Token},
36 },
37 {
38 Name: OrganizationFlag,
39 Usage: "BSL organization for username",
40 Value: &rags.String{Default: cfg.CurrentBanner().TenantOrg},
41 },
42 {
43 Name: "bff-endpoint",
44 Usage: "deprecating flag, now is api-endpoint",
45 Value: &rags.String{Default: ""},
46 },
47 }
48 }
49
50 func GetCommonFlags() []*rags.Rag {
51 return []*rags.Rag{
52 {
53 Name: KubeConfigFlag,
54 Usage: "path to a kubeconfig file, for the store cluster",
55 Value: &rags.String{
56 Default: fmt.Sprintf("%s/.kube/config", os.Getenv("HOME")),
57 },
58 },
59 {
60 Name: KubeConfigContextFlag,
61 Usage: "kubeconfig context, for store cluster",
62 Value: &rags.String{},
63 },
64 {
65 Name: LumperImageFlag,
66 Usage: "override default lumper image",
67 Value: &rags.String{Default: registration.DefaultLumperImage},
68 },
69 }
70 }
71
72 func GetStringFlag(rs *rags.RagSet, name string) string {
73 if flag := rs.FlagSet().Lookup(name); flag != nil {
74 return flag.Value.String()
75 }
76 return ""
77 }
78
79 func GetBoolFlag(rs *rags.RagSet, name string) bool {
80 if flag := rs.FlagSet().Lookup(name); flag != nil {
81 if ret, err := strconv.ParseBool(flag.Value.String()); err == nil {
82 return ret
83 }
84 }
85 return false
86 }
87
88 func GetIntFlag(rs *rags.RagSet, name string) int {
89 if flag := rs.FlagSet().Lookup(name); flag != nil {
90 if ret, err := strconv.ParseInt(flag.Value.String(), 0, 64); err == nil {
91 return int(ret)
92 }
93 }
94 return 0
95 }
96
97 func GetFloat64Flag(rs *rags.RagSet, name string) float64 {
98 if flag := rs.FlagSet().Lookup(name); flag != nil {
99 if ret, err := strconv.ParseFloat(flag.Value.String(), 64); err == nil {
100 return ret
101 }
102 }
103 return 0
104 }
105
106 func SetFlag(rs *rags.RagSet, name, value string) error {
107 if flag := rs.FlagSet().Lookup(name); flag != nil {
108 return flag.Value.Set(value)
109 }
110 return errors.New("Flag " + name + " was not found")
111 }
112
113 func isValidTerminalClass(class *model.TerminalClassType) bool {
114 if class == nil {
115 return false
116 }
117 return *class == model.TerminalClassTypeServer || *class == model.TerminalClassTypeTouchpoint
118 }
119
View as plain text