summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomSweeneyRedHat <tsweeney@redhat.com>2018-10-16 17:58:12 -0400
committerTomSweeneyRedHat <tsweeney@redhat.com>2018-10-22 19:20:34 -0400
commite75b3477ce2acf8af49a13e8197401ee00bff459 (patch)
tree9682264be226052e9ccc4327e3d55e8097c690dc
parent5b2478ed87eedd8178c1672a786f95a6716a8edb (diff)
downloadpodman-e75b3477ce2acf8af49a13e8197401ee00bff459.tar.gz
podman-e75b3477ce2acf8af49a13e8197401ee00bff459.tar.bz2
podman-e75b3477ce2acf8af49a13e8197401ee00bff459.zip
Handle http/https in registry given to login/out
Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
-rw-r--r--cmd/podman/common.go8
-rw-r--r--cmd/podman/login.go9
-rw-r--r--cmd/podman/logout.go6
3 files changed, 16 insertions, 7 deletions
diff --git a/cmd/podman/common.go b/cmd/podman/common.go
index e342659ed..8ae1c9e0f 100644
--- a/cmd/podman/common.go
+++ b/cmd/podman/common.go
@@ -465,3 +465,11 @@ func getAuthFile(authfile string) string {
}
return os.Getenv("REGISTRY_AUTH_FILE")
}
+
+// scrubServer removes 'http://' or 'https://' from the front of the
+// server/registry string if either is there. This will be mostly used
+// for user input from 'podman login' and 'podman logout'.
+func scrubServer(server string) string {
+ server = strings.TrimPrefix(server, "https://")
+ return strings.TrimPrefix(server, "http://")
+}
diff --git a/cmd/podman/login.go b/cmd/podman/login.go
index 76f0f50ff..aa26d1466 100644
--- a/cmd/podman/login.go
+++ b/cmd/podman/login.go
@@ -60,10 +60,7 @@ func loginCmd(c *cli.Context) error {
if len(args) == 0 {
return errors.Errorf("registry must be given")
}
- var server string
- if len(args) == 1 {
- server = args[0]
- }
+ server := scrubServer(args[0])
authfile := getAuthFile(c.String("authfile"))
sc := common.GetSystemContext("", authfile, false)
@@ -113,6 +110,10 @@ func getUserAndPass(username, password, userFromAuthFile string) (string, string
if err != nil {
return "", "", errors.Wrapf(err, "error reading username")
}
+ // If no username provided, use userFromAuthFile instead.
+ if strings.TrimSpace(username) == "" {
+ username = userFromAuthFile
+ }
}
if password == "" {
fmt.Print("Password: ")
diff --git a/cmd/podman/logout.go b/cmd/podman/logout.go
index 099464e4f..3cdb606b5 100644
--- a/cmd/podman/logout.go
+++ b/cmd/podman/logout.go
@@ -44,7 +44,7 @@ func logoutCmd(c *cli.Context) error {
}
var server string
if len(args) == 1 {
- server = args[0]
+ server = scrubServer(args[0])
}
authfile := getAuthFile(c.String("authfile"))
@@ -54,14 +54,14 @@ func logoutCmd(c *cli.Context) error {
if err := config.RemoveAllAuthentication(sc); err != nil {
return err
}
- fmt.Println("Remove login credentials for all registries")
+ fmt.Println("Removed login credentials for all registries")
return nil
}
err := config.RemoveAuthentication(sc, server)
switch err {
case nil:
- fmt.Printf("Remove login credentials for %s\n", server)
+ fmt.Printf("Removed login credentials for %s\n", server)
return nil
case config.ErrNotLoggedIn:
return errors.Errorf("Not logged into %s\n", server)