Skip to content

Commit

Permalink
Merge pull request #10824 from smarterclayton/fix_version
Browse files Browse the repository at this point in the history
Merged by openshift-bot
  • Loading branch information
OpenShift Bot authored Sep 7, 2016
2 parents aad5e6a + e2a63d2 commit 884520c
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 31 deletions.
49 changes: 24 additions & 25 deletions pkg/cmd/cli/cmd/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,38 +128,37 @@ func (o VersionOptions) RunVersion() error {
return
}

ocVersionBody, err := oClient.Get().AbsPath("/version/openshift").Do().Raw()
if kapierrors.IsNotFound(err) || kapierrors.IsUnauthorized(err) || kapierrors.IsForbidden(err) {
return
}
if err != nil {
done <- err
return
}
var ocServerInfo version.Info
err = json.Unmarshal(ocVersionBody, &ocServerInfo)
if err != nil && len(ocVersionBody) > 0 {
done <- err
return
}
oVersion = fmt.Sprintf("%v", ocServerInfo)

kubeVersionBody, err := kClient.Get().AbsPath("/version").Do().Raw()
if kapierrors.IsNotFound(err) || kapierrors.IsUnauthorized(err) || kapierrors.IsForbidden(err) {
return
}
if err != nil {
switch {
case err == nil:
var kubeServerInfo kubeversion.Info
err = json.Unmarshal(kubeVersionBody, &kubeServerInfo)
if err != nil && len(kubeVersionBody) > 0 {
done <- err
return
}
kVersion = fmt.Sprintf("%v", kubeServerInfo)
case kapierrors.IsNotFound(err) || kapierrors.IsUnauthorized(err) || kapierrors.IsForbidden(err):
default:
done <- err
return
}
var kubeServerInfo kubeversion.Info
err = json.Unmarshal(kubeVersionBody, &kubeServerInfo)
if err != nil && len(kubeVersionBody) > 0 {

ocVersionBody, err := oClient.Get().AbsPath("/version/openshift").Do().Raw()
switch {
case err == nil:
var ocServerInfo version.Info
err = json.Unmarshal(ocVersionBody, &ocServerInfo)
if err != nil && len(ocVersionBody) > 0 {
done <- err
return
}
oVersion = fmt.Sprintf("%v", ocServerInfo)
case kapierrors.IsNotFound(err) || kapierrors.IsUnauthorized(err) || kapierrors.IsForbidden(err):
default:
done <- err
return
}
kVersion = fmt.Sprintf("%v", kubeServerInfo)

}()

select {
Expand Down
19 changes: 13 additions & 6 deletions pkg/cmd/util/clientcmd/negotiate.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ package clientcmd
import (
"fmt"

"github.com/golang/glog"

"k8s.io/kubernetes/pkg/api/errors"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/client/restclient"
kclient "k8s.io/kubernetes/pkg/client/unversioned"
Expand All @@ -24,18 +27,22 @@ func negotiateVersion(client *kclient.Client, config *restclient.Config, request
}
}

// Get server versions
serverGVs, err := serverAPIVersions(client, "/oapi")
if err != nil {
return nil, err
}

// Determine our preferred version
preferredGV := copyGroupVersion(requestedGV)
if preferredGV == nil {
preferredGV = copyGroupVersion(config.GroupVersion)
}

// Get server versions
serverGVs, err := serverAPIVersions(client, "/oapi")
if err != nil {
if errors.IsNotFound(err) {
glog.V(4).Infof("Server path /oapi was not found, returning the requested group version %v", preferredGV)
return preferredGV, nil
}
return nil, err
}

// Find a version we can all agree on
matchedGV, err := matchAPIVersion(preferredGV, clientGVs, serverGVs)
if err != nil {
Expand Down

0 comments on commit 884520c

Please sign in to comment.