From 454c481c5c2ec4f075c0644da53e82520d09c7a9 Mon Sep 17 00:00:00 2001 From: Josh Dolitsky Date: Thu, 11 Apr 2019 21:45:24 -0500 Subject: [PATCH] use docker auth system Signed-off-by: Josh Dolitsky --- pkg/action/chart_login.go | 12 ++++++++++++ pkg/action/chart_logout.go | 18 +++++++++++++++--- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/pkg/action/chart_login.go b/pkg/action/chart_login.go index e4f0a1d0e..a5eff652e 100644 --- a/pkg/action/chart_login.go +++ b/pkg/action/chart_login.go @@ -17,7 +17,11 @@ limitations under the License. package action import ( + "context" + "fmt" "io" + + auth "github.com/deislabs/oras/pkg/auth/docker" ) // ChartLogin performs a chart login operation. @@ -34,5 +38,13 @@ func NewChartLogin(cfg *Configuration) *ChartLogin { // Run executes the chart login operation func (a *ChartLogin) Run(out io.Writer, host string, username string, password string) error { + cli, err := auth.NewClient("~/.docker/config") + if err != nil { + return err + } + if err := cli.Login(context.Background(), host, username, password); err != nil { + return err + } + fmt.Println("Login Succeeded") return nil } diff --git a/pkg/action/chart_logout.go b/pkg/action/chart_logout.go index d666cd9f9..d4cf73203 100644 --- a/pkg/action/chart_logout.go +++ b/pkg/action/chart_logout.go @@ -17,22 +17,34 @@ limitations under the License. package action import ( + "context" + "fmt" "io" + + auth "github.com/deislabs/oras/pkg/auth/docker" ) -// ChartLogin performs a chart login operation. +// ChartLogout performs a chart login operation. type ChartLogout struct { cfg *Configuration } -// NewChartLogin creates a new ChartLogin object with the given configuration. +// NewChartLogout creates a new ChartLogout object with the given configuration. func NewChartLogout(cfg *Configuration) *ChartLogout { return &ChartLogout{ cfg: cfg, } } -// Run executes the chart login operation +// Run executes the chart logout operation func (a *ChartLogout) Run(out io.Writer, host string) error { + cli, err := auth.NewClient("~/.docker/config") + if err != nil { + return err + } + if err := cli.Logout(context.Background(), host); err != nil { + return err + } + fmt.Println("Logout Succeeded") return nil }