From d49773e3484b3fa9bf1206d2c8fd12ee56790635 Mon Sep 17 00:00:00 2001 From: Guillaume Tardif Date: Wed, 13 May 2020 16:58:00 +0200 Subject: [PATCH] Use cli context for login --- azure/backend.go | 2 +- azure/login/login.go | 13 ++++--------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/azure/backend.go b/azure/backend.go index 1e15200d..8cda586e 100644 --- a/azure/backend.go +++ b/azure/backend.go @@ -274,5 +274,5 @@ type aciCloudService struct { } func (cs *aciCloudService) Login(ctx context.Context, params map[string]string) error { - return cs.loginService.Login() + return cs.loginService.Login(ctx) } diff --git a/azure/login/login.go b/azure/login/login.go index 06d9b55a..dc4b727f 100644 --- a/azure/login/login.go +++ b/azure/login/login.go @@ -1,6 +1,7 @@ package login import ( + "context" "encoding/json" "fmt" "io/ioutil" @@ -9,14 +10,11 @@ import ( "net/http" "net/http/httputil" "net/url" - "os" "os/exec" - "os/signal" "path/filepath" "runtime" "strconv" "strings" - "syscall" "time" "github.com/docker/api/errdefs" @@ -91,16 +89,13 @@ func newAzureLoginServiceFromPath(tokenStorePath string, helper apiHelper) Azure } type apiHelper interface { - queryToken(data url.Values, tenantID string) (token azureToken, err error) + queryToken(data url.Values, tenantID string) (azureToken, error) } type azureAPIHelper struct{} //Login perform azure login through browser -func (login AzureLoginService) Login() error { - sigs := make(chan os.Signal, 1) - signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM) - +func (login AzureLoginService) Login(ctx context.Context) error { queryCh := make(chan url.Values, 1) mux := http.NewServeMux() mux.HandleFunc("/", queryHandler(queryCh)) @@ -118,7 +113,7 @@ func (login AzureLoginService) Login() error { openbrowser(authURL) select { - case <-sigs: + case <-ctx.Done(): return nil case qsValues := <-queryCh: errorMsg, hasError := qsValues["error"]