Skip to content

Commit

Permalink
preserve error type in loginoptions
Browse files Browse the repository at this point in the history
  • Loading branch information
juanvallejo committed Nov 2, 2017
1 parent 0074c3a commit 4477cad
Show file tree
Hide file tree
Showing 8 changed files with 13 additions and 6 deletions.
3 changes: 2 additions & 1 deletion pkg/oc/bootstrap/docker/openshift/login.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import (
)

// Login logs into the specified server using given credentials and CA file
func Login(username, password, server, configDir string, f *clientcmd.Factory, c *cobra.Command, out io.Writer) error {
func Login(username, password, server, configDir string, f *clientcmd.Factory, c *cobra.Command, out, errOut io.Writer) error {
existingConfig, err := f.OpenShiftClientConfig().RawConfig()
if err != nil {
if !os.IsNotExist(err) {
Expand Down Expand Up @@ -72,6 +72,7 @@ func Login(username, password, server, configDir string, f *clientcmd.Factory, c
Username: username,
Password: password,
Out: output,
ErrOut: errOut,
StartingKubeConfig: newConfig,
PathOptions: config.NewPathOptions(c),
}
Expand Down
3 changes: 2 additions & 1 deletion pkg/oc/bootstrap/docker/up.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"bytes"
"fmt"
"io"
"io/ioutil"
"net"
"os"
"path/filepath"
Expand Down Expand Up @@ -1112,7 +1113,7 @@ func (c *ClientStartConfig) RegisterTemplateServiceBroker(out io.Writer) error {
// Login logs into the new server and sets up a default user and project
func (c *ClientStartConfig) Login(out io.Writer) error {
server := c.OpenShiftHelper().Master(c.ServerIP)
return openshift.Login(initialUser, initialPassword, server, c.LocalConfigDir, c.originalFactory, c.command, out)
return openshift.Login(initialUser, initialPassword, server, c.LocalConfigDir, c.originalFactory, c.command, out, ioutil.Discard)
}

// CreateProject creates a new project for the current user
Expand Down
2 changes: 1 addition & 1 deletion pkg/oc/cli/cli.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ func NewCommandCLI(name, fullName string, in io.Reader, out, errout io.Writer) *

f := clientcmd.New(cmds.PersistentFlags())

loginCmd := login.NewCmdLogin(fullName, f, in, out)
loginCmd := login.NewCmdLogin(fullName, f, in, out, errout)
secretcmds := secrets.NewCmdSecrets(secrets.SecretsRecommendedName, fullName+" "+secrets.SecretsRecommendedName, f, in, out, errout, fullName+" edit")

groups := ktemplates.CommandGroups{
Expand Down
3 changes: 2 additions & 1 deletion pkg/oc/cli/cmd/login/login.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,11 @@ var (
)

// NewCmdLogin implements the OpenShift cli login command
func NewCmdLogin(fullName string, f *osclientcmd.Factory, reader io.Reader, out io.Writer) *cobra.Command {
func NewCmdLogin(fullName string, f *osclientcmd.Factory, reader io.Reader, out, errOut io.Writer) *cobra.Command {
options := &LoginOptions{
Reader: reader,
Out: out,
ErrOut: errOut,
}

cmds := &cobra.Command{
Expand Down
1 change: 0 additions & 1 deletion pkg/oc/cli/cmd/login/loginoptions.go
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,6 @@ func (o *LoginOptions) gatherAuthInfo() error {
fmt.Fprintf(o.ErrOut, "error: %v - %v\n", err, suggestion)
}

// TODO: set errout
// return error as-is, as method caller expects to check its type
return err
}
Expand Down
3 changes: 2 additions & 1 deletion test/integration/login_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,8 @@ func newLoginOptions(server string, username string, password string, insecure b
Password: password,
InsecureTLS: insecure,

Out: ioutil.Discard,
Out: ioutil.Discard,
ErrOut: ioutil.Discard,
}

return loginOptions
Expand Down
2 changes: 2 additions & 0 deletions test/integration/oauth_oidc_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -156,12 +156,14 @@ func TestOAuthOIDC(t *testing.T) {

// Attempt a login using a redirecting auth proxy
loginOutput := &bytes.Buffer{}
loginErrOutput := &bytes.Buffer{}
loginOptions := &login.LoginOptions{
Server: clientConfig.Host,
CAFile: masterCAFile,
StartingKubeConfig: &clientcmdapi.Config{},
Reader: bytes.NewBufferString("mylogin\nmypassword\n"),
Out: loginOutput,
ErrOut: loginErrOutput,
}
if err := loginOptions.GatherInfo(); err != nil {
t.Fatalf("Error logging in: %v\n%v", err, loginOutput.String())
Expand Down
2 changes: 2 additions & 0 deletions test/integration/oauth_request_header_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -304,12 +304,14 @@ func TestOAuthRequestHeader(t *testing.T) {

// Attempt a login using a redirecting auth proxy
loginOutput := &bytes.Buffer{}
loginErrOutput := &bytes.Buffer{}
loginOptions := &login.LoginOptions{
Server: anonConfig.Host,
CAFile: masterCAFile,
StartingKubeConfig: &clientcmdapi.Config{},
Reader: bytes.NewBufferString("myusername\nmypassword\n"),
Out: loginOutput,
ErrOut: loginErrOutput,
}
if err := loginOptions.GatherInfo(); err != nil {
t.Fatalf("Error trying to determine server info: %v\n%v", err, loginOutput.String())
Expand Down

0 comments on commit 4477cad

Please sign in to comment.