diff --git a/cmd/integration/integration.go b/cmd/integration/integration.go index 2dd3f07ace5..4eda3fb3b1c 100644 --- a/cmd/integration/integration.go +++ b/cmd/integration/integration.go @@ -132,11 +132,11 @@ func startComponents(firstManifestURL, secondManifestURL string) (string, string // We will fix this by supporting multiple group versions in Config cl.ExperimentalClient = client.NewExperimentalOrDie(&client.Config{Host: apiServer.URL, Version: testapi.Experimental.Version()}) - etcdStorage, err := master.NewEtcdStorage(etcdClient, latest.InterfacesFor, testapi.Default.Version(), etcdtest.PathPrefix()) + etcdStorage, err := master.NewEtcdStorage(etcdClient, latest.GroupOrDie("").InterfacesFor, testapi.Default.Version(), etcdtest.PathPrefix()) if err != nil { glog.Fatalf("Unable to get etcd storage: %v", err) } - expEtcdStorage, err := master.NewEtcdStorage(etcdClient, explatest.InterfacesFor, testapi.Experimental.Version(), etcdtest.PathPrefix()) + expEtcdStorage, err := master.NewEtcdStorage(etcdClient, latest.GroupOrDie("experimental").InterfacesFor, testapi.Experimental.Version(), etcdtest.PathPrefix()) if err != nil { glog.Fatalf("Unable to get etcd storage for experimental: %v", err) } diff --git a/cmd/kube-apiserver/app/server.go b/cmd/kube-apiserver/app/server.go index c421167bc02..6c14ad79807 100644 --- a/cmd/kube-apiserver/app/server.go +++ b/cmd/kube-apiserver/app/server.go @@ -340,11 +340,11 @@ func (s *APIServer) Run(_ []string) error { glog.Fatalf("Invalid server address: %v", err) } - etcdStorage, err := newEtcd(s.EtcdConfigFile, s.EtcdServerList, latest.InterfacesFor, latest.Version, s.StorageVersion, s.EtcdPathPrefix) + etcdStorage, err := newEtcd(s.EtcdConfigFile, s.EtcdServerList, latest.GroupOrDie("").InterfacesFor, latest.GroupOrDie("").Version, s.StorageVersion, s.EtcdPathPrefix) if err != nil { glog.Fatalf("Invalid storage version or misconfigured etcd: %v", err) } - expEtcdStorage, err := newEtcd(s.EtcdConfigFile, s.EtcdServerList, explatest.InterfacesFor, explatest.Version, s.ExpStorageVersion, s.EtcdPathPrefix) + expEtcdStorage, err := newEtcd(s.EtcdConfigFile, s.EtcdServerList, latest.GroupOrDie("experimental").InterfacesFor, latest.GroupOrDie("experimental").Version, s.ExpStorageVersion, s.EtcdPathPrefix) if err != nil { glog.Fatalf("Invalid experimental storage version or misconfigured etcd: %v", err) } diff --git a/cmd/kube-version-change/version.go b/cmd/kube-version-change/version.go index a5715d76ecb..4ae8c3b7e50 100644 --- a/cmd/kube-version-change/version.go +++ b/cmd/kube-version-change/version.go @@ -39,7 +39,7 @@ var ( inputSource = flag.StringP("input", "i", "-", "Input source; '-' means stdin") outputDest = flag.StringP("output", "o", "-", "Output destination; '-' means stdout") rewrite = flag.StringP("rewrite", "r", "", "If nonempty, use this as both input and output.") - outputVersion = flag.StringP("out-version", "v", latest.Version, "Version to convert input to") + outputVersion = flag.StringP("out-version", "v", latest.GroupOrDie("").Version, "Version to convert input to") ) // isYAML determines whether data is JSON or YAML formatted by seeing diff --git a/examples/examples_test.go b/examples/examples_test.go index 02d1d2040d7..3d0f2f28aa4 100644 --- a/examples/examples_test.go +++ b/examples/examples_test.go @@ -365,7 +365,7 @@ func TestExampleObjectSchemas(t *testing.T) { } //TODO: Add validate method for &schedulerapi.Policy } else { - if err := latest.Codec.DecodeInto(data, expectedType); err != nil { + if err := latest.GroupOrDie("").Codec.DecodeInto(data, expectedType); err != nil { t.Errorf("%s did not decode correctly: %v\n%s", path, err, string(data)) return } @@ -451,14 +451,14 @@ func TestReadme(t *testing.T) { if err != nil { t.Errorf("%s could not be converted to JSON: %v\n%s", path, err, string(content)) } - if err := latest.Codec.DecodeInto(json, expectedType); err != nil { + if err := latest.GroupOrDie("").Codec.DecodeInto(json, expectedType); err != nil { t.Errorf("%s did not decode correctly: %v\n%s", path, err, string(content)) continue } if errors := validateObject(expectedType); len(errors) > 0 { t.Errorf("%s did not validate correctly: %v", path, errors) } - _, err = latest.Codec.Encode(expectedType) + _, err = latest.GroupOrDie("").Codec.Encode(expectedType) if err != nil { t.Errorf("Could not encode object: %v", err) continue diff --git a/examples/https-nginx/make_secret.go b/examples/https-nginx/make_secret.go index 67a93ee70ba..308f071e82f 100644 --- a/examples/https-nginx/make_secret.go +++ b/examples/https-nginx/make_secret.go @@ -62,5 +62,5 @@ func main() { "nginx.key": nginxKey, }, } - fmt.Printf(runtime.EncodeOrDie(latest.Codec, secret)) + fmt.Printf(runtime.EncodeOrDie(latest.GroupOrDie("").Codec, secret)) } diff --git a/examples/sharing-clusters/make_secret.go b/examples/sharing-clusters/make_secret.go index 6cf03c77f9d..492299c28e8 100644 --- a/examples/sharing-clusters/make_secret.go +++ b/examples/sharing-clusters/make_secret.go @@ -59,5 +59,5 @@ func main() { "config": cfg, }, } - fmt.Printf(runtime.EncodeOrDie(latest.Codec, secret)) + fmt.Printf(runtime.EncodeOrDie(latest.GroupOrDie("").Codec, secret)) } diff --git a/pkg/api/latest/latest_test.go b/pkg/api/latest/latest_test.go index bfce20aa74a..24fafedf20b 100644 --- a/pkg/api/latest/latest_test.go +++ b/pkg/api/latest/latest_test.go @@ -21,8 +21,11 @@ import ( "testing" internal "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/meta" ) +var accessor = meta.NewAccessor() + func TestResourceVersioner(t *testing.T) { pod := internal.Pod{ObjectMeta: internal.ObjectMeta{ResourceVersion: "10"}} version, err := accessor.ResourceVersion(&pod) @@ -45,7 +48,7 @@ func TestResourceVersioner(t *testing.T) { func TestCodec(t *testing.T) { pod := internal.Pod{} - data, err := Codec.Encode(&pod) + data, err := GroupOrDie("").Codec.Encode(&pod) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -53,33 +56,33 @@ func TestCodec(t *testing.T) { if err := json.Unmarshal(data, &other); err != nil { t.Fatalf("unexpected error: %v", err) } - if other.APIVersion != Version || other.Kind != "Pod" { + if other.APIVersion != GroupOrDie("").Version || other.Kind != "Pod" { t.Errorf("unexpected unmarshalled object %#v", other) } } func TestInterfacesFor(t *testing.T) { - if _, err := InterfacesFor(""); err == nil { + if _, err := GroupOrDie("").InterfacesFor(""); err == nil { t.Fatalf("unexpected non-error: %v", err) } - for i, version := range append([]string{Version, OldestVersion}, Versions...) { - if vi, err := InterfacesFor(version); err != nil || vi == nil { + for i, version := range append([]string{GroupOrDie("").Version}, GroupOrDie("").Versions...) { + if vi, err := GroupOrDie("").InterfacesFor(version); err != nil || vi == nil { t.Fatalf("%d: unexpected result: %v", i, err) } } } func TestRESTMapper(t *testing.T) { - if v, k, err := RESTMapper.VersionAndKindForResource("replicationcontrollers"); err != nil || v != "v1" || k != "ReplicationController" { + if v, k, err := GroupOrDie("").RESTMapper.VersionAndKindForResource("replicationcontrollers"); err != nil || v != "v1" || k != "ReplicationController" { t.Errorf("unexpected version mapping: %s %s %v", v, k, err) } - if m, err := RESTMapper.RESTMapping("PodTemplate", ""); err != nil || m.APIVersion != "v1" || m.Resource != "podtemplates" { + if m, err := GroupOrDie("").RESTMapper.RESTMapping("PodTemplate", ""); err != nil || m.APIVersion != "v1" || m.Resource != "podtemplates" { t.Errorf("unexpected version mapping: %#v %v", m, err) } - for _, version := range Versions { - mapping, err := RESTMapper.RESTMapping("ReplicationController", version) + for _, version := range GroupOrDie("").Versions { + mapping, err := GroupOrDie("").RESTMapper.RESTMapping("ReplicationController", version) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -91,7 +94,7 @@ func TestRESTMapper(t *testing.T) { t.Errorf("incorrect version: %v", mapping) } - interfaces, _ := InterfacesFor(version) + interfaces, _ := GroupOrDie("").InterfacesFor(version) if mapping.Codec != interfaces.Codec { t.Errorf("unexpected codec: %#v, expected: %#v", mapping, interfaces) } diff --git a/pkg/api/serialization_test.go b/pkg/api/serialization_test.go index c500623bb5e..515c9e379f7 100644 --- a/pkg/api/serialization_test.go +++ b/pkg/api/serialization_test.go @@ -167,8 +167,8 @@ func TestEncode_Ptr(t *testing.T) { }, } obj := runtime.Object(pod) - data, err := latest.Codec.Encode(obj) - obj2, err2 := latest.Codec.Decode(data) + data, err := latest.GroupOrDie("").Codec.Encode(obj) + obj2, err2 := latest.GroupOrDie("").Codec.Decode(data) if err != nil || err2 != nil { t.Fatalf("Failure: '%v' '%v'", err, err2) } @@ -182,11 +182,11 @@ func TestEncode_Ptr(t *testing.T) { func TestBadJSONRejection(t *testing.T) { badJSONMissingKind := []byte(`{ }`) - if _, err := latest.Codec.Decode(badJSONMissingKind); err == nil { + if _, err := latest.GroupOrDie("").Codec.Decode(badJSONMissingKind); err == nil { t.Errorf("Did not reject despite lack of kind field: %s", badJSONMissingKind) } badJSONUnknownType := []byte(`{"kind": "bar"}`) - if _, err1 := latest.Codec.Decode(badJSONUnknownType); err1 == nil { + if _, err1 := latest.GroupOrDie("").Codec.Decode(badJSONUnknownType); err1 == nil { t.Errorf("Did not reject despite use of unknown type: %s", badJSONUnknownType) } /*badJSONKindMismatch := []byte(`{"kind": "Pod"}`) @@ -202,7 +202,7 @@ func BenchmarkEncode(b *testing.B) { apiObjectFuzzer := apitesting.FuzzerFor(nil, "", rand.NewSource(benchmarkSeed)) apiObjectFuzzer.Fuzz(&pod) for i := 0; i < b.N; i++ { - latest.Codec.Encode(&pod) + latest.GroupOrDie("").Codec.Encode(&pod) } } @@ -220,9 +220,9 @@ func BenchmarkDecode(b *testing.B) { pod := api.Pod{} apiObjectFuzzer := apitesting.FuzzerFor(nil, "", rand.NewSource(benchmarkSeed)) apiObjectFuzzer.Fuzz(&pod) - data, _ := latest.Codec.Encode(&pod) + data, _ := latest.GroupOrDie("").Codec.Encode(&pod) for i := 0; i < b.N; i++ { - latest.Codec.Decode(data) + latest.GroupOrDie("").Codec.Decode(data) } } @@ -230,10 +230,10 @@ func BenchmarkDecodeInto(b *testing.B) { pod := api.Pod{} apiObjectFuzzer := apitesting.FuzzerFor(nil, "", rand.NewSource(benchmarkSeed)) apiObjectFuzzer.Fuzz(&pod) - data, _ := latest.Codec.Encode(&pod) + data, _ := latest.GroupOrDie("").Codec.Encode(&pod) for i := 0; i < b.N; i++ { obj := api.Pod{} - latest.Codec.DecodeInto(data, &obj) + latest.GroupOrDie("").Codec.DecodeInto(data, &obj) } } @@ -242,7 +242,7 @@ func BenchmarkDecodeJSON(b *testing.B) { pod := api.Pod{} apiObjectFuzzer := apitesting.FuzzerFor(nil, "", rand.NewSource(benchmarkSeed)) apiObjectFuzzer.Fuzz(&pod) - data, _ := latest.Codec.Encode(&pod) + data, _ := latest.GroupOrDie("").Codec.Encode(&pod) for i := 0; i < b.N; i++ { obj := api.Pod{} json.Unmarshal(data, &obj) diff --git a/pkg/api/testapi/testapi.go b/pkg/api/testapi/testapi.go index 8b0cbe59d20..c84f898c651 100644 --- a/pkg/api/testapi/testapi.go +++ b/pkg/api/testapi/testapi.go @@ -22,10 +22,12 @@ import ( "os" "strings" + _ "k8s.io/kubernetes/pkg/api/install" + _ "k8s.io/kubernetes/pkg/expapi/install" + "k8s.io/kubernetes/pkg/api/latest" "k8s.io/kubernetes/pkg/api/meta" apiutil "k8s.io/kubernetes/pkg/api/util" - explatest "k8s.io/kubernetes/pkg/apis/experimental/latest" "k8s.io/kubernetes/pkg/runtime" ) @@ -59,12 +61,12 @@ func init() { // TODO: caesarxuchao: we need a central place to store all available API // groups and their metadata. if _, ok := Groups[""]; !ok { - // TODO: The second latest.Version will be latest.GroupVersion after we + // TODO: The second latest.GroupOrDie("").Version will be latest.GroupVersion after we // have multiple group support - Groups[""] = TestGroup{"", latest.Version, latest.Version} + Groups[""] = TestGroup{"", latest.GroupOrDie("").Version, latest.GroupOrDie("").Version} } if _, ok := Groups["experimental"]; !ok { - Groups["experimental"] = TestGroup{"experimental", explatest.Version, explatest.Version} + Groups["experimental"] = TestGroup{"experimental", latest.GroupOrDie("experimental").Version, latest.GroupOrDie("experimental").Version} } Default = Groups[""] @@ -88,14 +90,14 @@ func (g TestGroup) GroupAndVersion() string { func (g TestGroup) Codec() runtime.Codec { // TODO: caesarxuchao: Restructure the body once we have a central `latest`. if g.Group == "" { - interfaces, err := latest.InterfacesFor(g.VersionUnderTest) + interfaces, err := latest.GroupOrDie("").InterfacesFor(g.VersionUnderTest) if err != nil { panic(err) } return interfaces.Codec } if g.Group == "experimental" { - interfaces, err := explatest.InterfacesFor(g.VersionUnderTest) + interfaces, err := latest.GroupOrDie("experimental").InterfacesFor(g.VersionUnderTest) if err != nil { panic(err) } @@ -109,14 +111,14 @@ func (g TestGroup) Codec() runtime.Codec { func (g TestGroup) Converter() runtime.ObjectConvertor { // TODO: caesarxuchao: Restructure the body once we have a central `latest`. if g.Group == "" { - interfaces, err := latest.InterfacesFor(g.VersionUnderTest) + interfaces, err := latest.GroupOrDie("").InterfacesFor(g.VersionUnderTest) if err != nil { panic(err) } return interfaces.ObjectConvertor } if g.Group == "experimental" { - interfaces, err := explatest.InterfacesFor(g.VersionUnderTest) + interfaces, err := latest.GroupOrDie("experimental").InterfacesFor(g.VersionUnderTest) if err != nil { panic(err) } @@ -131,14 +133,14 @@ func (g TestGroup) Converter() runtime.ObjectConvertor { func (g TestGroup) MetadataAccessor() meta.MetadataAccessor { // TODO: caesarxuchao: Restructure the body once we have a central `latest`. if g.Group == "" { - interfaces, err := latest.InterfacesFor(g.VersionUnderTest) + interfaces, err := latest.GroupOrDie("").InterfacesFor(g.VersionUnderTest) if err != nil { panic(err) } return interfaces.MetadataAccessor } if g.Group == "experimental" { - interfaces, err := explatest.InterfacesFor(g.VersionUnderTest) + interfaces, err := latest.GroupOrDie("experimental").InterfacesFor(g.VersionUnderTest) if err != nil { panic(err) } diff --git a/pkg/apis/experimental/testapi/testapi.go b/pkg/apis/experimental/testapi/testapi.go index 229a1bf04ac..7d4bcd282a5 100644 --- a/pkg/apis/experimental/testapi/testapi.go +++ b/pkg/apis/experimental/testapi/testapi.go @@ -26,7 +26,7 @@ import ( // For example, this is of the form: // /experimental/v1/watch/namespaces/foo/pods/pod0 for v1. func ResourcePathWithPrefix(prefix, resource, namespace, name string) string { - path := "/experimental/" + latest.Version + path := "/experimental/" + latest.GroupOrDie("").Version if prefix != "" { path = path + "/" + prefix } diff --git a/pkg/apiserver/apiserver.go b/pkg/apiserver/apiserver.go index a15e626d09f..9e1f7bdd66d 100644 --- a/pkg/apiserver/apiserver.go +++ b/pkg/apiserver/apiserver.go @@ -177,7 +177,7 @@ func logStackOnRecover(panicReason interface{}, httpWriter http.ResponseWriter) glog.Errorln(buffer.String()) // TODO: make status unversioned or plumb enough of the request to deduce the requested API version - errorJSON(apierrors.NewGenericServerResponse(http.StatusInternalServerError, "", "", "", "", 0, false), latest.Codec, httpWriter) + errorJSON(apierrors.NewGenericServerResponse(http.StatusInternalServerError, "", "", "", "", 0, false), latest.GroupOrDie("").Codec, httpWriter) } func InstallServiceErrorHandler(container *restful.Container, requestResolver *APIRequestInfoResolver, apiVersions []string) { @@ -188,7 +188,7 @@ func InstallServiceErrorHandler(container *restful.Container, requestResolver *A func serviceErrorHandler(requestResolver *APIRequestInfoResolver, apiVersions []string, serviceErr restful.ServiceError, request *restful.Request, response *restful.Response) { requestInfo, err := requestResolver.GetAPIRequestInfo(request.Request) - codec := latest.Codec + codec := latest.GroupOrDie("").Codec if err == nil && requestInfo.APIVersion != "" { // check if the api version is valid. for _, version := range apiVersions { diff --git a/pkg/apiserver/handlers_test.go b/pkg/apiserver/handlers_test.go index c296a0cdb65..95696809309 100644 --- a/pkg/apiserver/handlers_test.go +++ b/pkg/apiserver/handlers_test.go @@ -246,7 +246,7 @@ func TestGetAPIRequestInfo(t *testing.T) { {"PUT", "/namespaces/other/finalize", "update", "", "other", "finalize", "", "", "", []string{"finalize"}}, } - apiRequestInfoResolver := &APIRequestInfoResolver{sets.NewString("api"), latest.RESTMapper} + apiRequestInfoResolver := &APIRequestInfoResolver{sets.NewString("api"), latest.GroupOrDie("").RESTMapper} for _, successCase := range successCases { req, _ := http.NewRequest(successCase.method, successCase.url, nil) diff --git a/pkg/client/unversioned/clientcmd/client_config_test.go b/pkg/client/unversioned/clientcmd/client_config_test.go index 4bf6eebd696..52af32fb0c6 100644 --- a/pkg/client/unversioned/clientcmd/client_config_test.go +++ b/pkg/client/unversioned/clientcmd/client_config_test.go @@ -34,7 +34,7 @@ func createValidTestConfig() *clientcmdapi.Config { config := clientcmdapi.NewConfig() config.Clusters["clean"] = &clientcmdapi.Cluster{ Server: server, - APIVersion: latest.Version, + APIVersion: latest.GroupOrDie("").Version, } config.AuthInfos["clean"] = &clientcmdapi.AuthInfo{ Token: token, @@ -89,7 +89,7 @@ func TestCertificateData(t *testing.T) { config := clientcmdapi.NewConfig() config.Clusters["clean"] = &clientcmdapi.Cluster{ Server: "https://localhost:8443", - APIVersion: latest.Version, + APIVersion: latest.GroupOrDie("").Version, CertificateAuthorityData: caData, } config.AuthInfos["clean"] = &clientcmdapi.AuthInfo{ @@ -122,7 +122,7 @@ func TestBasicAuthData(t *testing.T) { config := clientcmdapi.NewConfig() config.Clusters["clean"] = &clientcmdapi.Cluster{ Server: "https://localhost:8443", - APIVersion: latest.Version, + APIVersion: latest.GroupOrDie("").Version, } config.AuthInfos["clean"] = &clientcmdapi.AuthInfo{ Username: username, diff --git a/pkg/client/unversioned/experimental.go b/pkg/client/unversioned/experimental.go index 00f33daa1c0..d6fab959de4 100644 --- a/pkg/client/unversioned/experimental.go +++ b/pkg/client/unversioned/experimental.go @@ -22,7 +22,7 @@ import ( "strings" "k8s.io/kubernetes/pkg/api" - explatest "k8s.io/kubernetes/pkg/apis/experimental/latest" + "k8s.io/kubernetes/pkg/api/latest" "k8s.io/kubernetes/pkg/version" ) @@ -124,12 +124,12 @@ func setExperimentalDefaults(config *Config) error { config.UserAgent = DefaultKubernetesUserAgent() } if config.Version == "" { - config.Version = explatest.Version + config.Version = latest.GroupOrDie("experimental").Version } - versionInterfaces, err := explatest.InterfacesFor(config.Version) + versionInterfaces, err := latest.GroupOrDie("experimental").InterfacesFor(config.Version) if err != nil { return fmt.Errorf("Experimental API version '%s' is not recognized (valid values: %s)", - config.Version, strings.Join(explatest.Versions, ", ")) + config.Version, strings.Join(latest.GroupOrDie("experimental").Versions, ", ")) } if config.Codec == nil { config.Codec = versionInterfaces.Codec diff --git a/pkg/client/unversioned/helper.go b/pkg/client/unversioned/helper.go index 081e5f9214a..afe6ef242e3 100644 --- a/pkg/client/unversioned/helper.go +++ b/pkg/client/unversioned/helper.go @@ -290,9 +290,9 @@ func SetKubernetesDefaults(config *Config) error { config.Version = defaultVersionFor(config) } version := config.Version - versionInterfaces, err := latest.InterfacesFor(version) + versionInterfaces, err := latest.GroupOrDie("").InterfacesFor(version) if err != nil { - return fmt.Errorf("API version '%s' is not recognized (valid values: %s)", version, strings.Join(latest.Versions, ", ")) + return fmt.Errorf("API version '%s' is not recognized (valid values: %s)", version, strings.Join(latest.GroupOrDie("").Versions, ", ")) } if config.Codec == nil { config.Codec = versionInterfaces.Codec @@ -543,7 +543,7 @@ func defaultVersionFor(config *Config) string { if version == "" { // Clients default to the preferred code API version // TODO: implement version negotiation (highest version supported by server) - version = latest.Version + version = latest.GroupOrDie("").Version } return version } diff --git a/pkg/client/unversioned/helper_test.go b/pkg/client/unversioned/helper_test.go index a81c5d9a612..a28e728fd8b 100644 --- a/pkg/client/unversioned/helper_test.go +++ b/pkg/client/unversioned/helper_test.go @@ -222,7 +222,7 @@ func TestTLSTransportCache(t *testing.T) { "host": {Insecure: true, Host: "foo"}, "prefix": {Insecure: true, Prefix: "foo"}, "version": {Insecure: true, Version: "foo"}, - "codec": {Insecure: true, Codec: latest.Codec}, + "codec": {Insecure: true, Codec: latest.GroupOrDie("").Codec}, "basic": {Insecure: true, Username: "bob", Password: "password"}, "bearer": {Insecure: true, BearerToken: "token"}, "user agent": {Insecure: true, UserAgent: "useragent"}, @@ -336,8 +336,8 @@ func TestSetKubernetesDefaults(t *testing.T) { Config{}, Config{ Prefix: "/api", - Version: latest.Version, - Codec: latest.Codec, + Version: latest.GroupOrDie("").Version, + Codec: latest.GroupOrDie("").Codec, QPS: 5, Burst: 10, }, diff --git a/pkg/client/unversioned/request_test.go b/pkg/client/unversioned/request_test.go index 7fbe26c5556..c626c88835b 100644 --- a/pkg/client/unversioned/request_test.go +++ b/pkg/client/unversioned/request_test.go @@ -193,7 +193,7 @@ func TestRequestBody(t *testing.T) { } // test unencodable api object - r = (&Request{codec: latest.Codec}).Body(&NotAnAPIObject{}) + r = (&Request{codec: latest.GroupOrDie("").Codec}).Body(&NotAnAPIObject{}) if r.err == nil || r.body != nil { t.Errorf("should have set err and left body nil: %#v", r) } @@ -356,7 +356,7 @@ func TestTransformUnstructuredError(t *testing.T) { for _, testCase := range testCases { r := &Request{ - codec: latest.Codec, + codec: latest.GroupOrDie("").Codec, resourceName: testCase.Name, resource: testCase.Resource, } @@ -543,7 +543,7 @@ func TestRequestStream(t *testing.T) { })))), }, nil }), - codec: latest.Codec, + codec: latest.GroupOrDie("").Codec, baseURL: &url.URL{}, }, Err: true, @@ -1185,7 +1185,7 @@ func TestWatch(t *testing.T) { w.WriteHeader(http.StatusOK) flusher.Flush() - encoder := watchjson.NewEncoder(w, latest.Codec) + encoder := watchjson.NewEncoder(w, latest.GroupOrDie("").Codec) for _, item := range table { if err := encoder.Encode(&watch.Event{Type: item.t, Object: item.obj}); err != nil { panic(err) diff --git a/pkg/client/unversioned/restclient_test.go b/pkg/client/unversioned/restclient_test.go index 942ccf5570e..95eb111d0a9 100644 --- a/pkg/client/unversioned/restclient_test.go +++ b/pkg/client/unversioned/restclient_test.go @@ -109,7 +109,7 @@ func TestValidatesHostParameter(t *testing.T) { func TestDoRequestBearer(t *testing.T) { status := &api.Status{Status: api.StatusFailure} - expectedBody, _ := latest.Codec.Encode(status) + expectedBody, _ := latest.GroupOrDie("").Codec.Encode(status) fakeHandler := util.FakeHandler{ StatusCode: 400, ResponseBody: string(expectedBody), @@ -138,7 +138,7 @@ func TestDoRequestBearer(t *testing.T) { func TestDoRequestWithoutPassword(t *testing.T) { status := &api.Status{Status: api.StatusFailure} - expectedBody, _ := latest.Codec.Encode(status) + expectedBody, _ := latest.GroupOrDie("").Codec.Encode(status) fakeHandler := util.FakeHandler{ StatusCode: 400, ResponseBody: string(expectedBody), @@ -177,7 +177,7 @@ func TestDoRequestWithoutPassword(t *testing.T) { func TestDoRequestSuccess(t *testing.T) { status := &api.Status{Status: api.StatusSuccess} - expectedBody, _ := latest.Codec.Encode(status) + expectedBody, _ := latest.GroupOrDie("").Codec.Encode(status) fakeHandler := util.FakeHandler{ StatusCode: 200, ResponseBody: string(expectedBody), @@ -202,7 +202,7 @@ func TestDoRequestSuccess(t *testing.T) { if fakeHandler.RequestReceived.Header["Authorization"] == nil { t.Errorf("Request is missing authorization header: %#v", fakeHandler.RequestReceived) } - statusOut, err := latest.Codec.Decode(body) + statusOut, err := latest.GroupOrDie("").Codec.Decode(body) if err != nil { t.Errorf("Unexpected error %#v", err) } @@ -220,7 +220,7 @@ func TestDoRequestFailed(t *testing.T) { Message: " \"\" not found", Details: &api.StatusDetails{}, } - expectedBody, _ := latest.Codec.Encode(status) + expectedBody, _ := latest.GroupOrDie("").Codec.Encode(status) fakeHandler := util.FakeHandler{ StatusCode: 404, ResponseBody: string(expectedBody), @@ -252,7 +252,7 @@ func TestDoRequestFailed(t *testing.T) { func TestDoRequestCreated(t *testing.T) { status := &api.Status{Status: api.StatusSuccess} - expectedBody, _ := latest.Codec.Encode(status) + expectedBody, _ := latest.GroupOrDie("").Codec.Encode(status) fakeHandler := util.FakeHandler{ StatusCode: 201, ResponseBody: string(expectedBody), @@ -278,7 +278,7 @@ func TestDoRequestCreated(t *testing.T) { if !created { t.Errorf("Expected object to be created") } - statusOut, err := latest.Codec.Decode(body) + statusOut, err := latest.GroupOrDie("").Codec.Decode(body) if err != nil { t.Errorf("Unexpected error %#v", err) } diff --git a/pkg/client/unversioned/testclient/testclient.go b/pkg/client/unversioned/testclient/testclient.go index 6bb59bfc9e1..7229227f248 100644 --- a/pkg/client/unversioned/testclient/testclient.go +++ b/pkg/client/unversioned/testclient/testclient.go @@ -39,7 +39,7 @@ func NewSimpleFake(objects ...runtime.Object) *Fake { } fakeClient := &Fake{} - fakeClient.AddReactor("*", "*", ObjectReaction(o, latest.RESTMapper)) + fakeClient.AddReactor("*", "*", ObjectReaction(o, latest.GroupOrDie("").RESTMapper)) return fakeClient } diff --git a/pkg/client/unversioned/testclient/testclient_test.go b/pkg/client/unversioned/testclient/testclient_test.go index a8e1f85381d..7594df9d079 100644 --- a/pkg/client/unversioned/testclient/testclient_test.go +++ b/pkg/client/unversioned/testclient/testclient_test.go @@ -32,7 +32,7 @@ func TestNewClient(t *testing.T) { t.Fatal(err) } client := &Fake{} - client.AddReactor("*", "*", ObjectReaction(o, latest.RESTMapper)) + client.AddReactor("*", "*", ObjectReaction(o, latest.GroupOrDie("").RESTMapper)) list, err := client.Services("test").List(labels.Everything()) if err != nil { t.Fatal(err) @@ -63,7 +63,7 @@ func TestErrors(t *testing.T) { }, }) client := &Fake{} - client.AddReactor("*", "*", ObjectReaction(o, latest.RESTMapper)) + client.AddReactor("*", "*", ObjectReaction(o, latest.GroupOrDie("").RESTMapper)) _, err := client.Services("test").List(labels.Everything()) if !errors.IsNotFound(err) { t.Fatalf("unexpected error: %v", err) diff --git a/pkg/client/unversioned/transport_test.go b/pkg/client/unversioned/transport_test.go index 3b8d1bed0a2..130d08d93f7 100644 --- a/pkg/client/unversioned/transport_test.go +++ b/pkg/client/unversioned/transport_test.go @@ -109,7 +109,7 @@ func TestTLSConfigKey(t *testing.T) { "host": {Host: "foo"}, "prefix": {Prefix: "foo"}, "version": {Version: "foo"}, - "codec": {Codec: latest.Codec}, + "codec": {Codec: latest.GroupOrDie("").Codec}, "basic": {Username: "bob", Password: "password"}, "bearer": {BearerToken: "token"}, "user agent": {UserAgent: "useragent"}, diff --git a/pkg/controller/controller_utils.go b/pkg/controller/controller_utils.go index 128ca80fd29..9610136752f 100644 --- a/pkg/controller/controller_utils.go +++ b/pkg/controller/controller_utils.go @@ -240,7 +240,7 @@ func getReplicaAnnotationSet(template *api.PodTemplateSpec, object runtime.Objec if err != nil { return desiredAnnotations, fmt.Errorf("unable to get controller reference: %v", err) } - createdByRefJson, err := latest.Codec.Encode(&api.SerializedReference{ + createdByRefJson, err := latest.GroupOrDie("").Codec.Encode(&api.SerializedReference{ Reference: *createdByRef, }) if err != nil { diff --git a/pkg/kubectl/cmd/cmd_test.go b/pkg/kubectl/cmd/cmd_test.go index bd7c08b4550..283c6f30673 100644 --- a/pkg/kubectl/cmd/cmd_test.go +++ b/pkg/kubectl/cmd/cmd_test.go @@ -175,7 +175,7 @@ func NewTestFactory() (*cmdutil.Factory, *testFactory, runtime.Codec) { func NewMixedFactory(apiClient resource.RESTClient) (*cmdutil.Factory, *testFactory, runtime.Codec) { f, t, c := NewTestFactory() f.Object = func() (meta.RESTMapper, runtime.ObjectTyper) { - return meta.MultiRESTMapper{t.Mapper, latest.RESTMapper}, runtime.MultiObjectTyper{t.Typer, api.Scheme} + return meta.MultiRESTMapper{t.Mapper, latest.GroupOrDie("").RESTMapper}, runtime.MultiObjectTyper{t.Typer, api.Scheme} } f.RESTClient = func(m *meta.RESTMapping) (resource.RESTClient, error) { if m.ObjectConvertor == api.Scheme { @@ -197,7 +197,7 @@ func NewAPIFactory() (*cmdutil.Factory, *testFactory, runtime.Codec) { } return &cmdutil.Factory{ Object: func() (meta.RESTMapper, runtime.ObjectTyper) { - return latest.RESTMapper, api.Scheme + return latest.GroupOrDie("").RESTMapper, api.Scheme }, Client: func() (*client.Client, error) { // Swap out the HTTP client out of the client with the fake's version. diff --git a/pkg/kubectl/cmd/get_test.go b/pkg/kubectl/cmd/get_test.go index b15d6ec67e3..f80cf38fd4c 100644 --- a/pkg/kubectl/cmd/get_test.go +++ b/pkg/kubectl/cmd/get_test.go @@ -128,7 +128,7 @@ func TestGetUnknownSchemaObject(t *testing.T) { Resp: &http.Response{StatusCode: 200, Body: objBody(codec, &internalType{Name: "foo"})}, } tf.Namespace = "test" - tf.ClientConfig = &client.Config{Version: latest.Version} + tf.ClientConfig = &client.Config{Version: latest.GroupOrDie("").Version} buf := bytes.NewBuffer([]byte{}) cmd := NewCmdGet(f, buf) @@ -153,9 +153,9 @@ func TestGetUnknownSchemaObject(t *testing.T) { // // The expected behavior of the `kubectl get` command is: // 1. objects using unrecognized schemes will always be returned using that scheme/version, "unlikelyversion" in this test; -// 2. if the specified output-version is a recognized, valid Scheme, then the list should use that scheme, and otherwise it will default to the client version, latest.Version in this test; +// 2. if the specified output-version is a recognized, valid Scheme, then the list should use that scheme, and otherwise it will default to the client version, latest.GroupOrDie("").Version in this test; // 3a. if the specified output-version is a recognized, valid Scheme, in which the requested object (replicationcontroller) can be represented, then the object should be returned using that version; -// 3b. otherwise if the specified output-version is unrecognized, but the requested object (replicationcontroller) is recognized by the client's codec, then it will be converted to the client version, latest.Version in this test. +// 3b. otherwise if the specified output-version is unrecognized, but the requested object (replicationcontroller) is recognized by the client's codec, then it will be converted to the client version, latest.GroupOrDie("").Version in this test. func TestGetUnknownSchemaObjectListGeneric(t *testing.T) { testCases := map[string]struct { outputVersion string @@ -164,16 +164,16 @@ func TestGetUnknownSchemaObjectListGeneric(t *testing.T) { rcVersion string }{ "handles specific version": { - outputVersion: latest.Version, - listVersion: latest.Version, + outputVersion: latest.GroupOrDie("").Version, + listVersion: latest.GroupOrDie("").Version, testtypeVersion: "unlikelyversion", - rcVersion: latest.Version, + rcVersion: latest.GroupOrDie("").Version, }, "handles second specific version": { outputVersion: "unlikelyversion", - listVersion: latest.Version, + listVersion: latest.GroupOrDie("").Version, testtypeVersion: "unlikelyversion", - rcVersion: latest.Version, // see expected behavior 3b + rcVersion: latest.GroupOrDie("").Version, // see expected behavior 3b }, "handles common version": { outputVersion: testapi.Default.Version(), @@ -200,7 +200,7 @@ func TestGetUnknownSchemaObjectListGeneric(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &client.Config{Version: latest.Version} + tf.ClientConfig = &client.Config{Version: latest.GroupOrDie("").Version} buf := bytes.NewBuffer([]byte{}) cmd := NewCmdGet(f, buf) cmd.SetOutput(buf) @@ -232,9 +232,9 @@ func TestGetUnknownSchemaObjectListGeneric(t *testing.T) { // Verifies that schemas that are not in the master tree of Kubernetes can be retrieved via Get. func TestGetSchemaObject(t *testing.T) { f, tf, _ := NewTestFactory() - tf.Mapper = latest.RESTMapper + tf.Mapper = latest.GroupOrDie("").RESTMapper tf.Typer = api.Scheme - codec := latest.Codec + codec := latest.GroupOrDie("").Codec tf.Printer = &testPrinter{} tf.Client = &client.FakeRESTClient{ Codec: codec, diff --git a/pkg/kubectl/cmd/util/helpers.go b/pkg/kubectl/cmd/util/helpers.go index 3a2b07a42ee..290a8dff9cc 100644 --- a/pkg/kubectl/cmd/util/helpers.go +++ b/pkg/kubectl/cmd/util/helpers.go @@ -345,7 +345,7 @@ func Merge(dst runtime.Object, fragment, kind string) (runtime.Object, error) { if !ok { return nil, fmt.Errorf("apiVersion must be a string") } - i, err := latest.InterfacesFor(versionString) + i, err := latest.GroupOrDie("").InterfacesFor(versionString) if err != nil { return nil, err } diff --git a/pkg/kubectl/resource/builder_test.go b/pkg/kubectl/resource/builder_test.go index 97322f3d5d1..47aeed55c9d 100644 --- a/pkg/kubectl/resource/builder_test.go +++ b/pkg/kubectl/resource/builder_test.go @@ -46,7 +46,7 @@ func stringBody(body string) io.ReadCloser { func watchBody(events ...watch.Event) string { buf := &bytes.Buffer{} - enc := watchjson.NewEncoder(buf, latest.Codec) + enc := watchjson.NewEncoder(buf, latest.GroupOrDie("").Codec) for _, e := range events { enc.Encode(&e) } @@ -62,7 +62,7 @@ func fakeClient() ClientMapper { func fakeClientWith(testName string, t *testing.T, data map[string]string) ClientMapper { return ClientMapperFunc(func(*meta.RESTMapping) (RESTClient, error) { return &client.FakeRESTClient{ - Codec: latest.Codec, + Codec: latest.GroupOrDie("").Codec, Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) { p := req.URL.Path q := req.URL.RawQuery @@ -129,8 +129,8 @@ func streamTestData() (io.Reader, *api.PodList, *api.ServiceList) { r, w := io.Pipe() go func() { defer w.Close() - w.Write([]byte(runtime.EncodeOrDie(latest.Codec, pods))) - w.Write([]byte(runtime.EncodeOrDie(latest.Codec, svc))) + w.Write([]byte(runtime.EncodeOrDie(latest.GroupOrDie("").Codec, pods))) + w.Write([]byte(runtime.EncodeOrDie(latest.GroupOrDie("").Codec, svc))) }() return r, pods, svc } @@ -148,9 +148,9 @@ func streamYAMLTestData() (io.Reader, *api.PodList, *api.ServiceList) { r, w := io.Pipe() go func() { defer w.Close() - w.Write(JSONToYAMLOrDie([]byte(runtime.EncodeOrDie(latest.Codec, pods)))) + w.Write(JSONToYAMLOrDie([]byte(runtime.EncodeOrDie(latest.GroupOrDie("").Codec, pods)))) w.Write([]byte("\n---\n")) - w.Write(JSONToYAMLOrDie([]byte(runtime.EncodeOrDie(latest.Codec, svc)))) + w.Write(JSONToYAMLOrDie([]byte(runtime.EncodeOrDie(latest.GroupOrDie("").Codec, svc)))) }() return r, pods, svc } @@ -159,7 +159,7 @@ func streamTestObject(obj runtime.Object) io.Reader { r, w := io.Pipe() go func() { defer w.Close() - w.Write([]byte(runtime.EncodeOrDie(latest.Codec, obj))) + w.Write([]byte(runtime.EncodeOrDie(latest.GroupOrDie("").Codec, obj))) }() return r } @@ -186,7 +186,7 @@ func (v *testVisitor) Objects() []runtime.Object { } func TestPathBuilder(t *testing.T) { - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). FilenameParam(false, "../../../examples/guestbook/redis-master-controller.yaml") test := &testVisitor{} @@ -217,10 +217,10 @@ func TestNodeBuilder(t *testing.T) { r, w := io.Pipe() go func() { defer w.Close() - w.Write([]byte(runtime.EncodeOrDie(latest.Codec, node))) + w.Write([]byte(runtime.EncodeOrDie(latest.GroupOrDie("").Codec, node))) }() - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). NamespaceParam("test").Stream(r, "STDIN") test := &testVisitor{} @@ -236,7 +236,7 @@ func TestNodeBuilder(t *testing.T) { } func TestPathBuilderWithMultiple(t *testing.T) { - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). FilenameParam(false, "../../../examples/guestbook/redis-master-controller.yaml"). FilenameParam(false, "../../../examples/pod"). NamespaceParam("test").DefaultNamespace() @@ -260,7 +260,7 @@ func TestPathBuilderWithMultiple(t *testing.T) { } func TestDirectoryBuilder(t *testing.T) { - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). FilenameParam(false, "../../../examples/guestbook"). NamespaceParam("test").DefaultNamespace() @@ -286,11 +286,11 @@ func TestDirectoryBuilder(t *testing.T) { func TestNamespaceOverride(t *testing.T) { s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { w.WriteHeader(http.StatusOK) - w.Write([]byte(runtime.EncodeOrDie(latest.Codec, &api.Pod{ObjectMeta: api.ObjectMeta{Namespace: "foo", Name: "test"}}))) + w.Write([]byte(runtime.EncodeOrDie(latest.GroupOrDie("").Codec, &api.Pod{ObjectMeta: api.ObjectMeta{Namespace: "foo", Name: "test"}}))) })) defer s.Close() - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). FilenameParam(false, s.URL). NamespaceParam("test") @@ -301,7 +301,7 @@ func TestNamespaceOverride(t *testing.T) { t.Fatalf("unexpected response: %v %#v", err, test.Infos) } - b = NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + b = NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). FilenameParam(true, s.URL). NamespaceParam("test") @@ -316,11 +316,11 @@ func TestNamespaceOverride(t *testing.T) { func TestURLBuilder(t *testing.T) { s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { w.WriteHeader(http.StatusOK) - w.Write([]byte(runtime.EncodeOrDie(latest.Codec, &api.Pod{ObjectMeta: api.ObjectMeta{Namespace: "foo", Name: "test"}}))) + w.Write([]byte(runtime.EncodeOrDie(latest.GroupOrDie("").Codec, &api.Pod{ObjectMeta: api.ObjectMeta{Namespace: "foo", Name: "test"}}))) })) defer s.Close() - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). FilenameParam(false, s.URL). NamespaceParam("test") @@ -340,11 +340,11 @@ func TestURLBuilder(t *testing.T) { func TestURLBuilderRequireNamespace(t *testing.T) { s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { w.WriteHeader(http.StatusOK) - w.Write([]byte(runtime.EncodeOrDie(latest.Codec, &api.Pod{ObjectMeta: api.ObjectMeta{Namespace: "foo", Name: "test"}}))) + w.Write([]byte(runtime.EncodeOrDie(latest.GroupOrDie("").Codec, &api.Pod{ObjectMeta: api.ObjectMeta{Namespace: "foo", Name: "test"}}))) })) defer s.Close() - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). FilenameParam(false, s.URL). NamespaceParam("test").RequireNamespace() @@ -359,8 +359,8 @@ func TestURLBuilderRequireNamespace(t *testing.T) { func TestResourceByName(t *testing.T) { pods, _ := testData() - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{ - "/namespaces/test/pods/foo": runtime.EncodeOrDie(latest.Codec, &pods.Items[0]), + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{ + "/namespaces/test/pods/foo": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, &pods.Items[0]), })). NamespaceParam("test") @@ -392,11 +392,11 @@ func TestResourceByName(t *testing.T) { func TestMultipleResourceByTheSameName(t *testing.T) { pods, svcs := testData() - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{ - "/namespaces/test/pods/foo": runtime.EncodeOrDie(latest.Codec, &pods.Items[0]), - "/namespaces/test/pods/baz": runtime.EncodeOrDie(latest.Codec, &pods.Items[1]), - "/namespaces/test/services/foo": runtime.EncodeOrDie(latest.Codec, &svcs.Items[0]), - "/namespaces/test/services/baz": runtime.EncodeOrDie(latest.Codec, &svcs.Items[0]), + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{ + "/namespaces/test/pods/foo": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, &pods.Items[0]), + "/namespaces/test/pods/baz": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, &pods.Items[1]), + "/namespaces/test/services/foo": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, &svcs.Items[0]), + "/namespaces/test/services/baz": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, &svcs.Items[0]), })). NamespaceParam("test") @@ -424,9 +424,9 @@ func TestMultipleResourceByTheSameName(t *testing.T) { func TestResourceNames(t *testing.T) { pods, svc := testData() - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{ - "/namespaces/test/pods/foo": runtime.EncodeOrDie(latest.Codec, &pods.Items[0]), - "/namespaces/test/services/baz": runtime.EncodeOrDie(latest.Codec, &svc.Items[0]), + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{ + "/namespaces/test/pods/foo": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, &pods.Items[0]), + "/namespaces/test/services/baz": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, &svc.Items[0]), })). NamespaceParam("test") @@ -451,7 +451,7 @@ func TestResourceNames(t *testing.T) { } func TestResourceByNameWithoutRequireObject(t *testing.T) { - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{})). + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{})). NamespaceParam("test") test := &testVisitor{} @@ -485,8 +485,8 @@ func TestResourceByNameWithoutRequireObject(t *testing.T) { func TestResourceByNameAndEmptySelector(t *testing.T) { pods, _ := testData() - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{ - "/namespaces/test/pods/foo": runtime.EncodeOrDie(latest.Codec, &pods.Items[0]), + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{ + "/namespaces/test/pods/foo": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, &pods.Items[0]), })). NamespaceParam("test"). SelectorParam(""). @@ -513,9 +513,9 @@ func TestResourceByNameAndEmptySelector(t *testing.T) { func TestSelector(t *testing.T) { pods, svc := testData() labelKey := api.LabelSelectorQueryParam(testapi.Default.Version()) - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{ - "/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(latest.Codec, pods), - "/namespaces/test/services?" + labelKey + "=a%3Db": runtime.EncodeOrDie(latest.Codec, svc), + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{ + "/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, pods), + "/namespaces/test/services?" + labelKey + "=a%3Db": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, svc), })). SelectorParam("a=b"). NamespaceParam("test"). @@ -544,7 +544,7 @@ func TestSelector(t *testing.T) { } func TestSelectorRequiresKnownTypes(t *testing.T) { - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). SelectorParam("a=b"). NamespaceParam("test"). ResourceTypes("unknown") @@ -555,7 +555,7 @@ func TestSelectorRequiresKnownTypes(t *testing.T) { } func TestSingleResourceType(t *testing.T) { - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). SelectorParam("a=b"). SingleResourceType(). ResourceTypeOrNameArgs(true, "pods,services") @@ -619,14 +619,14 @@ func TestResourceTuple(t *testing.T) { if requireObject { pods, _ := testData() expectedRequests = map[string]string{ - "/namespaces/test/pods/foo": runtime.EncodeOrDie(latest.Codec, &pods.Items[0]), - "/namespaces/test/pods/bar": runtime.EncodeOrDie(latest.Codec, &pods.Items[0]), - "/nodes/foo": runtime.EncodeOrDie(latest.Codec, &api.Node{ObjectMeta: api.ObjectMeta{Name: "foo"}}), - "/minions/foo": runtime.EncodeOrDie(latest.Codec, &api.Node{ObjectMeta: api.ObjectMeta{Name: "foo"}}), + "/namespaces/test/pods/foo": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, &pods.Items[0]), + "/namespaces/test/pods/bar": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, &pods.Items[0]), + "/nodes/foo": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, &api.Node{ObjectMeta: api.ObjectMeta{Name: "foo"}}), + "/minions/foo": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, &api.Node{ObjectMeta: api.ObjectMeta{Name: "foo"}}), } } - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClientWith(k, t, expectedRequests)). + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClientWith(k, t, expectedRequests)). NamespaceParam("test").DefaultNamespace(). ResourceTypeOrNameArgs(true, testCase.args...).RequireObject(requireObject) @@ -657,7 +657,7 @@ func TestResourceTuple(t *testing.T) { func TestStream(t *testing.T) { r, pods, rc := streamTestData() - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). NamespaceParam("test").Stream(r, "STDIN").Flatten() test := &testVisitor{} @@ -674,7 +674,7 @@ func TestStream(t *testing.T) { func TestYAMLStream(t *testing.T) { r, pods, rc := streamYAMLTestData() - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). NamespaceParam("test").Stream(r, "STDIN").Flatten() test := &testVisitor{} @@ -691,7 +691,7 @@ func TestYAMLStream(t *testing.T) { func TestMultipleObject(t *testing.T) { r, pods, svc := streamTestData() - obj, err := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + obj, err := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). NamespaceParam("test").Stream(r, "STDIN").Flatten(). Do().Object() @@ -713,7 +713,7 @@ func TestMultipleObject(t *testing.T) { func TestContinueOnErrorVisitor(t *testing.T) { r, _, _ := streamTestData() - req := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + req := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). ContinueOnError(). NamespaceParam("test").Stream(r, "STDIN").Flatten(). Do() @@ -742,7 +742,7 @@ func TestContinueOnErrorVisitor(t *testing.T) { } func TestSingularObject(t *testing.T) { - obj, err := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + obj, err := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). NamespaceParam("test").DefaultNamespace(). FilenameParam(false, "../../../examples/guestbook/redis-master-controller.yaml"). Flatten(). @@ -762,7 +762,7 @@ func TestSingularObject(t *testing.T) { } func TestSingularObjectNoExtension(t *testing.T) { - obj, err := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + obj, err := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). NamespaceParam("test").DefaultNamespace(). FilenameParam(false, "../../../examples/pod"). Flatten(). @@ -784,7 +784,7 @@ func TestSingularObjectNoExtension(t *testing.T) { func TestSingularRootScopedObject(t *testing.T) { node := &api.Node{ObjectMeta: api.ObjectMeta{Name: "test"}, Spec: api.NodeSpec{ExternalID: "test"}} r := streamTestObject(node) - infos, err := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + infos, err := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). NamespaceParam("test").DefaultNamespace(). Stream(r, "STDIN"). Flatten(). @@ -809,8 +809,8 @@ func TestSingularRootScopedObject(t *testing.T) { func TestListObject(t *testing.T) { pods, _ := testData() labelKey := api.LabelSelectorQueryParam(testapi.Default.Version()) - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{ - "/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(latest.Codec, pods), + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{ + "/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, pods), })). SelectorParam("a=b"). NamespaceParam("test"). @@ -842,9 +842,9 @@ func TestListObject(t *testing.T) { func TestListObjectWithDifferentVersions(t *testing.T) { pods, svc := testData() labelKey := api.LabelSelectorQueryParam(testapi.Default.Version()) - obj, err := NewBuilder(latest.RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{ - "/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(latest.Codec, pods), - "/namespaces/test/services?" + labelKey + "=a%3Db": runtime.EncodeOrDie(latest.Codec, svc), + obj, err := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{ + "/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, pods), + "/namespaces/test/services?" + labelKey + "=a%3Db": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, svc), })). SelectorParam("a=b"). NamespaceParam("test"). @@ -868,7 +868,7 @@ func TestListObjectWithDifferentVersions(t *testing.T) { func TestWatch(t *testing.T) { _, svc := testData() - w, err := NewBuilder(latest.RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{ + w, err := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{ "/watch/namespaces/test/services/redis-master?resourceVersion=12": watchBody(watch.Event{ Type: watch.Added, Object: &svc.Items[0], @@ -900,7 +900,7 @@ func TestWatch(t *testing.T) { } func TestWatchMultipleError(t *testing.T) { - _, err := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + _, err := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). NamespaceParam("test").DefaultNamespace(). FilenameParam(false, "../../../examples/guestbook/redis-master-controller.yaml").Flatten(). FilenameParam(false, "../../../examples/guestbook/redis-master-controller.yaml").Flatten(). @@ -923,10 +923,10 @@ func TestLatest(t *testing.T) { ObjectMeta: api.ObjectMeta{Name: "baz", Namespace: "test", ResourceVersion: "15"}, } - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{ - "/namespaces/test/pods/foo": runtime.EncodeOrDie(latest.Codec, newPod), - "/namespaces/test/pods/bar": runtime.EncodeOrDie(latest.Codec, newPod2), - "/namespaces/test/services/baz": runtime.EncodeOrDie(latest.Codec, newSvc), + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClientWith("", t, map[string]string{ + "/namespaces/test/pods/foo": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, newPod), + "/namespaces/test/pods/bar": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, newPod2), + "/namespaces/test/services/baz": runtime.EncodeOrDie(latest.GroupOrDie("").Codec, newSvc), })). NamespaceParam("other").Stream(r, "STDIN").Flatten().Latest() @@ -949,17 +949,17 @@ func TestReceiveMultipleErrors(t *testing.T) { go func() { defer w.Close() w.Write([]byte(`{}`)) - w.Write([]byte(runtime.EncodeOrDie(latest.Codec, &pods.Items[0]))) + w.Write([]byte(runtime.EncodeOrDie(latest.GroupOrDie("").Codec, &pods.Items[0]))) }() r2, w2 := io.Pipe() go func() { defer w2.Close() w2.Write([]byte(`{}`)) - w2.Write([]byte(runtime.EncodeOrDie(latest.Codec, &svc.Items[0]))) + w2.Write([]byte(runtime.EncodeOrDie(latest.GroupOrDie("").Codec, &svc.Items[0]))) }() - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()). + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()). Stream(r, "1").Stream(r2, "2"). ContinueOnError() @@ -1003,7 +1003,7 @@ func TestReplaceAliases(t *testing.T) { }, } - b := NewBuilder(latest.RESTMapper, api.Scheme, fakeClient()) + b := NewBuilder(latest.GroupOrDie("").RESTMapper, api.Scheme, fakeClient()) for _, test := range tests { replaced := b.replaceAliases(test.arg) diff --git a/pkg/kubectl/resource/result.go b/pkg/kubectl/resource/result.go index 3ac6d720157..6931fe4b136 100644 --- a/pkg/kubectl/resource/result.go +++ b/pkg/kubectl/resource/result.go @@ -220,7 +220,7 @@ func AsVersionedObject(infos []*Info, forceList bool, version string) (runtime.O object = objects[0] } else { object = &api.List{Items: objects} - converted, err := tryConvert(api.Scheme, object, version, latest.Version) + converted, err := tryConvert(api.Scheme, object, version, latest.GroupOrDie("").Version) if err != nil { return nil, err } diff --git a/pkg/kubelet/config/common.go b/pkg/kubelet/config/common.go index b1f075b3bef..355d5d4c4ca 100644 --- a/pkg/kubelet/config/common.go +++ b/pkg/kubelet/config/common.go @@ -72,7 +72,7 @@ func getSelfLink(name, namespace string) string { if len(namespace) == 0 { namespace = api.NamespaceDefault } - selfLink = fmt.Sprintf("/api/"+latest.Version+"/pods/namespaces/%s/%s", name, namespace) + selfLink = fmt.Sprintf("/api/"+latest.GroupOrDie("").Version+"/pods/namespaces/%s/%s", name, namespace) return selfLink } diff --git a/pkg/kubelet/dockertools/manager.go b/pkg/kubelet/dockertools/manager.go index 440d9d6a58d..5b6dbf0afd7 100644 --- a/pkg/kubelet/dockertools/manager.go +++ b/pkg/kubelet/dockertools/manager.go @@ -632,7 +632,7 @@ func (dm *DockerManager) runContainer( } if container.Lifecycle != nil && container.Lifecycle.PreStop != nil { // TODO: This is kind of hacky, we should really just encode the bits we need. - data, err := latest.Codec.Encode(pod) + data, err := latest.GroupOrDie("").Codec.Encode(pod) if err != nil { glog.Errorf("Failed to encode pod: %s for prestop hook", pod.Name) } else { @@ -1336,7 +1336,7 @@ func containerAndPodFromLabels(inspect *docker.Container) (pod *api.Pod, contain // the pod data may not be set if body, found := labels[kubernetesPodLabel]; found { pod = &api.Pod{} - if err = latest.Codec.DecodeInto([]byte(body), pod); err == nil { + if err = latest.GroupOrDie("").Codec.DecodeInto([]byte(body), pod); err == nil { name := labels[kubernetesContainerLabel] for ix := range pod.Spec.Containers { if pod.Spec.Containers[ix].Name == name { diff --git a/pkg/kubelet/server.go b/pkg/kubelet/server.go index 41f7dd90ab8..f8075832f28 100644 --- a/pkg/kubelet/server.go +++ b/pkg/kubelet/server.go @@ -364,7 +364,7 @@ func encodePods(pods []*api.Pod) (data []byte, err error) { for _, pod := range pods { podList.Items = append(podList.Items, *pod) } - return latest.Codec.Encode(podList) + return latest.GroupOrDie("").Codec.Encode(podList) } // getPods returns a list of pods bound to the Kubelet and their spec. diff --git a/pkg/master/master.go b/pkg/master/master.go index 51751e529be..e96c2a4adb6 100644 --- a/pkg/master/master.go +++ b/pkg/master/master.go @@ -41,7 +41,6 @@ import ( "k8s.io/kubernetes/pkg/api/rest" "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/apis/experimental" - explatest "k8s.io/kubernetes/pkg/apis/experimental/latest" "k8s.io/kubernetes/pkg/apiserver" "k8s.io/kubernetes/pkg/auth/authenticator" "k8s.io/kubernetes/pkg/auth/authorizer" @@ -620,7 +619,7 @@ func (m *Master) init(c *Config) { m.InsecureHandler = handler - attributeGetter := apiserver.NewRequestAttributeGetter(m.requestContextMapper, latest.RESTMapper, "api") + attributeGetter := apiserver.NewRequestAttributeGetter(m.requestContextMapper, latest.GroupOrDie("").RESTMapper, "api") handler = apiserver.WithAuthorizationCheck(handler, attributeGetter, m.authorizer) // Install Authenticator @@ -750,12 +749,12 @@ func (m *Master) defaultAPIGroupVersion() *apiserver.APIGroupVersion { return &apiserver.APIGroupVersion{ Root: m.apiPrefix, - Mapper: latest.RESTMapper, + Mapper: latest.GroupOrDie("").RESTMapper, Creater: api.Scheme, Convertor: api.Scheme, Typer: api.Scheme, - Linker: latest.SelfLinker, + Linker: latest.GroupOrDie("").SelfLinker, Admit: m.admissionControl, Context: m.requestContextMapper, @@ -810,9 +809,9 @@ func (m *Master) thirdpartyapi(group, kind, version string) *apiserver.APIGroupV Convertor: api.Scheme, Typer: api.Scheme, - Mapper: thirdpartyresourcedata.NewMapper(explatest.RESTMapper, kind, version), - Codec: explatest.Codec, - Linker: explatest.SelfLinker, + Mapper: thirdpartyresourcedata.NewMapper(latest.GroupOrDie("experimental").RESTMapper, kind, version), + Codec: latest.GroupOrDie("experimental").Codec, + Linker: latest.GroupOrDie("experimental").SelfLinker, Storage: storage, Version: version, @@ -850,11 +849,11 @@ func (m *Master) experimental(c *Config) *apiserver.APIGroupVersion { Convertor: api.Scheme, Typer: api.Scheme, - Mapper: explatest.RESTMapper, - Codec: explatest.Codec, - Linker: explatest.SelfLinker, + Mapper: latest.GroupOrDie("experimental").RESTMapper, + Codec: latest.GroupOrDie("experimental").Codec, + Linker: latest.GroupOrDie("experimental").SelfLinker, Storage: storage, - Version: explatest.Version, + Version: latest.GroupOrDie("experimental").Version, Admit: m.admissionControl, Context: m.requestContextMapper, diff --git a/pkg/master/master_test.go b/pkg/master/master_test.go index b8a0cc78bf7..1099896d482 100644 --- a/pkg/master/master_test.go +++ b/pkg/master/master_test.go @@ -58,7 +58,7 @@ func setUp(t *testing.T) (Master, Config, *assert.Assertions) { config := Config{} fakeClient := tools.NewFakeEtcdClient(t) fakeClient.Machines = []string{"http://machine1:4001", "http://machine2", "http://machine3:4003"} - config.DatabaseStorage = etcdstorage.NewEtcdStorage(fakeClient, latest.Codec, etcdtest.PathPrefix()) + config.DatabaseStorage = etcdstorage.NewEtcdStorage(fakeClient, latest.GroupOrDie("").Codec, etcdtest.PathPrefix()) config.ExpDatabaseStorage = etcdstorage.NewEtcdStorage(fakeClient, explatest.Codec, etcdtest.PathPrefix()) master.nodeRegistry = registrytest.NewNodeRegistry([]string{"node1", "node2"}, api.NodeResources{}) @@ -506,7 +506,7 @@ func encodeToThirdParty(name string, obj interface{}) ([]byte, error) { ObjectMeta: api.ObjectMeta{Name: name}, Data: serial, } - return latest.Codec.Encode(&thirdPartyData) + return latest.GroupOrDie("").Codec.Encode(&thirdPartyData) } func storeToEtcd(fakeClient *tools.FakeEtcdClient, path, name string, obj interface{}) error { diff --git a/pkg/registry/thirdpartyresourcedata/codec.go b/pkg/registry/thirdpartyresourcedata/codec.go index 18c668cde0d..f61165b7c50 100644 --- a/pkg/registry/thirdpartyresourcedata/codec.go +++ b/pkg/registry/thirdpartyresourcedata/codec.go @@ -23,6 +23,7 @@ import ( "strings" "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/latest" "k8s.io/kubernetes/pkg/api/meta" "k8s.io/kubernetes/pkg/apis/experimental" "k8s.io/kubernetes/pkg/apis/experimental/latest" @@ -49,7 +50,7 @@ func (t *thirdPartyResourceDataMapper) RESTMapping(kind string, versions ...stri if kind != "ThirdPartyResourceData" { return nil, fmt.Errorf("unknown kind %s expected %s", kind, t.kind) } - mapping, err := t.mapper.RESTMapping("ThirdPartyResourceData", latest.Version) + mapping, err := t.mapper.RESTMapping("ThirdPartyResourceData", latest.GroupOrDie("experimental").Version) if err != nil { return nil, err } @@ -263,6 +264,6 @@ func (t *thirdPartyResourceDataCreator) New(version, kind string) (out runtime.O case "ThirdPartyResourceDataList": return &experimental.ThirdPartyResourceDataList{}, nil default: - return t.delegate.New(latest.Version, kind) + return t.delegate.New(latest.GroupOrDie("experimental").Version, kind) } } diff --git a/pkg/storage/etcd/etcd_watcher_test.go b/pkg/storage/etcd/etcd_watcher_test.go index 43e630df18b..cec90fdbf25 100644 --- a/pkg/storage/etcd/etcd_watcher_test.go +++ b/pkg/storage/etcd/etcd_watcher_test.go @@ -46,7 +46,7 @@ func (f *fakeEtcdCache) addToCache(index uint64, obj runtime.Object) { var _ etcdCache = &fakeEtcdCache{} func TestWatchInterpretations(t *testing.T) { - codec := latest.Codec + codec := latest.GroupOrDie("").Codec // Declare some pods to make the test cases compact. podFoo := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}} podBar := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "bar"}} @@ -215,7 +215,7 @@ func TestWatchInterpretation_ResponseBadData(t *testing.T) { } func TestWatchEtcdError(t *testing.T) { - codec := latest.Codec + codec := latest.GroupOrDie("").Codec fakeClient := tools.NewFakeEtcdClient(t) fakeClient.ExpectNotFoundGet("/some/key") fakeClient.WatchImmediateError = fmt.Errorf("immediate error") @@ -244,7 +244,7 @@ func TestWatchEtcdError(t *testing.T) { } func TestWatch(t *testing.T) { - codec := latest.Codec + codec := latest.GroupOrDie("").Codec fakeClient := tools.NewFakeEtcdClient(t) key := "/some/key" prefixedKey := etcdtest.AddPrefix(key) @@ -315,7 +315,7 @@ func makeSubsets(ip string, port int) []api.EndpointSubset { } func TestWatchEtcdState(t *testing.T) { - codec := latest.Codec + codec := latest.GroupOrDie("").Codec baseKey := "/somekey/foo" prefixedKey := etcdtest.AddPrefix(baseKey) type T struct { @@ -453,7 +453,7 @@ func TestWatchEtcdState(t *testing.T) { } func TestWatchFromZeroIndex(t *testing.T) { - codec := latest.Codec + codec := latest.GroupOrDie("").Codec pod := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}} testCases := map[string]struct { @@ -531,7 +531,7 @@ func TestWatchFromZeroIndex(t *testing.T) { } func TestWatchListFromZeroIndex(t *testing.T) { - codec := latest.Codec + codec := latest.GroupOrDie("").Codec pod := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}} key := "/some/key" prefixedKey := etcdtest.AddPrefix(key) @@ -593,7 +593,7 @@ func TestWatchListFromZeroIndex(t *testing.T) { } func TestWatchListIgnoresRootKey(t *testing.T) { - codec := latest.Codec + codec := latest.GroupOrDie("").Codec pod := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}} key := "/some/key" prefixedKey := etcdtest.AddPrefix(key) diff --git a/pkg/volume/aws_ebs/aws_ebs_test.go b/pkg/volume/aws_ebs/aws_ebs_test.go index 517934b8fc4..057d0d2efc7 100644 --- a/pkg/volume/aws_ebs/aws_ebs_test.go +++ b/pkg/volume/aws_ebs/aws_ebs_test.go @@ -192,7 +192,7 @@ func TestPersistentClaimReadOnlyFlag(t *testing.T) { o.Add(pv) o.Add(claim) client := &testclient.Fake{} - client.AddReactor("*", "*", testclient.ObjectReaction(o, latest.RESTMapper)) + client.AddReactor("*", "*", testclient.ObjectReaction(o, latest.GroupOrDie("").RESTMapper)) plugMgr := volume.VolumePluginMgr{} plugMgr.InitPlugins(ProbeVolumePlugins(), volume.NewFakeVolumeHost("/tmp/fake", client, nil)) diff --git a/pkg/volume/gce_pd/gce_pd_test.go b/pkg/volume/gce_pd/gce_pd_test.go index 2ced180a36d..20e2cf8f2d8 100644 --- a/pkg/volume/gce_pd/gce_pd_test.go +++ b/pkg/volume/gce_pd/gce_pd_test.go @@ -206,7 +206,7 @@ func TestPersistentClaimReadOnlyFlag(t *testing.T) { o.Add(pv) o.Add(claim) client := &testclient.Fake{} - client.AddReactor("*", "*", testclient.ObjectReaction(o, latest.RESTMapper)) + client.AddReactor("*", "*", testclient.ObjectReaction(o, latest.GroupOrDie("").RESTMapper)) plugMgr := volume.VolumePluginMgr{} plugMgr.InitPlugins(ProbeVolumePlugins(), volume.NewFakeVolumeHost("/tmp/fake", client, nil)) diff --git a/pkg/volume/glusterfs/glusterfs_test.go b/pkg/volume/glusterfs/glusterfs_test.go index 6b42c839f4e..40d73fdc823 100644 --- a/pkg/volume/glusterfs/glusterfs_test.go +++ b/pkg/volume/glusterfs/glusterfs_test.go @@ -201,7 +201,7 @@ func TestPersistentClaimReadOnlyFlag(t *testing.T) { o.Add(claim) o.Add(ep) client := &testclient.Fake{} - client.AddReactor("*", "*", testclient.ObjectReaction(o, latest.RESTMapper)) + client.AddReactor("*", "*", testclient.ObjectReaction(o, latest.GroupOrDie("").RESTMapper)) plugMgr := volume.VolumePluginMgr{} plugMgr.InitPlugins(ProbeVolumePlugins(), volume.NewFakeVolumeHost("/tmp/fake", client, nil)) diff --git a/pkg/volume/host_path/host_path_test.go b/pkg/volume/host_path/host_path_test.go index 9e7fe52c642..97f50f30670 100644 --- a/pkg/volume/host_path/host_path_test.go +++ b/pkg/volume/host_path/host_path_test.go @@ -158,7 +158,7 @@ func TestPersistentClaimReadOnlyFlag(t *testing.T) { o.Add(pv) o.Add(claim) client := &testclient.Fake{} - client.AddReactor("*", "*", testclient.ObjectReaction(o, latest.RESTMapper)) + client.AddReactor("*", "*", testclient.ObjectReaction(o, latest.GroupOrDie("").RESTMapper)) plugMgr := volume.VolumePluginMgr{} plugMgr.InitPlugins(ProbeVolumePlugins(volume.VolumeConfig{}), volume.NewFakeVolumeHost("/tmp/fake", client, nil)) diff --git a/pkg/volume/iscsi/iscsi_test.go b/pkg/volume/iscsi/iscsi_test.go index 053279e9d88..4ba12ae435c 100644 --- a/pkg/volume/iscsi/iscsi_test.go +++ b/pkg/volume/iscsi/iscsi_test.go @@ -235,7 +235,7 @@ func TestPersistentClaimReadOnlyFlag(t *testing.T) { o.Add(pv) o.Add(claim) client := &testclient.Fake{} - client.AddReactor("*", "*", testclient.ObjectReaction(o, latest.RESTMapper)) + client.AddReactor("*", "*", testclient.ObjectReaction(o, latest.GroupOrDie("").RESTMapper)) plugMgr := volume.VolumePluginMgr{} plugMgr.InitPlugins(ProbeVolumePlugins(), volume.NewFakeVolumeHost("/tmp/fake", client, nil)) diff --git a/pkg/volume/nfs/nfs_test.go b/pkg/volume/nfs/nfs_test.go index 588aa765aff..66bd67f5ca6 100644 --- a/pkg/volume/nfs/nfs_test.go +++ b/pkg/volume/nfs/nfs_test.go @@ -236,7 +236,7 @@ func TestPersistentClaimReadOnlyFlag(t *testing.T) { o.Add(pv) o.Add(claim) client := &testclient.Fake{} - client.AddReactor("*", "*", testclient.ObjectReaction(o, latest.RESTMapper)) + client.AddReactor("*", "*", testclient.ObjectReaction(o, latest.GroupOrDie("").RESTMapper)) plugMgr := volume.VolumePluginMgr{} plugMgr.InitPlugins(ProbeVolumePlugins(volume.VolumeConfig{}), volume.NewFakeVolumeHost("/tmp/fake", client, nil)) diff --git a/pkg/volume/rbd/rbd_test.go b/pkg/volume/rbd/rbd_test.go index 10060ff1958..0bac7fa315a 100644 --- a/pkg/volume/rbd/rbd_test.go +++ b/pkg/volume/rbd/rbd_test.go @@ -192,7 +192,7 @@ func TestPersistentClaimReadOnlyFlag(t *testing.T) { o.Add(pv) o.Add(claim) client := &testclient.Fake{} - client.AddReactor("*", "*", testclient.ObjectReaction(o, latest.RESTMapper)) + client.AddReactor("*", "*", testclient.ObjectReaction(o, latest.GroupOrDie("").RESTMapper)) plugMgr := volume.VolumePluginMgr{} plugMgr.InitPlugins(ProbeVolumePlugins(), volume.NewFakeVolumeHost("/tmp/fake", client, nil)) diff --git a/plugin/pkg/scheduler/factory/factory_test.go b/plugin/pkg/scheduler/factory/factory_test.go index 1f27a07c302..7dac3e0fe38 100644 --- a/plugin/pkg/scheduler/factory/factory_test.go +++ b/plugin/pkg/scheduler/factory/factory_test.go @@ -143,7 +143,7 @@ func TestDefaultErrorFunc(t *testing.T) { } handler := util.FakeHandler{ StatusCode: 200, - ResponseBody: runtime.EncodeOrDie(latest.Codec, testPod), + ResponseBody: runtime.EncodeOrDie(latest.GroupOrDie("").Codec, testPod), T: t, } mux := http.NewServeMux() diff --git a/test/e2e/dns.go b/test/e2e/dns.go index 33fb9b55d18..2335e247575 100644 --- a/test/e2e/dns.go +++ b/test/e2e/dns.go @@ -42,7 +42,7 @@ func createDNSPod(namespace, wheezyProbeCmd, jessieProbeCmd string) *api.Pod { pod := &api.Pod{ TypeMeta: api.TypeMeta{ Kind: "Pod", - APIVersion: latest.Version, + APIVersion: latest.GroupOrDie("").Version, }, ObjectMeta: api.ObjectMeta{ Name: "dns-test-" + string(util.NewUUID()), diff --git a/test/e2e/empty_dir.go b/test/e2e/empty_dir.go index a8724cab931..e3d5517f70e 100644 --- a/test/e2e/empty_dir.go +++ b/test/e2e/empty_dir.go @@ -207,7 +207,7 @@ func testPodWithVolume(image, path string, source *api.EmptyDirVolumeSource) *ap return &api.Pod{ TypeMeta: api.TypeMeta{ Kind: "Pod", - APIVersion: latest.Version, + APIVersion: latest.GroupOrDie("").Version, }, ObjectMeta: api.ObjectMeta{ Name: podName, diff --git a/test/e2e/host_path.go b/test/e2e/host_path.go index 6e55c62bd5a..a596631aecf 100644 --- a/test/e2e/host_path.go +++ b/test/e2e/host_path.go @@ -123,7 +123,7 @@ func testPodWithHostVol(path string, source *api.HostPathVolumeSource) *api.Pod return &api.Pod{ TypeMeta: api.TypeMeta{ Kind: "Pod", - APIVersion: latest.Version, + APIVersion: latest.GroupOrDie("").Version, }, ObjectMeta: api.ObjectMeta{ Name: podName, diff --git a/test/e2e/pd.go b/test/e2e/pd.go index f7ec6def9a5..9ce9ea5306a 100644 --- a/test/e2e/pd.go +++ b/test/e2e/pd.go @@ -342,7 +342,7 @@ func testPDPod(diskName, targetHost string, readOnly bool, numContainers int) *a pod := &api.Pod{ TypeMeta: api.TypeMeta{ Kind: "Pod", - APIVersion: latest.Version, + APIVersion: latest.GroupOrDie("").Version, }, ObjectMeta: api.ObjectMeta{ Name: "pd-test-" + string(util.NewUUID()), diff --git a/test/e2e/resize_nodes.go b/test/e2e/resize_nodes.go index c3674726a01..74473a7f0ec 100644 --- a/test/e2e/resize_nodes.go +++ b/test/e2e/resize_nodes.go @@ -185,7 +185,7 @@ func rcByNameContainer(name string, replicas int, image string, labels map[strin return &api.ReplicationController{ TypeMeta: api.TypeMeta{ Kind: "ReplicationController", - APIVersion: latest.Version, + APIVersion: latest.GroupOrDie("").Version, }, ObjectMeta: api.ObjectMeta{ Name: name, diff --git a/test/integration/framework/etcd_utils.go b/test/integration/framework/etcd_utils.go index e4f09ecad1f..3cf7b9b47db 100644 --- a/test/integration/framework/etcd_utils.go +++ b/test/integration/framework/etcd_utils.go @@ -41,7 +41,7 @@ func NewEtcdClient() *etcd.Client { } func NewEtcdStorage() (storage.Interface, error) { - return master.NewEtcdStorage(NewEtcdClient(), latest.InterfacesFor, testapi.Default.Version(), etcdtest.PathPrefix()) + return master.NewEtcdStorage(NewEtcdClient(), latest.GroupOrDie("").InterfacesFor, testapi.Default.Version(), etcdtest.PathPrefix()) } func RequireEtcd() { diff --git a/test/integration/framework/master_utils.go b/test/integration/framework/master_utils.go index 60683243b7c..3008efaa261 100644 --- a/test/integration/framework/master_utils.go +++ b/test/integration/framework/master_utils.go @@ -131,11 +131,11 @@ func startMasterOrDie(masterConfig *master.Config) (*master.Master, *httptest.Se var err error if masterConfig == nil { etcdClient := NewEtcdClient() - etcdStorage, err = master.NewEtcdStorage(etcdClient, latest.InterfacesFor, latest.Version, etcdtest.PathPrefix()) + etcdStorage, err = master.NewEtcdStorage(etcdClient, latest.GroupOrDie("").InterfacesFor, latest.GroupOrDie("").Version, etcdtest.PathPrefix()) if err != nil { glog.Fatalf("Failed to create etcd storage for master %v", err) } - expEtcdStorage, err := master.NewEtcdStorage(etcdClient, explatest.InterfacesFor, explatest.Version, etcdtest.PathPrefix()) + expEtcdStorage, err := master.NewEtcdStorage(etcdClient, latest.GroupOrDie("experimental").InterfacesFor, latest.GroupOrDie("experimental").Version, etcdtest.PathPrefix()) if err != nil { glog.Fatalf("Failed to create etcd storage for master %v", err) } @@ -269,11 +269,11 @@ func StartPods(numPods int, host string, restClient *client.Client) error { // TODO: Merge this into startMasterOrDie. func RunAMaster(t *testing.T) (*master.Master, *httptest.Server) { etcdClient := NewEtcdClient() - etcdStorage, err := master.NewEtcdStorage(etcdClient, latest.InterfacesFor, testapi.Default.Version(), etcdtest.PathPrefix()) + etcdStorage, err := master.NewEtcdStorage(etcdClient, latest.GroupOrDie("").InterfacesFor, testapi.Default.Version(), etcdtest.PathPrefix()) if err != nil { t.Fatalf("unexpected error: %v", err) } - expEtcdStorage, err := master.NewEtcdStorage(etcdClient, explatest.InterfacesFor, explatest.Version, etcdtest.PathPrefix()) + expEtcdStorage, err := master.NewEtcdStorage(etcdClient, latest.GroupOrDie("experimental").InterfacesFor, latest.GroupOrDie("experimental").Version, etcdtest.PathPrefix()) if err != nil { t.Fatalf("unexpected error: %v", err) } diff --git a/test/integration/service_account_test.go b/test/integration/service_account_test.go index fe3ae4fd2db..05886332a8d 100644 --- a/test/integration/service_account_test.go +++ b/test/integration/service_account_test.go @@ -341,7 +341,7 @@ func startServiceAccountTestServer(t *testing.T) (*client.Client, client.Config, deleteAllEtcdKeys() // Etcd - etcdStorage, err := master.NewEtcdStorage(newEtcdClient(), latest.InterfacesFor, testapi.Default.Version(), etcdtest.PathPrefix()) + etcdStorage, err := master.NewEtcdStorage(newEtcdClient(), latest.GroupOrDie("").InterfacesFor, testapi.Default.Version(), etcdtest.PathPrefix()) if err != nil { t.Fatalf("unexpected error: %v", err) } diff --git a/test/integration/utils.go b/test/integration/utils.go index fb8c4cac838..e2e86721171 100644 --- a/test/integration/utils.go +++ b/test/integration/utils.go @@ -66,7 +66,7 @@ func deleteAllEtcdKeys() { } func runAMaster(t *testing.T) (*master.Master, *httptest.Server) { - etcdStorage, err := master.NewEtcdStorage(newEtcdClient(), latest.InterfacesFor, testapi.Default.Version(), etcdtest.PathPrefix()) + etcdStorage, err := master.NewEtcdStorage(newEtcdClient(), latest.GroupOrDie("").InterfacesFor, testapi.Default.Version(), etcdtest.PathPrefix()) if err != nil { t.Fatalf("unexpected error: %v", err) }