Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Aug 30, 2024. It is now read-only.
/coder-v1-cliPublic archive

Remove fatal calls from sdk client creation#123

Merged
cmoog merged 1 commit intomasterfromfix-fatal
Sep 17, 2020
Merged
Show file tree
Hide file tree
Changes fromall commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 4 additions & 13 deletionsinternal/cmd/auth.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -7,33 +7,24 @@ import (

"cdr.dev/coder-cli/coder-sdk"
"cdr.dev/coder-cli/internal/config"

"go.coder.com/flog"
)

// requireAuth exits the process with a nonzero exit code if the user is not authenticated to make requests.
func requireAuth() *coder.Client {
client, err := newClient()
if err != nil {
flog.Fatal("%s", err)
}
return client
}
var errNeedLogin = xerrors.New("failed to read session credentials: did you run \"coder login\"?")

func newClient() (*coder.Client, error) {
sessionToken, err := config.Session.Read()
if err != nil {
return nil,xerrors.Errorf("read session: %w (did you run coder login?)", err)
return nil,errNeedLogin
}

rawURL, err := config.URL.Read()
if err != nil {
return nil,xerrors.Errorf("read url: %w (did you run coder login?)", err)
return nil,errNeedLogin
}

u, err := url.Parse(rawURL)
if err != nil {
return nil, xerrors.Errorf("url misformatted: %w(try runing coder login)", err)
return nil, xerrors.Errorf("url misformatted: %w try runing\"coder login\" with a valid URL", err)
}

return &coder.Client{
Expand Down
5 changes: 4 additions & 1 deletioninternal/cmd/configssh.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -88,7 +88,10 @@ func configSSH(configpath *string, remove *bool) func(cmd *cobra.Command, _ []st
return nil
}

client := requireAuth()
client, err := newClient()
if err != nil {
return err
}

sshAvailable := isSSHAvailable(ctx)
if !sshAvailable {
Expand Down
7 changes: 5 additions & 2 deletionsinternal/cmd/envs.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,8 +27,11 @@ func makeEnvsCommand() *cobra.Command {
Short: "list all environments owned by the active user",
Long: "List all Coder environments owned by the active user.",
RunE: func(cmd *cobra.Command, args []string) error {
entClient := requireAuth()
envs, err := getEnvs(cmd.Context(), entClient, user)
client, err := newClient()
if err != nil {
return err
}
envs, err := getEnvs(cmd.Context(), client, user)
if err != nil {
return err
}
Expand Down
30 changes: 20 additions & 10 deletionsinternal/cmd/secrets.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -80,11 +80,14 @@ coder secrets create aws-credentials --from-file ./credentials.json`,
},
RunE: func(cmd *cobra.Command, args []string) error {
var (
client = requireAuth()
name = args[0]
value string
err error
name = args[0]
value string
err error
)
client, err := newClient()
if err != nil {
return err
}
if fromLiteral != "" {
value = fromLiteral
} else if fromFile != "" {
Expand DownExpand Up@@ -136,7 +139,10 @@ coder secrets create aws-credentials --from-file ./credentials.json`,

func listSecrets(userEmail *string) func(cmd *cobra.Command, _ []string) error {
return func(cmd *cobra.Command, _ []string) error {
client := requireAuth()
client, err := newClient()
if err != nil {
return err
}
user, err := client.UserByEmail(cmd.Context(), *userEmail)
if err != nil {
return xerrors.Errorf("get user %q by email: %w", *userEmail, err)
Expand DownExpand Up@@ -167,9 +173,12 @@ func listSecrets(userEmail *string) func(cmd *cobra.Command, _ []string) error {
func makeViewSecret(userEmail *string) func(cmd *cobra.Command, args []string) error {
return func(cmd *cobra.Command, args []string) error {
var (
client = requireAuth()
name = args[0]
name = args[0]
)
client, err := newClient()
if err != nil {
return err
}
user, err := client.UserByEmail(cmd.Context(), *userEmail)
if err != nil {
return xerrors.Errorf("get user %q by email: %w", *userEmail, err)
Expand All@@ -190,9 +199,10 @@ func makeViewSecret(userEmail *string) func(cmd *cobra.Command, args []string) e

func makeRemoveSecrets(userEmail *string) func(c *cobra.Command, args []string) error {
return func(cmd *cobra.Command, args []string) error {
var (
client = requireAuth()
)
client, err := newClient()
if err != nil {
return err
}
user, err := client.UserByEmail(cmd.Context(), *userEmail)
if err != nil {
return xerrors.Errorf("get user %q by email: %w", *userEmail, err)
Expand Down
12 changes: 7 additions & 5 deletionsinternal/cmd/shell.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -97,9 +97,11 @@ func sendResizeEvents(ctx context.Context, termFD uintptr, process wsep.Process)
}

func runCommand(ctx context.Context, envName, command string, args []string) error {
entClient := requireAuth()

env, err := findEnv(ctx, entClient, envName, coder.Me)
client, err := newClient()
if err != nil {
return err
}
env, err := findEnv(ctx, client, envName, coder.Me)
if err != nil {
return xerrors.Errorf("find environment: %w", err)
}
Expand All@@ -125,7 +127,7 @@ func runCommand(ctx context.Context, envName, command string, args []string) err
ctx, cancel := context.WithCancel(ctx)
defer cancel()

conn, err :=entClient.DialWsep(ctx, env)
conn, err :=client.DialWsep(ctx, env)
if err != nil {
return xerrors.Errorf("dial websocket: %w", err)
}
Expand DownExpand Up@@ -165,7 +167,7 @@ func runCommand(ctx context.Context, envName, command string, args []string) err
stdin := process.Stdin()
defer func() { _ = stdin.Close() }() // Best effort.

ap := activity.NewPusher(entClient, env.ID, sshActivityName)
ap := activity.NewPusher(client, env.ID, sshActivityName)
wr := ap.Writer(stdin)
if _, err := io.Copy(wr, os.Stdin); err != nil {
cancel()
Expand Down
15 changes: 9 additions & 6 deletionsinternal/cmd/sync.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -52,7 +52,10 @@ func makeRunSync(init *bool) func(cmd *cobra.Command, args []string) error {
remote=args[1]
)

entClient:=requireAuth()
client,err:=newClient()
iferr!=nil {
returnerr
}

info,err:=os.Stat(local)
iferr!=nil {
Expand All@@ -64,29 +67,29 @@ func makeRunSync(init *bool) func(cmd *cobra.Command, args []string) error {

remoteTokens:=strings.SplitN(remote,":",2)
iflen(remoteTokens)!=2 {
flog.Fatal("remote misformatted")
returnxerrors.New("remote misformatted")
}
var (
envName=remoteTokens[0]
remoteDir=remoteTokens[1]
)

env,err:=findEnv(cmd.Context(),entClient,envName,coder.Me)
env,err:=findEnv(cmd.Context(),client,envName,coder.Me)
iferr!=nil {
returnerr
}

absLocal,err:=filepath.Abs(local)
iferr!=nil {
flog.Fatal("make abs path out of %v: %v",local,absLocal)
returnxerrors.Errorf("make abs path out of %s, %s: %w",local,absLocal,err)
}

s:= sync.Sync{
Init:*init,
Env:*env,
RemoteDir:remoteDir,
LocalDir:absLocal,
Client:entClient,
Client:client,
}

localVersion:=rsyncVersion()
Expand All@@ -95,7 +98,7 @@ func makeRunSync(init *bool) func(cmd *cobra.Command, args []string) error {
ifrsyncErr!=nil {
flog.Info("Unable to determine remote rsync version. Proceeding cautiously.")
}elseiflocalVersion!=remoteVersion {
flog.Fatal("rsync protocol mismatch: local = %v, remote = %v",localVersion,rsyncErr)
returnxerrors.Errorf("rsync protocol mismatch: local = %s, remote = %s",localVersion,remoteVersion)
}

forerr==nil||err==sync.ErrRestartSync {
Expand Down
29 changes: 19 additions & 10 deletionsinternal/cmd/urls.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -152,9 +152,12 @@ func makeCreateDevURL() *cobra.Command {
if urlname != "" && !devURLNameValidRx.MatchString(urlname) {
return xerrors.New("update devurl: name must be < 64 chars in length, begin with a letter and only contain letters or digits.")
}
entClient := requireAuth()
client, err := newClient()
if err != nil {
return err
}

env, err := findEnv(cmd.Context(),entClient, envName, coder.Me)
env, err := findEnv(cmd.Context(),client, envName, coder.Me)
if err != nil {
return err
}
Expand All@@ -167,13 +170,13 @@ func makeCreateDevURL() *cobra.Command {
urlID, found := devURLID(portNum, urls)
if found {
flog.Info("Updating devurl for port %v", port)
err :=entClient.UpdateDevURL(cmd.Context(), env.ID, urlID, portNum, urlname, access)
err :=client.UpdateDevURL(cmd.Context(), env.ID, urlID, portNum, urlname, access)
if err != nil {
return xerrors.Errorf("update DevURL: %w", err)
}
} else {
flog.Info("Adding devurl for port %v", port)
err :=entClient.InsertDevURL(cmd.Context(), env.ID, portNum, urlname, access)
err :=client.InsertDevURL(cmd.Context(), env.ID, portNum, urlname, access)
if err != nil {
return xerrors.Errorf("insert DevURL: %w", err)
}
Expand DownExpand Up@@ -218,8 +221,11 @@ func removeDevURL(cmd *cobra.Command, args []string) error {
return xerrors.Errorf("validate port: %w", err)
}

entClient := requireAuth()
env, err := findEnv(cmd.Context(), entClient, envName, coder.Me)
client, err := newClient()
if err != nil {
return err
}
env, err := findEnv(cmd.Context(), client, envName, coder.Me)
if err != nil {
return err
}
Expand All@@ -236,22 +242,25 @@ func removeDevURL(cmd *cobra.Command, args []string) error {
return xerrors.Errorf("No devurl found for port %v", port)
}

if err :=entClient.DelDevURL(cmd.Context(), env.ID, urlID); err != nil {
if err :=client.DelDevURL(cmd.Context(), env.ID, urlID); err != nil {
return xerrors.Errorf("delete DevURL: %w", err)
}
return nil
}

// urlList returns the list of active devURLs from the cemanager.
func urlList(ctx context.Context, envName string) ([]DevURL, error) {
entClient := requireAuth()
env, err := findEnv(ctx, entClient, envName, coder.Me)
client, err := newClient()
if err != nil {
return nil, err
}
env, err := findEnv(ctx, client, envName, coder.Me)
if err != nil {
return nil, err
}

reqString := "%s/api/environments/%s/devurls?session_token=%s"
reqURL := fmt.Sprintf(reqString,entClient.BaseURL, env.ID,entClient.Token)
reqURL := fmt.Sprintf(reqString,client.BaseURL, env.ID,client.Token)

resp, err := http.Get(reqURL)
if err != nil {
Expand Down
7 changes: 5 additions & 2 deletionsinternal/cmd/users.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -32,9 +32,12 @@ coder users ls -o json | jq .[] | jq -r .email`,

func listUsers(outputFmt *string) func(cmd *cobra.Command, args []string) error {
return func(cmd *cobra.Command, args []string) error {
entClient := requireAuth()
client, err := newClient()
if err != nil {
return err
}

users, err :=entClient.Users(cmd.Context())
users, err :=client.Users(cmd.Context())
if err != nil {
return xerrors.Errorf("get users: %w", err)
}
Expand Down

[8]ページ先頭

©2009-2025 Movatter.jp