Register the API versions to the DefaultRESTMapper in the order of preferred versions first.

This makes kubectl sends requests to URLs in the format defined by the latest API version.
This commit is contained in:
Chao Xu
2015-04-29 11:17:55 -07:00
parent f74fab4e56
commit 4787c66214
7 changed files with 15 additions and 13 deletions

View File

@@ -110,7 +110,8 @@ func init() {
},
)
// list of versions we support on the server
versions := []string{"v1beta1", "v1beta2", "v1beta3", "v1"}
// versions should be listed in the order of perferred versions first
versions := []string{"v1beta3", "v1beta2", "v1beta1", "v1"}
// versions that used mixed case URL formats
versionMixedCase := map[string]bool{

View File

@@ -72,11 +72,10 @@ func TestInterfacesFor(t *testing.T) {
}
func TestRESTMapper(t *testing.T) {
// TODO: This test does not seem right. The version returned here depends on the order in which API versions were registered. This will just return the API version that was registered first. Fix this.
if v, k, err := RESTMapper.VersionAndKindForResource("replicationControllers"); err != nil || v != "v1beta1" || k != "ReplicationController" {
if v, k, err := RESTMapper.VersionAndKindForResource("replicationControllers"); err != nil || v != "v1beta3" || k != "ReplicationController" {
t.Errorf("unexpected version mapping: %s %s %v", v, k, err)
}
if v, k, err := RESTMapper.VersionAndKindForResource("replicationcontrollers"); err != nil || v != "v1beta1" || k != "ReplicationController" {
if v, k, err := RESTMapper.VersionAndKindForResource("replicationcontrollers"); err != nil || v != "v1beta3" || k != "ReplicationController" {
t.Errorf("unexpected version mapping: %s %s %v", v, k, err)
}