Skip to content
This repository was archived by the owner on Aug 30, 2024. It is now read-only.

Commit aa5597c

Browse files
committed
Move user flag to entclient req options
1 parent 17b16f9 commit aa5597c

File tree

22 files changed

+171
-104
lines changed

22 files changed

+171
-104
lines changed

cmd/coder/auth.go

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ import (
1111
)
1212

1313
// requireAuth exits the process with a nonzero exit code if the user is not authenticated to make requests
14-
func requireAuth(user string) *entclient.Client {
15-
client, err := newClient(user)
14+
func requireAuth() *entclient.Client {
15+
client, err := newClient()
1616
if err != nil {
1717
flog.Fatal("%v", err)
1818
}
1919
return client
2020
}
2121

22-
func newClient(userFlag string) (*entclient.Client, error) {
22+
func newClient() (*entclient.Client, error) {
2323
sessionToken, err := config.Session.Read()
2424
if err != nil {
2525
return nil, xerrors.Errorf("read session: %v (did you run coder login?)", err)
@@ -38,16 +38,7 @@ func newClient(userFlag string) (*entclient.Client, error) {
3838
client := &entclient.Client{
3939
BaseURL: u,
4040
Token: sessionToken,
41-
UserID: entclient.Me,
4241
}
4342

44-
user, err := client.UserByEmail(userFlag)
45-
if err != nil {
46-
return nil, xerrors.Errorf("failed to find user (%v) by email: %v", userFlag, err)
47-
}
48-
49-
// perform all additional actions as this user
50-
client.UserID = user.ID
51-
5243
return client, nil
5344
}

cmd/coder/ceapi.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package main
22

33
import (
4+
"context"
5+
46
"golang.org/x/xerrors"
57

68
"go.coder.com/flog"
@@ -27,13 +29,13 @@ outer:
2729
}
2830

2931
// getEnvs returns all environments for the user.
30-
func getEnvs(client *entclient.Client) ([]entclient.Environment, error) {
31-
user, err := client.TargetUser()
32+
func getEnvs(ctx context.Context, client *entclient.Client, email string) ([]entclient.Environment, error) {
33+
user, err := client.UserByEmail(ctx, email)
3234
if err != nil {
33-
return nil, xerrors.Errorf("get self: %+v", err)
35+
return nil, xerrors.Errorf("get user: %+v", err)
3436
}
3537

36-
orgs, err := client.Orgs()
38+
orgs, err := client.Orgs(ctx)
3739
if err != nil {
3840
return nil, xerrors.Errorf("get orgs: %+v", err)
3941
}
@@ -43,7 +45,7 @@ func getEnvs(client *entclient.Client) ([]entclient.Environment, error) {
4345
var allEnvs []entclient.Environment
4446

4547
for _, org := range orgs {
46-
envs, err := client.Envs(user, org)
48+
envs, err := client.Envs(ctx, user, org)
4749
if err != nil {
4850
return nil, xerrors.Errorf("get envs for %v: %+v", org.Name, err)
4951
}
@@ -56,8 +58,8 @@ func getEnvs(client *entclient.Client) ([]entclient.Environment, error) {
5658
}
5759

5860
// findEnv returns a single environment by name (if it exists.)
59-
func findEnv(client *entclient.Client, name string) (*entclient.Environment, error) {
60-
envs, err := getEnvs(client)
61+
func findEnv(ctx context.Context, client *entclient.Client, userEmail, envName string) (*entclient.Environment, error) {
62+
envs, err := getEnvs(ctx, client, userEmail)
6163
if err != nil {
6264
return nil, xerrors.Errorf("get environments: %w", err)
6365
}
@@ -66,11 +68,11 @@ func findEnv(client *entclient.Client, name string) (*entclient.Environment, err
6668

6769
for _, env := range envs {
6870
found = append(found, env.Name)
69-
if env.Name == name {
71+
if env.Name == envName {
7072
return &env, nil
7173
}
7274
}
7375
flog.Error("found %q", found)
74-
flog.Error("%q not found", name)
76+
flog.Error("%q not found", envName)
7577
return nil, xerrors.New("environment not found")
7678
}

cmd/coder/configssh.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,19 +76,19 @@ func configSSH(filepath *string, remove *bool) func(cmd *cobra.Command, _ []stri
7676
return nil
7777
}
7878

79-
entClient := requireAuth(entclient.Me)
79+
entClient := requireAuth()
8080

8181
sshAvailable := isSSHAvailable(ctx)
8282
if !sshAvailable {
8383
return xerrors.New("SSH is disabled or not available for your Coder Enterprise deployment.")
8484
}
8585

86-
user, err := entClient.TargetUser()
86+
user, err := entClient.Me(cmd.Context())
8787
if err != nil {
8888
return xerrors.Errorf("fetch username: %w", err)
8989
}
9090

91-
envs, err := getEnvs(entClient)
91+
envs, err := getEnvs(cmd.Context(), entClient, entclient.Me)
9292
if err != nil {
9393
return err
9494
}
@@ -127,7 +127,7 @@ var (
127127
)
128128

129129
func writeSSHKey(ctx context.Context, client *entclient.Client) error {
130-
key, err := client.SSHKey()
130+
key, err := client.SSHKey(ctx)
131131
if err != nil {
132132
return err
133133
}

cmd/coder/envs.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import (
88
"cdr.dev/coder-cli/internal/x/xtabwriter"
99
"github.com/spf13/cobra"
1010
"golang.org/x/xerrors"
11+
12+
"go.coder.com/flog"
1113
)
1214

1315
func makeEnvsCommand() *cobra.Command {
@@ -25,11 +27,15 @@ func makeEnvsCommand() *cobra.Command {
2527
Short: "list all environments owned by the active user",
2628
Long: "List all Coder environments owned by the active user.",
2729
RunE: func(cmd *cobra.Command, args []string) error {
28-
entClient := requireAuth(user)
29-
envs, err := getEnvs(entClient)
30+
entClient := requireAuth()
31+
envs, err := getEnvs(cmd.Context(), entClient, user)
3032
if err != nil {
3133
return err
3234
}
35+
if len(envs) < 1 {
36+
flog.Info("no environments found")
37+
return nil
38+
}
3339

3440
switch outputFmt {
3541
case "human":

cmd/coder/main.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main
22

33
import (
4+
"context"
45
"fmt"
56
"log"
67
"net/http"
@@ -19,6 +20,9 @@ var (
1920
)
2021

2122
func main() {
23+
ctx, cancel := context.WithCancel(context.Background())
24+
defer cancel()
25+
2226
if os.Getenv("PPROF") != "" {
2327
go func() {
2428
log.Println(http.ListenAndServe("localhost:6060", nil))
@@ -49,7 +53,7 @@ func main() {
4953
makeURLCmd(),
5054
completionCmd,
5155
)
52-
err = app.Execute()
56+
err = app.ExecuteContext(ctx)
5357
if err != nil {
5458
os.Exit(1)
5559
}

cmd/coder/secrets.go

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ coder secrets create aws-credentials --from-file ./credentials.json`,
7979
},
8080
RunE: func(cmd *cobra.Command, args []string) error {
8181
var (
82-
client = requireAuth(*user)
82+
client = requireAuth()
8383
name = args[0]
8484
value string
8585
err error
@@ -109,10 +109,12 @@ coder secrets create aws-credentials --from-file ./credentials.json`,
109109
}
110110
}
111111

112-
err = client.InsertSecret(entclient.InsertSecretReq{
112+
err = client.InsertSecret(cmd.Context(), entclient.InsertSecretReq{
113113
Name: name,
114114
Value: value,
115115
Description: description,
116+
}, &entclient.ReqOptions{
117+
User: *user,
116118
})
117119
if err != nil {
118120
return xerrors.Errorf("insert secret: %w", err)
@@ -131,9 +133,11 @@ coder secrets create aws-credentials --from-file ./credentials.json`,
131133

132134
func listSecrets(user *string) func(cmd *cobra.Command, _ []string) error {
133135
return func(cmd *cobra.Command, _ []string) error {
134-
client := requireAuth(*user)
136+
client := requireAuth()
135137

136-
secrets, err := client.Secrets()
138+
secrets, err := client.Secrets(cmd.Context(), &entclient.ReqOptions{
139+
User: *user,
140+
})
137141
if err != nil {
138142
return xerrors.Errorf("get secrets: %w", err)
139143
}
@@ -156,16 +160,18 @@ func listSecrets(user *string) func(cmd *cobra.Command, _ []string) error {
156160
}
157161

158162
func makeViewSecret(user *string) func(cmd *cobra.Command, args []string) error {
159-
return func(_ *cobra.Command, args []string) error {
163+
return func(cmd *cobra.Command, args []string) error {
160164
var (
161-
client = requireAuth(*user)
165+
client = requireAuth()
162166
name = args[0]
163167
)
164168
if name == "" {
165169
return xerrors.New("[name] is a required argument")
166170
}
167171

168-
secret, err := client.SecretByName(name)
172+
secret, err := client.SecretByName(cmd.Context(), name, &entclient.ReqOptions{
173+
User: *user,
174+
})
169175
if err != nil {
170176
return xerrors.Errorf("get secret by name: %w", err)
171177
}
@@ -179,17 +185,19 @@ func makeViewSecret(user *string) func(cmd *cobra.Command, args []string) error
179185
}
180186

181187
func makeRemoveSecrets(user *string) func(c *cobra.Command, args []string) error {
182-
return func(_ *cobra.Command, args []string) error {
188+
return func(cmd *cobra.Command, args []string) error {
183189
var (
184-
client = requireAuth(*user)
190+
client = requireAuth()
185191
)
186192
if len(args) < 1 {
187193
return xerrors.New("[...secret_name] is a required argument")
188194
}
189195

190196
errorSeen := false
191197
for _, n := range args {
192-
err := client.DeleteSecretByName(n)
198+
err := client.DeleteSecretByName(cmd.Context(), n, &entclient.ReqOptions{
199+
User: *user,
200+
})
193201
if err != nil {
194202
flog.Error("failed to delete secret %q: %v", n, err)
195203
errorSeen = true

cmd/coder/shell.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ func getEnvsForCompletion(user string) []string {
2525
return nil
2626

2727
var envNames []string
28-
client, err := newClient(user)
28+
client, err := newClient()
2929
if err != nil {
3030
return envNames
3131
}
32-
envs, err := getEnvs(client)
32+
envs, err := getEnvs(context.TODO(), client, user)
3333
if err != nil {
3434
return envNames
3535
}
@@ -98,9 +98,9 @@ func sendResizeEvents(ctx context.Context, termfd uintptr, process wsep.Process)
9898

9999
func runCommand(ctx context.Context, envName string, command string, args []string) error {
100100
var (
101-
entClient = requireAuth(entclient.Me)
101+
entClient = requireAuth()
102102
)
103-
env, err := findEnv(entClient, envName)
103+
env, err := findEnv(ctx, entClient, envName, entclient.Me)
104104
if err != nil {
105105
return err
106106
}

cmd/coder/sync.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ func makeRunSync(init *bool) func(cmd *cobra.Command, args []string) error {
5252
remote = args[1]
5353
)
5454

55-
entClient := requireAuth(entclient.Me)
55+
entClient := requireAuth()
5656

5757
info, err := os.Stat(local)
5858
if err != nil {
@@ -71,7 +71,7 @@ func makeRunSync(init *bool) func(cmd *cobra.Command, args []string) error {
7171
remoteDir = remoteTokens[1]
7272
)
7373

74-
env, err := findEnv(entClient, envName)
74+
env, err := findEnv(cmd.Context(), entClient, envName, entclient.Me)
7575
if err != nil {
7676
return err
7777
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy