Stop exposing v1beta3 by default

This commit is contained in:
nikhiljindal
2015-06-29 19:30:14 -07:00
parent 9363285b4a
commit 274792d7bb
37 changed files with 117 additions and 242 deletions

View File

@@ -31,7 +31,6 @@ import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/latest"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/registered"
"github.com/GoogleCloudPlatform/kubernetes/pkg/runtime"
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
"github.com/GoogleCloudPlatform/kubernetes/pkg/version"
@@ -174,7 +173,7 @@ func MatchesServerVersion(client *Client, c *Config) error {
// stderr and try client's registered versions in order of preference.
// - If version is config default, and the server does not support it,
// return an error.
func NegotiateVersion(client *Client, c *Config, version string) (string, error) {
func NegotiateVersion(client *Client, c *Config, version string, clientRegisteredVersions []string) (string, error) {
var err error
if client == nil {
client, err = New(c)
@@ -183,7 +182,7 @@ func NegotiateVersion(client *Client, c *Config, version string) (string, error)
}
}
clientVersions := util.StringSet{}
for _, v := range registered.RegisteredVersions {
for _, v := range clientRegisteredVersions {
clientVersions.Insert(v)
}
apiVersions, err := client.ServerAPIVersions()
@@ -214,7 +213,7 @@ func NegotiateVersion(client *Client, c *Config, version string) (string, error)
}
}
for _, clientVersion := range registered.RegisteredVersions {
for _, clientVersion := range clientRegisteredVersions {
if serverVersions.Has(clientVersion) {
// Version was not explicitly requested in command config (--api-version).
// Ok to fall back to a supported version with a warning.
@@ -225,7 +224,7 @@ func NegotiateVersion(client *Client, c *Config, version string) (string, error)
}
}
return "", fmt.Errorf("Failed to negotiate an api version. Server supports: %v. Client supports: %v.",
serverVersions, registered.RegisteredVersions)
serverVersions, clientRegisteredVersions)
}
// NewOrDie creates a Kubernetes client and panics if the provided API version is not recognized.

View File

@@ -333,39 +333,44 @@ func TestNegotiateVersion(t *testing.T) {
tests := []struct {
name, version, expectedVersion string
serverVersions []string
clientVersions []string
config *Config
expectErr bool
}{
{
name: "server supports client default",
version: "v1",
expectedVersion: "v1",
version: "version1",
config: &Config{},
serverVersions: []string{"v1beta3", "v1"},
serverVersions: []string{"version1", testapi.Version()},
clientVersions: []string{"version1", testapi.Version()},
expectedVersion: "version1",
expectErr: false,
},
{
name: "server falls back to client supported",
version: "v1",
expectedVersion: "v1beta3",
version: testapi.Version(),
config: &Config{},
serverVersions: []string{"v1beta3"},
serverVersions: []string{"version1"},
clientVersions: []string{"version1", testapi.Version()},
expectedVersion: "version1",
expectErr: false,
},
{
name: "explicit version supported",
version: "",
expectedVersion: "v1",
config: &Config{Version: "v1"},
serverVersions: []string{"v1beta3", "v1"},
config: &Config{Version: testapi.Version()},
serverVersions: []string{"version1", testapi.Version()},
clientVersions: []string{"version1", testapi.Version()},
expectedVersion: testapi.Version(),
expectErr: false,
},
{
name: "explicit version not supported",
version: "",
config: &Config{Version: testapi.Version()},
serverVersions: []string{"version1"},
clientVersions: []string{"version1", testapi.Version()},
expectedVersion: "",
config: &Config{Version: "v1"},
serverVersions: []string{"v1beta3"},
expectErr: true,
},
}
@@ -384,7 +389,7 @@ func TestNegotiateVersion(t *testing.T) {
}
c := NewOrDie(test.config)
c.Client = fakeClient.Client
response, err := NegotiateVersion(c, test.config, test.version)
response, err := NegotiateVersion(c, test.config, test.version, test.clientVersions)
if err == nil && test.expectErr {
t.Errorf("expected error, got nil for [%s].", test.name)
}