Skip to content

Commit

Permalink
support keyring for multiple server (#19)
Browse files Browse the repository at this point in the history
  • Loading branch information
tuxtof authored Jul 23, 2022
1 parent 11101ee commit f7b8ad7
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions cmd/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ func unmarshalCert(bytes []byte) (*ssh.Certificate, error) {
return cert, nil
}

func getCredentials() (string, string) {
func getCredentials(server string) (string, string) {
userArg := viper.GetString("user")
keyringFlag := viper.GetBool("keyring")

Expand All @@ -302,7 +302,7 @@ func getCredentials() (string, string) {
password, ok = os.LookupEnv("KARBON_PASSWORD")

if keyringFlag {
password, err = keyring.Get("kubectl-karbon", userArg)
password, err = keyring.Get("kubectl-karbon "+server, userArg)
if err == keyring.ErrNotFound && verbose {
fmt.Printf("No password found in keyring for user %s\n", userArg)
}
Expand All @@ -319,15 +319,15 @@ func getCredentials() (string, string) {
password = string(bytePassword)

if keyringFlag {
err = savePasswordKeyring(userArg, password)
err = savePasswordKeyring(server, userArg, password)
cobra.CheckErr(err)
}
}
return userArg, password
}

func savePasswordKeyring(user string, password string) error {
err := keyring.Set("kubectl-karbon", user, password)
func savePasswordKeyring(server string, user string, password string) error {
err := keyring.Set("kubectl-karbon "+server, user, password)
if err != nil {
return err
}
Expand All @@ -337,13 +337,13 @@ func savePasswordKeyring(user string, password string) error {
return nil
}

func deletePasswordKeyring(user string) error {
err := keyring.Delete("kubectl-karbon", user)
func deletePasswordKeyring(c *nutanixCluster) error {
err := keyring.Delete("kubectl-karbon "+c.server, c.login)
if err != nil {
return err
}
if verbose {
fmt.Printf("Password deleted from keyring for user %s\n", user)
fmt.Printf("Password deleted from keyring for user %s\n", c.login)
}
return nil
}
Expand All @@ -354,7 +354,7 @@ func newNutanixCluster() (*nutanixCluster, error) {
return nil, fmt.Errorf("error: required flag \"server\" not set")
}

userArg, password := getCredentials()
userArg, password := getCredentials(server)

c := nutanixCluster{
server: server,
Expand Down Expand Up @@ -390,7 +390,7 @@ func (c *nutanixCluster) clusterRequest(method string, path string, payload []by
switch res.StatusCode {
case 401:
if viper.GetBool("keyring") {
err = deletePasswordKeyring(c.login)
err = deletePasswordKeyring(c)
cobra.CheckErr(err)
}
return nil, fmt.Errorf("invalid client credentials")
Expand Down

0 comments on commit f7b8ad7

Please sign in to comment.