Skip to content

Commit 884520c

Browse files
author
OpenShift Bot
authored
Merge pull request #10824 from smarterclayton/fix_version
Merged by openshift-bot
2 parents aad5e6a + e2a63d2 commit 884520c

File tree

2 files changed

+37
-31
lines changed

2 files changed

+37
-31
lines changed

pkg/cmd/cli/cmd/version.go

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -128,38 +128,37 @@ func (o VersionOptions) RunVersion() error {
128128
return
129129
}
130130

131-
ocVersionBody, err := oClient.Get().AbsPath("/version/openshift").Do().Raw()
132-
if kapierrors.IsNotFound(err) || kapierrors.IsUnauthorized(err) || kapierrors.IsForbidden(err) {
133-
return
134-
}
135-
if err != nil {
136-
done <- err
137-
return
138-
}
139-
var ocServerInfo version.Info
140-
err = json.Unmarshal(ocVersionBody, &ocServerInfo)
141-
if err != nil && len(ocVersionBody) > 0 {
142-
done <- err
143-
return
144-
}
145-
oVersion = fmt.Sprintf("%v", ocServerInfo)
146-
147131
kubeVersionBody, err := kClient.Get().AbsPath("/version").Do().Raw()
148-
if kapierrors.IsNotFound(err) || kapierrors.IsUnauthorized(err) || kapierrors.IsForbidden(err) {
149-
return
150-
}
151-
if err != nil {
132+
switch {
133+
case err == nil:
134+
var kubeServerInfo kubeversion.Info
135+
err = json.Unmarshal(kubeVersionBody, &kubeServerInfo)
136+
if err != nil && len(kubeVersionBody) > 0 {
137+
done <- err
138+
return
139+
}
140+
kVersion = fmt.Sprintf("%v", kubeServerInfo)
141+
case kapierrors.IsNotFound(err) || kapierrors.IsUnauthorized(err) || kapierrors.IsForbidden(err):
142+
default:
152143
done <- err
153144
return
154145
}
155-
var kubeServerInfo kubeversion.Info
156-
err = json.Unmarshal(kubeVersionBody, &kubeServerInfo)
157-
if err != nil && len(kubeVersionBody) > 0 {
146+
147+
ocVersionBody, err := oClient.Get().AbsPath("/version/openshift").Do().Raw()
148+
switch {
149+
case err == nil:
150+
var ocServerInfo version.Info
151+
err = json.Unmarshal(ocVersionBody, &ocServerInfo)
152+
if err != nil && len(ocVersionBody) > 0 {
153+
done <- err
154+
return
155+
}
156+
oVersion = fmt.Sprintf("%v", ocServerInfo)
157+
case kapierrors.IsNotFound(err) || kapierrors.IsUnauthorized(err) || kapierrors.IsForbidden(err):
158+
default:
158159
done <- err
159160
return
160161
}
161-
kVersion = fmt.Sprintf("%v", kubeServerInfo)
162-
163162
}()
164163

165164
select {

pkg/cmd/util/clientcmd/negotiate.go

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ package clientcmd
33
import (
44
"fmt"
55

6+
"github.com/golang/glog"
7+
8+
"k8s.io/kubernetes/pkg/api/errors"
69
"k8s.io/kubernetes/pkg/api/unversioned"
710
"k8s.io/kubernetes/pkg/client/restclient"
811
kclient "k8s.io/kubernetes/pkg/client/unversioned"
@@ -24,18 +27,22 @@ func negotiateVersion(client *kclient.Client, config *restclient.Config, request
2427
}
2528
}
2629

27-
// Get server versions
28-
serverGVs, err := serverAPIVersions(client, "/oapi")
29-
if err != nil {
30-
return nil, err
31-
}
32-
3330
// Determine our preferred version
3431
preferredGV := copyGroupVersion(requestedGV)
3532
if preferredGV == nil {
3633
preferredGV = copyGroupVersion(config.GroupVersion)
3734
}
3835

36+
// Get server versions
37+
serverGVs, err := serverAPIVersions(client, "/oapi")
38+
if err != nil {
39+
if errors.IsNotFound(err) {
40+
glog.V(4).Infof("Server path /oapi was not found, returning the requested group version %v", preferredGV)
41+
return preferredGV, nil
42+
}
43+
return nil, err
44+
}
45+
3946
// Find a version we can all agree on
4047
matchedGV, err := matchAPIVersion(preferredGV, clientGVs, serverGVs)
4148
if err != nil {

0 commit comments

Comments
 (0)