@@ -11,6 +11,7 @@ import (
11
11
kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
12
12
kclientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
13
13
kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
14
+ kutilerrors "k8s.io/kubernetes/pkg/util/errors"
14
15
15
16
"github.com/openshift/origin/pkg/client"
16
17
"github.com/openshift/origin/pkg/cmd/cli/config"
@@ -123,19 +124,22 @@ func (o LogoutOptions) RunLogout() error {
123
124
return err
124
125
}
125
126
126
- // attempt to always delete token from local config
127
- // before deleting using api.
128
- tokenDeleted , err := o .deleteTokenFromConfig ()
129
- if err != nil {
130
- return err
131
- }
132
-
133
127
if err := client .OAuthAccessTokens ().Delete (token ); err != nil {
134
- // print successful removal of token from local
135
- // config before printing error from server.
136
- if tokenDeleted {
128
+ errs := []error {}
129
+
130
+ configErr := o .deleteTokenFromConfig ()
131
+ if configErr != nil {
132
+ errs = append (errs , configErr )
133
+ } else {
137
134
fmt .Printf ("Successfully removed user token from local config.\n \n " )
138
135
}
136
+
137
+ // append error from server
138
+ errs = append (errs , err )
139
+ return kutilerrors .Flatten (kutilerrors .NewAggregate (errs ))
140
+ }
141
+
142
+ if err := o .deleteTokenFromConfig (); err != nil {
139
143
return err
140
144
}
141
145
@@ -144,22 +148,20 @@ func (o LogoutOptions) RunLogout() error {
144
148
return nil
145
149
}
146
150
147
- func (o LogoutOptions ) deleteTokenFromConfig () ( bool , error ) {
151
+ func (o LogoutOptions ) deleteTokenFromConfig () error {
148
152
newConfig := * o .StartingKubeConfig
149
- tokenDeleted := false
150
153
151
154
for key , value := range newConfig .AuthInfos {
152
155
if value .Token == o .Config .BearerToken {
153
156
value .Token = ""
154
157
newConfig .AuthInfos [key ] = value
155
- tokenDeleted = true
156
158
// don't break, its possible that more than one user stanza has the same token.
157
159
}
158
160
}
159
161
160
162
if err := kclientcmd .ModifyConfig (o .PathOptions , newConfig , true ); err != nil {
161
- return tokenDeleted , err
163
+ return err
162
164
}
163
165
164
- return tokenDeleted , nil
166
+ return nil
165
167
}
0 commit comments