Skip to content

Commit

Permalink
added org id to login message (#1188)
Browse files Browse the repository at this point in the history
  • Loading branch information
mtodzo committed Feb 14, 2022
1 parent e9a15a8 commit e954a27
Show file tree
Hide file tree
Showing 9 changed files with 30 additions and 20 deletions.
4 changes: 2 additions & 2 deletions internal/cmd/cloud-signup/command.go
Original file line number Diff line number Diff line change
Expand Up @@ -164,12 +164,12 @@ func (c *command) signup(cmd *cobra.Command, prompt form.Prompt, client *ccloud.

utils.Println(cmd, "Success! Welcome to Confluent Cloud.")
authorizedClient := c.clientFactory.JwtHTTPClientFactory(context.Background(), token, client.BaseURL)
_, err = pauth.PersistCCloudLoginToConfig(c.Config.Config, fEmailName.Responses["email"].(string), client.BaseURL, token, authorizedClient)
_, currentOrg, err := pauth.PersistCCloudLoginToConfig(c.Config.Config, fEmailName.Responses["email"].(string), client.BaseURL, token, authorizedClient)
if err != nil {
utils.Println(cmd, "Failed to persist login to local config. Run `confluent login` to log in using the new credentials.")
return nil
}
log.CliLogger.Debugf(errors.LoggedInAsMsg, fEmailName.Responses["email"])
log.CliLogger.Debugf(errors.LoggedInAsMsgWithOrg, fEmailName.Responses["email"].(string), currentOrg.ResourceId, currentOrg.Name)
return nil
}
}
4 changes: 2 additions & 2 deletions internal/cmd/login/command.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ func (c *Command) loginCCloud(cmd *cobra.Command, url string) error {

client := c.ccloudClientFactory.JwtHTTPClientFactory(context.Background(), token, url)

currentEnv, err := pauth.PersistCCloudLoginToConfig(c.Config.Config, credentials.Username, url, token, client)
currentEnv, currentOrg, err := pauth.PersistCCloudLoginToConfig(c.Config.Config, credentials.Username, url, token, client)
if err != nil {
return err
}
Expand All @@ -130,7 +130,7 @@ func (c *Command) loginCCloud(cmd *cobra.Command, url string) error {
return err
}

log.CliLogger.Debugf(errors.LoggedInAsMsg, credentials.Username)
log.CliLogger.Debugf(errors.LoggedInAsMsgWithOrg, credentials.Username, currentOrg.ResourceId, currentOrg.Name)
log.CliLogger.Debugf(errors.LoggedInUsingEnvMsg, currentEnv.Id, currentEnv.Name)

return err
Expand Down
6 changes: 3 additions & 3 deletions internal/pkg/auth/auth.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,16 +75,16 @@ func PersistConfluentLoginToConfig(config *v1.Config, username string, url strin
return addOrUpdateContext(config, ctxName, username, url, state, caCertPath, "")
}

func PersistCCloudLoginToConfig(config *v1.Config, email string, url string, token string, client *ccloud.Client) (*orgv1.Account, error) {
func PersistCCloudLoginToConfig(config *v1.Config, email string, url string, token string, client *ccloud.Client) (*orgv1.Account, *orgv1.Organization, error) {
ctxName := GenerateCloudContextName(email, url)
user, err := getCCloudUser(client)
if err != nil {
return nil, err
return nil, nil, err
}
state := getCCloudContextState(config, ctxName, token, user)

err = addOrUpdateContext(config, ctxName, email, url, state, "", user.Organization.ResourceId)
return state.Auth.Account, err
return state.Auth.Account, user.Organization, err
}

func addOrUpdateContext(config *v1.Config, ctxName string, username string, url string, state *v1.ContextState, caCertPath, orgResourceId string) error {
Expand Down
4 changes: 2 additions & 2 deletions internal/pkg/cmd/prerunner.go
Original file line number Diff line number Diff line change
Expand Up @@ -309,12 +309,12 @@ func (r *PreRun) ccloudAutoLogin(cmd *cobra.Command, netrcMachineName string) er
return nil
}
client := r.CCloudClientFactory.JwtHTTPClientFactory(context.Background(), token, pauth.CCloudURL)
currentEnv, err := pauth.PersistCCloudLoginToConfig(r.Config, credentials.Username, pauth.CCloudURL, token, client)
currentEnv, currentOrg, err := pauth.PersistCCloudLoginToConfig(r.Config, credentials.Username, pauth.CCloudURL, token, client)
if err != nil {
return err
}
log.CliLogger.Debug(errors.AutoLoginMsg)
log.CliLogger.Debugf(errors.LoggedInAsMsg, credentials.Username)
log.CliLogger.Debugf(errors.LoggedInAsMsgWithOrg, credentials.Username, currentOrg.ResourceId, currentOrg.Name)
log.CliLogger.Debugf(errors.LoggedInUsingEnvMsg, currentEnv.Id, currentEnv.Name)
return nil
}
Expand Down
1 change: 1 addition & 0 deletions internal/pkg/errors/strings.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ const (

// auth commands
LoggedInAsMsg = "Logged in as \"%s\".\n"
LoggedInAsMsgWithOrg = "Logged in as \"%s\" for organization \"%s\" (\"%s\").\n"
LoggedInUsingEnvMsg = "Using environment \"%s\" (\"%s\").\n"
LoggedOutMsg = "You are now logged out."
WroteCredentialsToNetrcMsg = "Wrote credentials to netrc file \"%s\"\n"
Expand Down
6 changes: 3 additions & 3 deletions test/cli_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ func (s *CLITestSuite) TestCcloudErrors() {
s.T().Run("expired token", func(tt *testing.T) {
env := []string{fmt.Sprintf("%s=expired@user.com", pauth.ConfluentCloudEmail), fmt.Sprintf("%s=pass1", pauth.ConfluentCloudPassword)}
output := runCommand(tt, testBin, env, args, 0)
require.Contains(tt, output, fmt.Sprintf(errors.LoggedInAsMsg, "expired@user.com"))
require.Contains(tt, output, fmt.Sprintf(errors.LoggedInAsMsgWithOrg, "expired@user.com", "abc-123", "Confluent"))
require.Contains(tt, output, fmt.Sprintf(errors.LoggedInUsingEnvMsg, "a-595", "default"))
output = runCommand(tt, testBin, []string{}, "kafka cluster list", 1)
require.Contains(tt, output, errors.TokenExpiredMsg)
Expand All @@ -174,7 +174,7 @@ func (s *CLITestSuite) TestCcloudErrors() {
s.T().Run("malformed token", func(tt *testing.T) {
env := []string{fmt.Sprintf("%s=malformed@user.com", pauth.ConfluentCloudEmail), fmt.Sprintf("%s=pass1", pauth.ConfluentCloudPassword)}
output := runCommand(tt, testBin, env, args, 0)
require.Contains(tt, output, fmt.Sprintf(errors.LoggedInAsMsg, "malformed@user.com"))
require.Contains(tt, output, fmt.Sprintf(errors.LoggedInAsMsgWithOrg, "malformed@user.com", "abc-123", "Confluent"))
require.Contains(tt, output, fmt.Sprintf(errors.LoggedInUsingEnvMsg, "a-595", "default"))

output = runCommand(s.T(), testBin, []string{}, "kafka cluster list", 1)
Expand All @@ -185,7 +185,7 @@ func (s *CLITestSuite) TestCcloudErrors() {
s.T().Run("invalid jwt", func(tt *testing.T) {
env := []string{fmt.Sprintf("%s=invalid@user.com", pauth.ConfluentCloudEmail), fmt.Sprintf("%s=pass1", pauth.ConfluentCloudPassword)}
output := runCommand(tt, testBin, env, args, 0)
require.Contains(tt, output, fmt.Sprintf(errors.LoggedInAsMsg, "invalid@user.com"))
require.Contains(tt, output, fmt.Sprintf(errors.LoggedInAsMsgWithOrg, "invalid@user.com", "abc-123", "Confluent"))
require.Contains(tt, output, fmt.Sprintf(errors.LoggedInUsingEnvMsg, "a-595", "default"))

output = runCommand(s.T(), testBin, []string{}, "kafka cluster list", 1)
Expand Down
17 changes: 11 additions & 6 deletions test/login_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,11 @@ import (
)

var (
urlPlaceHolder = "<URL_PLACEHOLDER>"
savedToNetrcOutput = fmt.Sprintf(errors.WroteCredentialsToNetrcMsg, "/tmp/netrc_test")
loggedInAsOutput = fmt.Sprintf(errors.LoggedInAsMsg, "good@user.com")
loggedInEnvOutput = fmt.Sprintf(errors.LoggedInUsingEnvMsg, "a-595", "default")
urlPlaceHolder = "<URL_PLACEHOLDER>"
savedToNetrcOutput = fmt.Sprintf(errors.WroteCredentialsToNetrcMsg, "/tmp/netrc_test")
loggedInAsOutput = fmt.Sprintf(errors.LoggedInAsMsg, "good@user.com")
loggedInAsWithOrgOutput = fmt.Sprintf(errors.LoggedInAsMsgWithOrg, "good@user.com", "abc-123", "Confluent")
loggedInEnvOutput = fmt.Sprintf(errors.LoggedInUsingEnvMsg, "a-595", "default")
)

func (s *CLITestSuite) TestCcloudLoginUseKafkaAuthKafkaErrors() {
Expand Down Expand Up @@ -117,9 +118,11 @@ func (s *CLITestSuite) TestSaveUsernamePassword() {
// TODO: add save test using stdin input
output := runCommand(s.T(), tt.bin, env, "login -vvv --save --url "+tt.loginURL, 0)
s.Contains(output, savedToNetrcOutput)
s.Contains(output, loggedInAsOutput)
if tt.isCloud {
s.Contains(output, loggedInAsWithOrgOutput)
s.Contains(output, loggedInEnvOutput)
} else {
s.Contains(output, loggedInAsOutput)
}

// check netrc file result
Expand Down Expand Up @@ -181,9 +184,11 @@ func (s *CLITestSuite) TestUpdateNetrcPassword() {
}
output := runCommand(s.T(), tt.bin, env, "login -vvv --save --url "+tt.loginURL, 0)
s.Contains(output, savedToNetrcOutput)
s.Contains(output, loggedInAsOutput)
if tt.isCloud {
s.Contains(output, loggedInAsWithOrgOutput)
s.Contains(output, loggedInEnvOutput)
} else {
s.Contains(output, loggedInAsOutput)
}

// check netrc file result
Expand Down
6 changes: 5 additions & 1 deletion test/logout_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,11 @@ func (s *CLITestSuite) TestRemoveUsernamePassword() {
// run login to provide context, then logout command and check output
output := runCommand(s.T(), tt.bin, env, "login -vvvv --save --url "+tt.loginURL, 0)
s.Contains(output, savedToNetrcOutput)
s.Contains(output, loggedInAsOutput)
if tt.isCloud {
s.Contains(output, loggedInAsWithOrgOutput)
} else {
s.Contains(output, loggedInAsOutput)
}

output = runCommand(s.T(), tt.bin, env, "logout -vvvv", 0)
s.Contains(output, loggedOutOutput)
Expand Down
2 changes: 1 addition & 1 deletion test/test-server/ccloud_handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ func init() {

// Handler for: "/api/me"
func (c *CloudRouter) HandleMe(t *testing.T, isAuditLogEnabled bool) func(http.ResponseWriter, *http.Request) {
org := &orgv1.Organization{Id: 42}
org := &orgv1.Organization{Id: 42, ResourceId: "abc-123", Name: "Confluent"}
if !isAuditLogEnabled {
org.AuditLog = &orgv1.AuditLog{
ClusterId: "lkc-ab123",
Expand Down

0 comments on commit e954a27

Please sign in to comment.