diff --git a/cmd/integration/integration.go b/cmd/integration/integration.go index 1bf01c11157..1acd1a8cc8d 100644 --- a/cmd/integration/integration.go +++ b/cmd/integration/integration.go @@ -38,6 +38,7 @@ import ( "k8s.io/kubernetes/pkg/api" apierrors "k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/api/latest" + "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/apiserver" client "k8s.io/kubernetes/pkg/client/unversioned" "k8s.io/kubernetes/pkg/client/unversioned/record" @@ -69,8 +70,6 @@ import ( var ( fakeDocker1, fakeDocker2 dockertools.FakeDockerClient - // API version that should be used by the client to talk to the server. - apiVersion string // Limit the number of concurrent tests. maxConcurrency int ) @@ -93,7 +92,7 @@ func (h *delegateHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) { w.WriteHeader(http.StatusNotFound) } -func startComponents(firstManifestURL, secondManifestURL, apiVersion string) (string, string) { +func startComponents(firstManifestURL, secondManifestURL string) (string, string) { // Setup servers := []string{} glog.Infof("Creating etcd client pointing to %v", servers) @@ -126,13 +125,17 @@ func startComponents(firstManifestURL, secondManifestURL, apiVersion string) (st glog.Fatalf("Failed to connect to etcd") } - cl := client.NewOrDie(&client.Config{Host: apiServer.URL, Version: apiVersion}) + cl := client.NewOrDie(&client.Config{Host: apiServer.URL, Version: testapi.Default.Version()}) - etcdStorage, err := master.NewEtcdStorage(etcdClient, latest.InterfacesFor, latest.Version, etcdtest.PathPrefix()) + // TODO: caesarxuchao: hacky way to specify version of Experimental client. + // 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()) if err != nil { glog.Fatalf("Unable to get etcd storage: %v", err) } - expEtcdStorage, err := master.NewEtcdStorage(etcdClient, explatest.InterfacesFor, explatest.Version, etcdtest.PathPrefix()) + expEtcdStorage, err := master.NewEtcdStorage(etcdClient, explatest.InterfacesFor, testapi.Experimental.Version(), etcdtest.PathPrefix()) if err != nil { glog.Fatalf("Unable to get etcd storage for experimental: %v", err) } @@ -891,7 +894,6 @@ func runSchedulerNoPhantomPodsTest(client *client.Client) { type testFunc func(*client.Client) func addFlags(fs *pflag.FlagSet) { - fs.StringVar(&apiVersion, "api-version", latest.Version, "API version that should be used by the client for communicating with the server") fs.IntVar( &maxConcurrency, "max-concurrency", -1, "Maximum number of tests to be run simultaneously. Unlimited if set to negative.") } @@ -911,18 +913,21 @@ func main() { glog.Fatalf("This test has timed out.") }() - glog.Infof("Running tests for APIVersion: %s", apiVersion) + glog.Infof("Running tests for APIVersion: %s", os.Getenv("KUBE_TEST_API")) firstManifestURL := ServeCachedManifestFile(testPodSpecFile) secondManifestURL := ServeCachedManifestFile(testPodSpecFile) - apiServerURL, _ := startComponents(firstManifestURL, secondManifestURL, apiVersion) + apiServerURL, _ := startComponents(firstManifestURL, secondManifestURL) // Ok. we're good to go. glog.Infof("API Server started on %s", apiServerURL) // Wait for the synchronization threads to come up. time.Sleep(time.Second * 10) - kubeClient := client.NewOrDie(&client.Config{Host: apiServerURL, Version: apiVersion}) + kubeClient := client.NewOrDie(&client.Config{Host: apiServerURL, Version: testapi.Default.Version()}) + // TODO: caesarxuchao: hacky way to specify version of Experimental client. + // We will fix this by supporting multiple group versions in Config + kubeClient.ExperimentalClient = client.NewExperimentalOrDie(&client.Config{Host: apiServerURL, Version: testapi.Experimental.Version()}) // Run tests in parallel testFuncs := []testFunc{ diff --git a/contrib/mesos/pkg/executor/executor_test.go b/contrib/mesos/pkg/executor/executor_test.go index 2295244ecac..2ea53cbad30 100644 --- a/contrib/mesos/pkg/executor/executor_test.go +++ b/contrib/mesos/pkg/executor/executor_test.go @@ -318,7 +318,7 @@ func TestExecutorLaunchAndKillTask(t *testing.T) { Updates: updates, APIClient: client.NewOrDie(&client.Config{ Host: testApiServer.server.URL, - Version: testapi.Version(), + Version: testapi.Default.Version(), }), Kubelet: &fakeKubelet{ Kubelet: &kubelet.Kubelet{}, @@ -355,7 +355,7 @@ func TestExecutorLaunchAndKillTask(t *testing.T) { assert.Equal(t, nil, err, "must be able to create a task from a pod") taskInfo := podTask.BuildTaskInfo() - data, err := testapi.Codec().Encode(pod) + data, err := testapi.Default.Codec().Encode(pod) assert.Equal(t, nil, err, "must be able to encode a pod's spec data") taskInfo.Data = data var statusUpdateCalls sync.WaitGroup @@ -484,7 +484,7 @@ func TestExecutorStaticPods(t *testing.T) { Updates: make(chan interface{}, 1), // allow kube-executor source to proceed past init APIClient: client.NewOrDie(&client.Config{ Host: testApiServer.server.URL, - Version: testapi.Version(), + Version: testapi.Default.Version(), }), Kubelet: &kubelet.Kubelet{}, PodStatusFunc: func(kl KubeletInterface, pod *api.Pod) (*api.PodStatus, error) { @@ -565,7 +565,7 @@ func TestExecutorFrameworkMessage(t *testing.T) { Updates: make(chan interface{}, 1024), APIClient: client.NewOrDie(&client.Config{ Host: testApiServer.server.URL, - Version: testapi.Version(), + Version: testapi.Default.Version(), }), Kubelet: &fakeKubelet{ Kubelet: &kubelet.Kubelet{}, @@ -602,7 +602,7 @@ func TestExecutorFrameworkMessage(t *testing.T) { *pod, &mesosproto.ExecutorInfo{}) taskInfo := podTask.BuildTaskInfo() - data, _ := testapi.Codec().Encode(pod) + data, _ := testapi.Default.Codec().Encode(pod) taskInfo.Data = data mockDriver.On( @@ -660,11 +660,11 @@ func TestExecutorFrameworkMessage(t *testing.T) { func NewTestPod(i int) *api.Pod { name := fmt.Sprintf("pod%d", i) return &api.Pod{ - TypeMeta: api.TypeMeta{APIVersion: testapi.Version()}, + TypeMeta: api.TypeMeta{APIVersion: testapi.Default.Version()}, ObjectMeta: api.ObjectMeta{ Name: name, Namespace: api.NamespaceDefault, - SelfLink: testapi.SelfLink("pods", string(i)), + SelfLink: testapi.Default.SelfLink("pods", string(i)), }, Spec: api.PodSpec{ Containers: []api.Container{ @@ -710,7 +710,7 @@ func NewTestServer(t *testing.T, namespace string, pods *api.PodList) *TestServe } mux := http.NewServeMux() - mux.HandleFunc(testapi.ResourcePath("bindings", namespace, ""), func(w http.ResponseWriter, r *http.Request) { + mux.HandleFunc(testapi.Default.ResourcePath("bindings", namespace, ""), func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) }) diff --git a/contrib/mesos/pkg/scheduler/plugin_test.go b/contrib/mesos/pkg/scheduler/plugin_test.go index 06da09d5c55..fded56da701 100644 --- a/contrib/mesos/pkg/scheduler/plugin_test.go +++ b/contrib/mesos/pkg/scheduler/plugin_test.go @@ -61,13 +61,13 @@ func NewTestServer(t *testing.T, namespace string, mockPodListWatch *MockPodsLis } mux := http.NewServeMux() - mux.HandleFunc(testapi.ResourcePath("pods", namespace, ""), func(w http.ResponseWriter, r *http.Request) { + mux.HandleFunc(testapi.Default.ResourcePath("pods", namespace, ""), func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) pods := mockPodListWatch.Pods() - w.Write([]byte(runtime.EncodeOrDie(testapi.Codec(), &pods))) + w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), &pods))) }) - podsPrefix := testapi.ResourcePath("pods", namespace, "") + "/" + podsPrefix := testapi.Default.ResourcePath("pods", namespace, "") + "/" mux.HandleFunc(podsPrefix, func(w http.ResponseWriter, r *http.Request) { name := r.URL.Path[len(podsPrefix):] @@ -79,13 +79,13 @@ func NewTestServer(t *testing.T, namespace string, mockPodListWatch *MockPodsLis p := mockPodListWatch.GetPod(name) if p != nil { w.WriteHeader(http.StatusOK) - w.Write([]byte(runtime.EncodeOrDie(testapi.Codec(), p))) + w.Write([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), p))) return } w.WriteHeader(http.StatusNotFound) }) - mux.HandleFunc(testapi.ResourcePath("events", namespace, ""), func(w http.ResponseWriter, r *http.Request) { + mux.HandleFunc(testapi.Default.ResourcePath("events", namespace, ""), func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) }) @@ -196,7 +196,7 @@ func NewTestPod() (*api.Pod, int) { currentPodNum = currentPodNum + 1 name := fmt.Sprintf("pod%d", currentPodNum) return &api.Pod{ - TypeMeta: api.TypeMeta{APIVersion: testapi.Version()}, + TypeMeta: api.TypeMeta{APIVersion: testapi.Default.Version()}, ObjectMeta: api.ObjectMeta{ Name: name, Namespace: api.NamespaceDefault, @@ -398,7 +398,7 @@ func TestPlugin_LifeCycle(t *testing.T) { podtask.NewDefaultProcurement(mresource.DefaultDefaultContainerCPULimit, mresource.DefaultDefaultContainerMemLimit)) testScheduler := New(Config{ Executor: executor, - Client: client.NewOrDie(&client.Config{Host: testApiServer.server.URL, Version: testapi.Version()}), + Client: client.NewOrDie(&client.Config{Host: testApiServer.server.URL, Version: testapi.Default.Version()}), Scheduler: NewFCFSPodScheduler(as), Schedcfg: *schedcfg.CreateDefaultConfig(), }) diff --git a/hack/test-go.sh b/hack/test-go.sh index 91a5553d6d2..59e8881c0c1 100755 --- a/hack/test-go.sh +++ b/hack/test-go.sh @@ -52,8 +52,13 @@ KUBE_COVERPROCS=${KUBE_COVERPROCS:-4} KUBE_RACE=${KUBE_RACE:-} # use KUBE_RACE="-race" to enable race testing # Set to the goveralls binary path to report coverage results to Coveralls.io. KUBE_GOVERALLS_BIN=${KUBE_GOVERALLS_BIN:-} -# Comma separated list of API Versions that should be tested. -KUBE_TEST_API_VERSIONS=${KUBE_TEST_API_VERSIONS:-"v1"} +# Lists of API Versions of each groups that should be tested, groups are +# separated by comma, lists are separated by semicolon. e.g., +# "v1,compute/v1alpha1,experimental/v1alpha2;v1,compute/v2,experimental/v1alpha3" +# TODO: It's going to be: +# KUBE_TEST_API_VERSIONS=${KUBE_TEST_API_VERSIONS:-"v1,experimental/v1alpha1"} +KUBE_TEST_API_VERSIONS=${KUBE_TEST_API_VERSIONS:-"v1,experimental/v1"} +# once we have multiple group supports # Run tests with the standard (registry) and a custom etcd prefix # (kubernetes.io/registry). KUBE_TEST_ETCD_PREFIXES=${KUBE_TEST_ETCD_PREFIXES:-"registry,kubernetes.io/registry"} @@ -131,7 +136,8 @@ junitFilenamePrefix() { return fi mkdir -p "${KUBE_JUNIT_REPORT_DIR}" - echo "${KUBE_JUNIT_REPORT_DIR}/junit_${KUBE_API_VERSION}_$(kube::util::sortable_date)" + local KUBE_TEST_API_NO_SLASH=echo "${KUBE_TEST_API//\//-}" + echo "${KUBE_JUNIT_REPORT_DIR}/junit_${KUBE_TEST_API_NO_SLASH}_$(kube::util::sortable_date)" } produceJUnitXMLReport() { @@ -205,7 +211,7 @@ runTests() { fi # Create coverage report directories. - cover_report_dir="/tmp/k8s_coverage/${KUBE_API_VERSION}/$(kube::util::sortable_date)" + cover_report_dir="/tmp/k8s_coverage/${KUBE_TEST_API}/$(kube::util::sortable_date)" cover_profile="coverage.out" # Name for each individual coverage profile kube::log::status "Saving coverage output in '${cover_report_dir}'" mkdir -p "${@+${@/#/${cover_report_dir}/}}" @@ -266,7 +272,7 @@ reportCoverageToCoveralls() { } # Convert the CSVs to arrays. -IFS=',' read -a apiVersions <<< "${KUBE_TEST_API_VERSIONS}" +IFS=';' read -a apiVersions <<< "${KUBE_TEST_API_VERSIONS}" IFS=',' read -a etcdPrefixes <<< "${KUBE_TEST_ETCD_PREFIXES}" apiVersionsCount=${#apiVersions[@]} etcdPrefixesCount=${#etcdPrefixes[@]} @@ -274,7 +280,10 @@ for (( i=0, j=0; ; )); do apiVersion=${apiVersions[i]} etcdPrefix=${etcdPrefixes[j]} echo "Running tests for APIVersion: $apiVersion with etcdPrefix: $etcdPrefix" - KUBE_API_VERSION="${apiVersion}" KUBE_API_VERSIONS="v1" ETCD_PREFIX=${etcdPrefix} runTests "$@" + # KUBE_TEST_API sets the version of each group to be tested. KUBE_API_VERSIONS + # register the groups/versions as supported by k8s. So KUBE_API_VERSIONS + # needs to be the superset of KUBE_TEST_API. + KUBE_TEST_API="${apiVersion}" KUBE_API_VERSIONS="v1" ETCD_PREFIX=${etcdPrefix} runTests "$@" i=${i}+1 j=${j}+1 if [[ i -eq ${apiVersionsCount} ]] && [[ j -eq ${etcdPrefixesCount} ]]; then diff --git a/hack/test-integration.sh b/hack/test-integration.sh index d299037571e..dcd9c9e87d4 100755 --- a/hack/test-integration.sh +++ b/hack/test-integration.sh @@ -24,8 +24,12 @@ set -o pipefail KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. source "${KUBE_ROOT}/hack/lib/init.sh" -# Comma separated list of API Versions that should be tested. -KUBE_TEST_API_VERSIONS=${KUBE_TEST_API_VERSIONS:-"v1"} +# Lists of API Versions of each groups that should be tested, groups are +# separated by comma, lists are separated by semicolon. e.g., +# "v1,compute/v1alpha1,experimental/v1alpha2;v1,compute/v2,experimental/v1alpha3" +# TODO: It's going to be: +# KUBE_TEST_API_VERSIONS=${KUBE_TEST_API_VERSIONS:-"v1,experimental/v1alpha1"} +KUBE_TEST_API_VERSIONS=${KUBE_TEST_API_VERSIONS:-"v1,experimental/v1"} KUBE_INTEGRATION_TEST_MAX_CONCURRENCY=${KUBE_INTEGRATION_TEST_MAX_CONCURRENCY:-"-1"} LOG_LEVEL=${LOG_LEVEL:-2} @@ -48,8 +52,8 @@ runTests() { kube::log::status "Running integration test scenario" - KUBE_API_VERSIONS="v1" "${KUBE_OUTPUT_HOSTBIN}/integration" --v=${LOG_LEVEL} --api-version="$1" \ - --max-concurrency="${KUBE_INTEGRATION_TEST_MAX_CONCURRENCY}" + KUBE_API_VERSIONS="v1" KUBE_TEST_API_VERSIONS="$1" "${KUBE_OUTPUT_HOSTBIN}/integration" --v=${LOG_LEVEL} \ + --max-concurrency="${KUBE_INTEGRATION_TEST_MAX_CONCURRENCY}" cleanup } @@ -60,7 +64,7 @@ KUBE_API_VERSIONS="v1" "${KUBE_ROOT}/hack/build-go.sh" "$@" cmd/integration trap cleanup EXIT # Convert the CSV to an array of API versions to test -IFS=',' read -a apiVersions <<< "${KUBE_TEST_API_VERSIONS}" +IFS=';' read -a apiVersions <<< "${KUBE_TEST_API_VERSIONS}" for apiVersion in "${apiVersions[@]}"; do runTests "${apiVersion}" done diff --git a/pkg/api/conversion_test.go b/pkg/api/conversion_test.go index 0ad68dfdd11..e3449def625 100644 --- a/pkg/api/conversion_test.go +++ b/pkg/api/conversion_test.go @@ -37,7 +37,7 @@ func BenchmarkPodConversion(b *testing.B) { scheme := api.Scheme.Raw() var result *api.Pod for i := 0; i < b.N; i++ { - versionedObj, err := scheme.ConvertToVersion(&pod, testapi.Version()) + versionedObj, err := scheme.ConvertToVersion(&pod, testapi.Default.Version()) if err != nil { b.Fatalf("Conversion error: %v", err) } @@ -65,7 +65,7 @@ func BenchmarkNodeConversion(b *testing.B) { scheme := api.Scheme.Raw() var result *api.Node for i := 0; i < b.N; i++ { - versionedObj, err := scheme.ConvertToVersion(&node, testapi.Version()) + versionedObj, err := scheme.ConvertToVersion(&node, testapi.Default.Version()) if err != nil { b.Fatalf("Conversion error: %v", err) } @@ -93,7 +93,7 @@ func BenchmarkReplicationControllerConversion(b *testing.B) { scheme := api.Scheme.Raw() var result *api.ReplicationController for i := 0; i < b.N; i++ { - versionedObj, err := scheme.ConvertToVersion(&replicationController, testapi.Version()) + versionedObj, err := scheme.ConvertToVersion(&replicationController, testapi.Default.Version()) if err != nil { b.Fatalf("Conversion error: %v", err) } diff --git a/pkg/api/copy_test.go b/pkg/api/copy_test.go index 79796ed2c54..c3c55283a7f 100644 --- a/pkg/api/copy_test.go +++ b/pkg/api/copy_test.go @@ -28,7 +28,7 @@ import ( func TestDeepCopyApiObjects(t *testing.T) { for i := 0; i < *fuzzIters; i++ { - for _, version := range []string{"", testapi.Version()} { + for _, version := range []string{"", testapi.Default.Version()} { f := apitesting.FuzzerFor(t, version, rand.NewSource(rand.Int63())) for kind := range api.Scheme.KnownTypes(version) { item, err := api.Scheme.New(version, kind) diff --git a/pkg/api/serialization_test.go b/pkg/api/serialization_test.go index 6eed0666be9..45a57aee5b1 100644 --- a/pkg/api/serialization_test.go +++ b/pkg/api/serialization_test.go @@ -90,10 +90,10 @@ func roundTripSame(t *testing.T, item runtime.Object, except ...string) { set := util.NewStringSet(except...) seed := rand.Int63() fuzzInternalObject(t, "", item, seed) - version := testapi.Version() + version := testapi.Default.Version() if !set.Has(version) { fuzzInternalObject(t, version, item, seed) - roundTrip(t, testapi.Codec(), item) + roundTrip(t, testapi.Default.Codec(), item) } } diff --git a/pkg/api/testapi/testapi.go b/pkg/api/testapi/testapi.go index bd294c00a18..3d58968ead5 100644 --- a/pkg/api/testapi/testapi.go +++ b/pkg/api/testapi/testapi.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Package testapi provides a helper for retrieving the KUBE_API_VERSION environment variable. +// Package testapi provides a helper for retrieving the KUBE_TEST_API environment variable. package testapi import ( @@ -24,63 +24,161 @@ import ( "k8s.io/kubernetes/pkg/api/latest" "k8s.io/kubernetes/pkg/api/meta" + apiutil "k8s.io/kubernetes/pkg/api/util" + explatest "k8s.io/kubernetes/pkg/expapi/latest" "k8s.io/kubernetes/pkg/runtime" ) -// Version returns the API version to test against, as set by the KUBE_API_VERSION env var. -func Version() string { - version := os.Getenv("KUBE_API_VERSION") - if version == "" { - version = latest.Version +var ( + Groups = make(map[string]TestGroup) + Default TestGroup + Experimental TestGroup +) + +type TestGroup struct { + // Name of the group + Group string + // Version of the group Group under test + VersionUnderTest string + // Group and Version. In most cases equals to Group + "/" + VersionUnverTest + GroupVersionUnderTest string +} + +func init() { + kubeTestAPI := os.Getenv("KUBE_TEST_API") + if kubeTestAPI != "" { + testGroupVersions := strings.Split(kubeTestAPI, ",") + for _, groupVersion := range testGroupVersions { + // TODO: caesarxuchao: the apiutil package is hacky, it will be replaced + // by a following PR. + Groups[apiutil.GetGroup(groupVersion)] = + TestGroup{apiutil.GetGroup(groupVersion), apiutil.GetVersion(groupVersion), groupVersion} + } } - return version + + // 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 + // have multiple group support + Groups[""] = TestGroup{"", latest.Version, latest.Version} + } + if _, ok := Groups["experimental"]; !ok { + Groups["experimental"] = TestGroup{"experimental", explatest.Version, explatest.Version} + } + + Default = Groups[""] + Experimental = Groups["experimental"] +} + +// Version returns the API version to test against, as set by the KUBE_TEST_API env var. +func (g TestGroup) Version() string { + return g.VersionUnderTest +} + +// GroupAndVersion returns the API version to test against for a group, as set +// by the KUBE_TEST_API env var. +// Return value is in the form of "group/version". +func (g TestGroup) GroupAndVersion() string { + return g.GroupVersionUnderTest } // Codec returns the codec for the API version to test against, as set by the -// KUBE_API_VERSION env var. -func Codec() runtime.Codec { - interfaces, err := latest.InterfacesFor(Version()) - if err != nil { - panic(err) +// KUBE_TEST_API env var. +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) + if err != nil { + panic(err) + } + return interfaces.Codec } - return interfaces.Codec + if g.Group == "experimental" { + interfaces, err := explatest.InterfacesFor(g.VersionUnderTest) + if err != nil { + panic(err) + } + return interfaces.Codec + } + panic(fmt.Errorf("cannot test group %s", g.Group)) } // Converter returns the api.Scheme for the API version to test against, as set by the -// KUBE_API_VERSION env var. -func Converter() runtime.ObjectConvertor { - interfaces, err := latest.InterfacesFor(Version()) - if err != nil { - panic(err) +// KUBE_TEST_API env var. +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) + if err != nil { + panic(err) + } + return interfaces.ObjectConvertor } - return interfaces.ObjectConvertor + if g.Group == "experimental" { + interfaces, err := explatest.InterfacesFor(g.VersionUnderTest) + if err != nil { + panic(err) + } + return interfaces.ObjectConvertor + } + panic(fmt.Errorf("cannot test group %s", g.Group)) + } // MetadataAccessor returns the MetadataAccessor for the API version to test against, -// as set by the KUBE_API_VERSION env var. -func MetadataAccessor() meta.MetadataAccessor { - interfaces, err := latest.InterfacesFor(Version()) - if err != nil { - panic(err) +// as set by the KUBE_TEST_API env var. +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) + if err != nil { + panic(err) + } + return interfaces.MetadataAccessor } - return interfaces.MetadataAccessor + if g.Group == "experimental" { + interfaces, err := explatest.InterfacesFor(g.VersionUnderTest) + if err != nil { + panic(err) + } + return interfaces.MetadataAccessor + } + panic(fmt.Errorf("cannot test group %s", g.Group)) } // SelfLink returns a self link that will appear to be for the version Version(). // 'resource' should be the resource path, e.g. "pods" for the Pod type. 'name' should be // empty for lists. -func SelfLink(resource, name string) string { - if name == "" { - return fmt.Sprintf("/api/%s/%s", Version(), resource) +func (g TestGroup) SelfLink(resource, name string) string { + if g.Group == "" { + if name == "" { + return fmt.Sprintf("/api/%s/%s", g.Version(), resource) + } + return fmt.Sprintf("/api/%s/%s/%s", g.Version(), resource, name) + } else { + // TODO: will need a /apis prefix once we have proper multi-group + // support + if name == "" { + return fmt.Sprintf("/%s/%s/%s", g.Group, g.Version(), resource) + } + return fmt.Sprintf("/%s/%s/%s/%s", g.Group, g.Version(), resource, name) } - return fmt.Sprintf("/api/%s/%s/%s", Version(), resource, name) } // Returns the appropriate path for the given prefix (watch, proxy, redirect, etc), resource, namespace and name. // For ex, this is of the form: // /api/v1/watch/namespaces/foo/pods/pod0 for v1. -func ResourcePathWithPrefix(prefix, resource, namespace, name string) string { - path := "/api/" + Version() +func (g TestGroup) ResourcePathWithPrefix(prefix, resource, namespace, name string) string { + var path string + if len(g.Group) == 0 { + path = "/api/" + g.Version() + } else { + // TODO: switch back once we have proper multiple group support + // path = "/apis/" + g.Group + "/" + Version(group...) + path = "/" + g.Group + "/" + g.Version() + } + if prefix != "" { path = path + "/" + prefix } @@ -101,6 +199,6 @@ func ResourcePathWithPrefix(prefix, resource, namespace, name string) string { // Returns the appropriate path for the given resource, namespace and name. // For example, this is of the form: // /api/v1/namespaces/foo/pods/pod0 for v1. -func ResourcePath(resource, namespace, name string) string { - return ResourcePathWithPrefix("", resource, namespace, name) +func (g TestGroup) ResourcePath(resource, namespace, name string) string { + return g.ResourcePathWithPrefix("", resource, namespace, name) } diff --git a/pkg/api/testapi/testapi_test.go b/pkg/api/testapi/testapi_test.go index 220833a2045..056c769709e 100644 --- a/pkg/api/testapi/testapi_test.go +++ b/pkg/api/testapi/testapi_test.go @@ -28,14 +28,14 @@ func TestResourcePathWithPrefix(t *testing.T) { name string expected string }{ - {"prefix", "resource", "mynamespace", "myresource", "/api/" + Version() + "/prefix/namespaces/mynamespace/resource/myresource"}, - {"prefix", "resource", "", "myresource", "/api/" + Version() + "/prefix/resource/myresource"}, - {"prefix", "resource", "mynamespace", "", "/api/" + Version() + "/prefix/namespaces/mynamespace/resource"}, - {"prefix", "resource", "", "", "/api/" + Version() + "/prefix/resource"}, - {"", "resource", "mynamespace", "myresource", "/api/" + Version() + "/namespaces/mynamespace/resource/myresource"}, + {"prefix", "resource", "mynamespace", "myresource", "/api/" + Default.Version() + "/prefix/namespaces/mynamespace/resource/myresource"}, + {"prefix", "resource", "", "myresource", "/api/" + Default.Version() + "/prefix/resource/myresource"}, + {"prefix", "resource", "mynamespace", "", "/api/" + Default.Version() + "/prefix/namespaces/mynamespace/resource"}, + {"prefix", "resource", "", "", "/api/" + Default.Version() + "/prefix/resource"}, + {"", "resource", "mynamespace", "myresource", "/api/" + Default.Version() + "/namespaces/mynamespace/resource/myresource"}, } for _, item := range testCases { - if actual := ResourcePathWithPrefix(item.prefix, item.resource, item.namespace, item.name); actual != item.expected { + if actual := Default.ResourcePathWithPrefix(item.prefix, item.resource, item.namespace, item.name); actual != item.expected { t.Errorf("Expected: %s, got: %s for prefix: %s, resource: %s, namespace: %s and name: %s", item.expected, actual, item.prefix, item.resource, item.namespace, item.name) } } @@ -48,13 +48,13 @@ func TestResourcePath(t *testing.T) { name string expected string }{ - {"resource", "mynamespace", "myresource", "/api/" + Version() + "/namespaces/mynamespace/resource/myresource"}, - {"resource", "", "myresource", "/api/" + Version() + "/resource/myresource"}, - {"resource", "mynamespace", "", "/api/" + Version() + "/namespaces/mynamespace/resource"}, - {"resource", "", "", "/api/" + Version() + "/resource"}, + {"resource", "mynamespace", "myresource", "/api/" + Default.Version() + "/namespaces/mynamespace/resource/myresource"}, + {"resource", "", "myresource", "/api/" + Default.Version() + "/resource/myresource"}, + {"resource", "mynamespace", "", "/api/" + Default.Version() + "/namespaces/mynamespace/resource"}, + {"resource", "", "", "/api/" + Default.Version() + "/resource"}, } for _, item := range testCases { - if actual := ResourcePath(item.resource, item.namespace, item.name); actual != item.expected { + if actual := Default.ResourcePath(item.resource, item.namespace, item.name); actual != item.expected { t.Errorf("Expected: %s, got: %s for resource: %s, namespace: %s and name: %s", item.expected, actual, item.resource, item.namespace, item.name) } } diff --git a/pkg/api/util/group_version.go b/pkg/api/util/group_version.go new file mode 100644 index 00000000000..1a9cab0985e --- /dev/null +++ b/pkg/api/util/group_version.go @@ -0,0 +1,39 @@ +/* +Copyright 2015 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// TODO: This GetVersion/GetGroup arrangement is temporary and will be replaced +// with a GroupAndVersion type. +package util + +import "strings" + +func GetVersion(groupVersion string) string { + s := strings.Split(groupVersion, "/") + if len(s) != 2 { + // e.g. return "v1" for groupVersion="v1" + return s[len(s)-1] + } + return s[1] +} + +func GetGroup(groupVersion string) string { + s := strings.Split(groupVersion, "/") + if len(s) == 1 { + // e.g. return "" for groupVersion="v1" + return "" + } + return s[0] +} diff --git a/pkg/api/util/group_version_test.go b/pkg/api/util/group_version_test.go new file mode 100644 index 00000000000..163cd5f3f67 --- /dev/null +++ b/pkg/api/util/group_version_test.go @@ -0,0 +1,63 @@ +/* +Copyright 2014 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package util + +import "testing" + +func TestGetVersion(t *testing.T) { + testCases := []struct { + groupVersion string + output string + }{ + { + "v1", + "v1", + }, + { + "experimental/v1alpha1", + "v1alpha1", + }, + } + for _, test := range testCases { + actual := GetVersion(test.groupVersion) + if test.output != actual { + t.Errorf("expect version: %s, got: %s\n", test.output, actual) + } + } +} + +func TestGetGroup(t *testing.T) { + testCases := []struct { + groupVersion string + output string + }{ + { + "v1", + "", + }, + { + "experimental/v1alpha1", + "experimental", + }, + } + for _, test := range testCases { + actual := GetGroup(test.groupVersion) + if test.output != actual { + t.Errorf("expect version: %s, got: %s\n", test.output, actual) + } + } +} diff --git a/pkg/api/validation/schema_test.go b/pkg/api/validation/schema_test.go index 4c22a273db5..d1d386f7218 100644 --- a/pkg/api/validation/schema_test.go +++ b/pkg/api/validation/schema_test.go @@ -28,7 +28,7 @@ import ( ) func readPod(filename string) (string, error) { - data, err := ioutil.ReadFile("testdata/" + testapi.Version() + "/" + filename) + data, err := ioutil.ReadFile("testdata/" + testapi.Default.Version() + "/" + filename) if err != nil { return "", err } @@ -36,7 +36,7 @@ func readPod(filename string) (string, error) { } func loadSchemaForTest() (Schema, error) { - pathToSwaggerSpec := "../../../api/swagger-spec/" + testapi.Version() + ".json" + pathToSwaggerSpec := "../../../api/swagger-spec/" + testapi.Default.Version() + ".json" data, err := ioutil.ReadFile(pathToSwaggerSpec) if err != nil { return nil, err @@ -71,7 +71,7 @@ func TestValidateOk(t *testing.T) { for _, test := range tests { testObj := test.obj apiObjectFuzzer.Fuzz(testObj) - data, err := testapi.Codec().Encode(testObj) + data, err := testapi.Default.Codec().Encode(testObj) if err != nil { t.Errorf("unexpected error: %v", err) } diff --git a/pkg/api/validation/validation_test.go b/pkg/api/validation/validation_test.go index 21693a5dc5a..3f71b703950 100644 --- a/pkg/api/validation/validation_test.go +++ b/pkg/api/validation/validation_test.go @@ -638,7 +638,7 @@ func TestValidateEnv(t *testing.T) { Name: "abc", ValueFrom: &api.EnvVarSource{ FieldRef: &api.ObjectFieldSelector{ - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), FieldPath: "metadata.name", }, }, @@ -670,7 +670,7 @@ func TestValidateEnv(t *testing.T) { Value: "foo", ValueFrom: &api.EnvVarSource{ FieldRef: &api.ObjectFieldSelector{ - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), FieldPath: "metadata.name", }, }, @@ -683,7 +683,7 @@ func TestValidateEnv(t *testing.T) { Name: "abc", ValueFrom: &api.EnvVarSource{ FieldRef: &api.ObjectFieldSelector{ - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), }, }, }}, @@ -708,7 +708,7 @@ func TestValidateEnv(t *testing.T) { ValueFrom: &api.EnvVarSource{ FieldRef: &api.ObjectFieldSelector{ FieldPath: "metadata.whoops", - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), }, }, }}, @@ -747,7 +747,7 @@ func TestValidateEnv(t *testing.T) { ValueFrom: &api.EnvVarSource{ FieldRef: &api.ObjectFieldSelector{ FieldPath: "status.phase", - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), }, }, }}, diff --git a/pkg/apiserver/handlers_test.go b/pkg/apiserver/handlers_test.go index 30ec81da66a..b9d948d73ba 100644 --- a/pkg/apiserver/handlers_test.go +++ b/pkg/apiserver/handlers_test.go @@ -52,11 +52,11 @@ func expectHTTP(url string, code int, t *testing.T) { } func getPath(resource, namespace, name string) string { - return testapi.ResourcePath(resource, namespace, name) + return testapi.Default.ResourcePath(resource, namespace, name) } func pathWithPrefix(prefix, resource, namespace, name string) string { - return testapi.ResourcePathWithPrefix(prefix, resource, namespace, name) + return testapi.Default.ResourcePathWithPrefix(prefix, resource, namespace, name) } func TestMaxInFlight(t *testing.T) { @@ -231,15 +231,15 @@ func TestGetAPIRequestInfo(t *testing.T) { {"GET", "/watch/namespaces/other/pods", "watch", "", "other", "pods", "", "Pod", "", []string{"pods"}}, // fully-qualified paths - {"GET", getPath("pods", "other", ""), "list", testapi.Version(), "other", "pods", "", "Pod", "", []string{"pods"}}, - {"GET", getPath("pods", "other", "foo"), "get", testapi.Version(), "other", "pods", "", "Pod", "foo", []string{"pods", "foo"}}, - {"GET", getPath("pods", "", ""), "list", testapi.Version(), api.NamespaceAll, "pods", "", "Pod", "", []string{"pods"}}, - {"POST", getPath("pods", "", ""), "create", testapi.Version(), api.NamespaceAll, "pods", "", "Pod", "", []string{"pods"}}, - {"GET", getPath("pods", "", "foo"), "get", testapi.Version(), api.NamespaceAll, "pods", "", "Pod", "foo", []string{"pods", "foo"}}, - {"GET", pathWithPrefix("proxy", "pods", "", "foo"), "proxy", testapi.Version(), api.NamespaceAll, "pods", "", "Pod", "foo", []string{"pods", "foo"}}, - {"GET", pathWithPrefix("watch", "pods", "", ""), "watch", testapi.Version(), api.NamespaceAll, "pods", "", "Pod", "", []string{"pods"}}, - {"GET", pathWithPrefix("redirect", "pods", "", ""), "redirect", testapi.Version(), api.NamespaceAll, "pods", "", "Pod", "", []string{"pods"}}, - {"GET", pathWithPrefix("watch", "pods", "other", ""), "watch", testapi.Version(), "other", "pods", "", "Pod", "", []string{"pods"}}, + {"GET", getPath("pods", "other", ""), "list", testapi.Default.Version(), "other", "pods", "", "Pod", "", []string{"pods"}}, + {"GET", getPath("pods", "other", "foo"), "get", testapi.Default.Version(), "other", "pods", "", "Pod", "foo", []string{"pods", "foo"}}, + {"GET", getPath("pods", "", ""), "list", testapi.Default.Version(), api.NamespaceAll, "pods", "", "Pod", "", []string{"pods"}}, + {"POST", getPath("pods", "", ""), "create", testapi.Default.Version(), api.NamespaceAll, "pods", "", "Pod", "", []string{"pods"}}, + {"GET", getPath("pods", "", "foo"), "get", testapi.Default.Version(), api.NamespaceAll, "pods", "", "Pod", "foo", []string{"pods", "foo"}}, + {"GET", pathWithPrefix("proxy", "pods", "", "foo"), "proxy", testapi.Default.Version(), api.NamespaceAll, "pods", "", "Pod", "foo", []string{"pods", "foo"}}, + {"GET", pathWithPrefix("watch", "pods", "", ""), "watch", testapi.Default.Version(), api.NamespaceAll, "pods", "", "Pod", "", []string{"pods"}}, + {"GET", pathWithPrefix("redirect", "pods", "", ""), "redirect", testapi.Default.Version(), api.NamespaceAll, "pods", "", "Pod", "", []string{"pods"}}, + {"GET", pathWithPrefix("watch", "pods", "other", ""), "watch", testapi.Default.Version(), "other", "pods", "", "Pod", "", []string{"pods"}}, // subresource identification {"GET", "/namespaces/other/pods/foo/status", "get", "", "other", "pods", "status", "Pod", "foo", []string{"pods", "foo", "status"}}, diff --git a/pkg/client/unversioned/cache/listwatch_test.go b/pkg/client/unversioned/cache/listwatch_test.go index 3d2e4f1ef8d..33f45db26e7 100644 --- a/pkg/client/unversioned/cache/listwatch_test.go +++ b/pkg/client/unversioned/cache/listwatch_test.go @@ -54,7 +54,7 @@ func buildLocation(resourcePath string, query url.Values) string { } func TestListWatchesCanList(t *testing.T) { - fieldSelectorQueryParamName := api.FieldSelectorQueryParam(testapi.Version()) + fieldSelectorQueryParamName := api.FieldSelectorQueryParam(testapi.Default.Version()) table := []struct { location string resource string @@ -63,7 +63,7 @@ func TestListWatchesCanList(t *testing.T) { }{ // Minion { - location: testapi.ResourcePath("minions", api.NamespaceAll, ""), + location: testapi.Default.ResourcePath("minions", api.NamespaceAll, ""), resource: "minions", namespace: api.NamespaceAll, fieldSelector: parseSelectorOrDie(""), @@ -71,7 +71,7 @@ func TestListWatchesCanList(t *testing.T) { // pod with "assigned" field selector. { location: buildLocation( - testapi.ResourcePath("pods", api.NamespaceAll, ""), + testapi.Default.ResourcePath("pods", api.NamespaceAll, ""), buildQueryValues(url.Values{fieldSelectorQueryParamName: []string{"spec.host="}})), resource: "pods", namespace: api.NamespaceAll, @@ -80,7 +80,7 @@ func TestListWatchesCanList(t *testing.T) { // pod in namespace "foo" { location: buildLocation( - testapi.ResourcePath("pods", "foo", ""), + testapi.Default.ResourcePath("pods", "foo", ""), buildQueryValues(url.Values{fieldSelectorQueryParamName: []string{"spec.host="}})), resource: "pods", namespace: "foo", @@ -95,7 +95,7 @@ func TestListWatchesCanList(t *testing.T) { } server := httptest.NewServer(&handler) defer server.Close() - client := client.NewOrDie(&client.Config{Host: server.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: server.URL, Version: testapi.Default.Version()}) lw := NewListWatchFromClient(client, item.resource, item.namespace, item.fieldSelector) // This test merely tests that the correct request is made. lw.List() @@ -104,7 +104,7 @@ func TestListWatchesCanList(t *testing.T) { } func TestListWatchesCanWatch(t *testing.T) { - fieldSelectorQueryParamName := api.FieldSelectorQueryParam(testapi.Version()) + fieldSelectorQueryParamName := api.FieldSelectorQueryParam(testapi.Default.Version()) table := []struct { rv string location string @@ -115,7 +115,7 @@ func TestListWatchesCanWatch(t *testing.T) { // Minion { location: buildLocation( - testapi.ResourcePathWithPrefix("watch", "minions", api.NamespaceAll, ""), + testapi.Default.ResourcePathWithPrefix("watch", "minions", api.NamespaceAll, ""), buildQueryValues(url.Values{"resourceVersion": []string{""}})), rv: "", resource: "minions", @@ -124,7 +124,7 @@ func TestListWatchesCanWatch(t *testing.T) { }, { location: buildLocation( - testapi.ResourcePathWithPrefix("watch", "minions", api.NamespaceAll, ""), + testapi.Default.ResourcePathWithPrefix("watch", "minions", api.NamespaceAll, ""), buildQueryValues(url.Values{"resourceVersion": []string{"42"}})), rv: "42", resource: "minions", @@ -134,7 +134,7 @@ func TestListWatchesCanWatch(t *testing.T) { // pod with "assigned" field selector. { location: buildLocation( - testapi.ResourcePathWithPrefix("watch", "pods", api.NamespaceAll, ""), + testapi.Default.ResourcePathWithPrefix("watch", "pods", api.NamespaceAll, ""), buildQueryValues(url.Values{fieldSelectorQueryParamName: []string{"spec.host="}, "resourceVersion": []string{"0"}})), rv: "0", resource: "pods", @@ -144,7 +144,7 @@ func TestListWatchesCanWatch(t *testing.T) { // pod with namespace foo and assigned field selector { location: buildLocation( - testapi.ResourcePathWithPrefix("watch", "pods", "foo", ""), + testapi.Default.ResourcePathWithPrefix("watch", "pods", "foo", ""), buildQueryValues(url.Values{fieldSelectorQueryParamName: []string{"spec.host="}, "resourceVersion": []string{"0"}})), rv: "0", resource: "pods", @@ -161,7 +161,7 @@ func TestListWatchesCanWatch(t *testing.T) { } server := httptest.NewServer(&handler) defer server.Close() - client := client.NewOrDie(&client.Config{Host: server.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: server.URL, Version: testapi.Default.Version()}) lw := NewListWatchFromClient(client, item.resource, item.namespace, item.fieldSelector) // This test merely tests that the correct request is made. lw.Watch(item.rv) diff --git a/pkg/client/unversioned/client_test.go b/pkg/client/unversioned/client_test.go index 5671518704f..72f412b4778 100644 --- a/pkg/client/unversioned/client_test.go +++ b/pkg/client/unversioned/client_test.go @@ -68,23 +68,34 @@ type testClient struct { QueryValidator map[string]func(string, string) bool } -func (c *testClient) Setup() *testClient { +func (c *testClient) Setup(t *testing.T) *testClient { c.handler = &util.FakeHandler{ StatusCode: c.Response.StatusCode, } - if responseBody := body(c.Response.Body, c.Response.RawBody); responseBody != nil { + if responseBody := body(t, c.Response.Body, c.Response.RawBody); responseBody != nil { c.handler.ResponseBody = *responseBody } c.server = httptest.NewServer(c.handler) if c.Client == nil { version := c.Version if len(version) == 0 { - version = testapi.Version() + version = testapi.Default.Version() } c.Client = NewOrDie(&Config{ Host: c.server.URL, Version: version, }) + + // TODO: caesarxuchao: hacky way to specify version of Experimental client. + // We will fix this by supporting multiple group versions in Config + version = c.Version + if len(version) == 0 { + version = testapi.Experimental.Version() + } + c.ExperimentalClient = NewExperimentalOrDie(&Config{ + Host: c.server.URL, + Version: version, + }) } c.QueryValidator = map[string]func(string, string) bool{} return c @@ -124,7 +135,7 @@ func (c *testClient) ValidateCommon(t *testing.T, err error) { return } - requestBody := body(c.Request.Body, c.Request.RawBody) + requestBody := body(t, c.Request.Body, c.Request.RawBody) actualQuery := c.handler.RequestReceived.URL.Query() t.Logf("got query: %v", actualQuery) t.Logf("path: %v", c.Request.Path) @@ -136,9 +147,9 @@ func (c *testClient) ValidateCommon(t *testing.T, err error) { validator, ok := c.QueryValidator[key] if !ok { switch key { - case api.LabelSelectorQueryParam(testapi.Version()): + case api.LabelSelectorQueryParam(testapi.Default.Version()): validator = validateLabels - case api.FieldSelectorQueryParam(testapi.Version()): + case api.FieldSelectorQueryParam(testapi.Default.Version()): validator = validateFields default: validator = func(a, b string) bool { return a == b } @@ -200,9 +211,30 @@ func validateFields(a, b string) bool { return sA.String() == sB.String() } -func body(obj runtime.Object, raw *string) *string { +func body(t *testing.T, obj runtime.Object, raw *string) *string { if obj != nil { - bs, _ := testapi.Codec().Encode(obj) + _, kind, err := api.Scheme.ObjectVersionAndKind(obj) + if err != nil { + t.Errorf("unexpected encoding error: %v", err) + } + // TODO: caesarxuchao: we should detect which group an object belongs to + // by using the version returned by Schem.ObjectVersionAndKind() once we + // split the schemes for internal objects. + // TODO: caesarxuchao: we should add a map from kind to group in Scheme. + var bs []byte + if api.Scheme.Recognizes(testapi.Default.GroupAndVersion(), kind) { + bs, err = testapi.Default.Codec().Encode(obj) + if err != nil { + t.Errorf("unexpected encoding error: %v", err) + } + } else if api.Scheme.Recognizes(testapi.Experimental.GroupAndVersion(), kind) { + bs, err = testapi.Experimental.Codec().Encode(obj) + if err != nil { + t.Errorf("unexpected encoding error: %v", err) + } + } else { + t.Errorf("unexpected kind: %v", kind) + } body := string(bs) return &body } diff --git a/pkg/client/unversioned/daemon_test.go b/pkg/client/unversioned/daemon_test.go index 42ee7a75ce1..0f1f96b1cda 100644 --- a/pkg/client/unversioned/daemon_test.go +++ b/pkg/client/unversioned/daemon_test.go @@ -20,8 +20,8 @@ import ( "testing" "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/expapi" - "k8s.io/kubernetes/pkg/expapi/testapi" "k8s.io/kubernetes/pkg/labels" ) @@ -34,7 +34,7 @@ func TestListDaemons(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getDCResourceName(), ns, ""), + Path: testapi.Experimental.ResourcePath(getDCResourceName(), ns, ""), }, Response: Response{StatusCode: 200, Body: &expapi.DaemonList{ @@ -55,7 +55,7 @@ func TestListDaemons(t *testing.T) { }, }, } - receivedControllerList, err := c.Setup().Experimental().Daemons(ns).List(labels.Everything()) + receivedControllerList, err := c.Setup(t).Experimental().Daemons(ns).List(labels.Everything()) c.Validate(t, receivedControllerList, err) } @@ -63,7 +63,7 @@ func TestListDaemons(t *testing.T) { func TestGetDaemon(t *testing.T) { ns := api.NamespaceDefault c := &testClient{ - Request: testRequest{Method: "GET", Path: testapi.ResourcePath(getDCResourceName(), ns, "foo"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "GET", Path: testapi.Experimental.ResourcePath(getDCResourceName(), ns, "foo"), Query: buildQueryValues(nil)}, Response: Response{ StatusCode: 200, Body: &expapi.Daemon{ @@ -80,14 +80,14 @@ func TestGetDaemon(t *testing.T) { }, }, } - receivedController, err := c.Setup().Experimental().Daemons(ns).Get("foo") + receivedController, err := c.Setup(t).Experimental().Daemons(ns).Get("foo") c.Validate(t, receivedController, err) } func TestGetDaemonWithNoName(t *testing.T) { ns := api.NamespaceDefault c := &testClient{Error: true} - receivedPod, err := c.Setup().Experimental().Daemons(ns).Get("") + receivedPod, err := c.Setup(t).Experimental().Daemons(ns).Get("") if (err != nil) && (err.Error() != nameRequiredError) { t.Errorf("Expected error: %v, but got %v", nameRequiredError, err) } @@ -101,7 +101,7 @@ func TestUpdateDaemon(t *testing.T) { ObjectMeta: api.ObjectMeta{Name: "foo", ResourceVersion: "1"}, } c := &testClient{ - Request: testRequest{Method: "PUT", Path: testapi.ResourcePath(getDCResourceName(), ns, "foo"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "PUT", Path: testapi.Experimental.ResourcePath(getDCResourceName(), ns, "foo"), Query: buildQueryValues(nil)}, Response: Response{ StatusCode: 200, Body: &expapi.Daemon{ @@ -118,17 +118,17 @@ func TestUpdateDaemon(t *testing.T) { }, }, } - receivedController, err := c.Setup().Experimental().Daemons(ns).Update(requestController) + receivedController, err := c.Setup(t).Experimental().Daemons(ns).Update(requestController) c.Validate(t, receivedController, err) } func TestDeleteDaemon(t *testing.T) { ns := api.NamespaceDefault c := &testClient{ - Request: testRequest{Method: "DELETE", Path: testapi.ResourcePath(getDCResourceName(), ns, "foo"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "DELETE", Path: testapi.Experimental.ResourcePath(getDCResourceName(), ns, "foo"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200}, } - err := c.Setup().Experimental().Daemons(ns).Delete("foo") + err := c.Setup(t).Experimental().Daemons(ns).Delete("foo") c.Validate(t, nil, err) } @@ -138,7 +138,7 @@ func TestCreateDaemon(t *testing.T) { ObjectMeta: api.ObjectMeta{Name: "foo"}, } c := &testClient{ - Request: testRequest{Method: "POST", Path: testapi.ResourcePath(getDCResourceName(), ns, ""), Body: requestController, Query: buildQueryValues(nil)}, + Request: testRequest{Method: "POST", Path: testapi.Experimental.ResourcePath(getDCResourceName(), ns, ""), Body: requestController, Query: buildQueryValues(nil)}, Response: Response{ StatusCode: 200, Body: &expapi.Daemon{ @@ -155,6 +155,6 @@ func TestCreateDaemon(t *testing.T) { }, }, } - receivedController, err := c.Setup().Experimental().Daemons(ns).Create(requestController) + receivedController, err := c.Setup(t).Experimental().Daemons(ns).Create(requestController) c.Validate(t, receivedController, err) } diff --git a/pkg/client/unversioned/deployment_test.go b/pkg/client/unversioned/deployment_test.go index 3c5330e5547..352479de238 100644 --- a/pkg/client/unversioned/deployment_test.go +++ b/pkg/client/unversioned/deployment_test.go @@ -21,8 +21,8 @@ import ( "testing" "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/expapi" - "k8s.io/kubernetes/pkg/expapi/testapi" "k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/labels" ) @@ -42,14 +42,14 @@ func TestDeploymentCreate(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "POST", - Path: testapi.ResourcePath(getDeploymentsResoureName(), ns, ""), + Path: testapi.Experimental.ResourcePath(getDeploymentsResoureName(), ns, ""), Query: buildQueryValues(nil), Body: &deployment, }, Response: Response{StatusCode: 200, Body: &deployment}, } - response, err := c.Setup().Deployments(ns).Create(&deployment) + response, err := c.Setup(t).Deployments(ns).Create(&deployment) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -67,14 +67,14 @@ func TestDeploymentGet(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getDeploymentsResoureName(), ns, "abc"), + Path: testapi.Experimental.ResourcePath(getDeploymentsResoureName(), ns, "abc"), Query: buildQueryValues(nil), Body: nil, }, Response: Response{StatusCode: 200, Body: deployment}, } - response, err := c.Setup().Deployments(ns).Get("abc") + response, err := c.Setup(t).Deployments(ns).Get("abc") c.Validate(t, response, err) } @@ -93,13 +93,13 @@ func TestDeploymentList(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getDeploymentsResoureName(), ns, ""), + Path: testapi.Experimental.ResourcePath(getDeploymentsResoureName(), ns, ""), Query: buildQueryValues(nil), Body: nil, }, Response: Response{StatusCode: 200, Body: deploymentList}, } - response, err := c.Setup().Deployments(ns).List(labels.Everything(), fields.Everything()) + response, err := c.Setup(t).Deployments(ns).List(labels.Everything(), fields.Everything()) c.Validate(t, response, err) } @@ -115,12 +115,12 @@ func TestDeploymentUpdate(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "PUT", - Path: testapi.ResourcePath(getDeploymentsResoureName(), ns, "abc"), + Path: testapi.Experimental.ResourcePath(getDeploymentsResoureName(), ns, "abc"), Query: buildQueryValues(nil), }, Response: Response{StatusCode: 200, Body: deployment}, } - response, err := c.Setup().Deployments(ns).Update(deployment) + response, err := c.Setup(t).Deployments(ns).Update(deployment) c.Validate(t, response, err) } @@ -129,12 +129,12 @@ func TestDeploymentDelete(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "DELETE", - Path: testapi.ResourcePath(getDeploymentsResoureName(), ns, "foo"), + Path: testapi.Experimental.ResourcePath(getDeploymentsResoureName(), ns, "foo"), Query: buildQueryValues(nil), }, Response: Response{StatusCode: 200}, } - err := c.Setup().Deployments(ns).Delete("foo", nil) + err := c.Setup(t).Deployments(ns).Delete("foo", nil) c.Validate(t, nil, err) } @@ -142,11 +142,11 @@ func TestDeploymentWatch(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePathWithPrefix("watch", getDeploymentsResoureName(), "", ""), + Path: testapi.Experimental.ResourcePathWithPrefix("watch", getDeploymentsResoureName(), "", ""), Query: url.Values{"resourceVersion": []string{}}, }, Response: Response{StatusCode: 200}, } - _, err := c.Setup().Deployments(api.NamespaceAll).Watch(labels.Everything(), fields.Everything(), "") + _, err := c.Setup(t).Deployments(api.NamespaceAll).Watch(labels.Everything(), fields.Everything(), "") c.Validate(t, nil, err) } diff --git a/pkg/client/unversioned/endpoints_test.go b/pkg/client/unversioned/endpoints_test.go index d416171488f..0c39ec5bca0 100644 --- a/pkg/client/unversioned/endpoints_test.go +++ b/pkg/client/unversioned/endpoints_test.go @@ -27,7 +27,7 @@ import ( func TestListEndpoints(t *testing.T) { ns := api.NamespaceDefault c := &testClient{ - Request: testRequest{Method: "GET", Path: testapi.ResourcePath("endpoints", ns, ""), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "GET", Path: testapi.Default.ResourcePath("endpoints", ns, ""), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: &api.EndpointsList{ Items: []api.Endpoints{ @@ -42,24 +42,24 @@ func TestListEndpoints(t *testing.T) { }, }, } - receivedEndpointsList, err := c.Setup().Endpoints(ns).List(labels.Everything()) + receivedEndpointsList, err := c.Setup(t).Endpoints(ns).List(labels.Everything()) c.Validate(t, receivedEndpointsList, err) } func TestGetEndpoints(t *testing.T) { ns := api.NamespaceDefault c := &testClient{ - Request: testRequest{Method: "GET", Path: testapi.ResourcePath("endpoints", ns, "endpoint-1"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "GET", Path: testapi.Default.ResourcePath("endpoints", ns, "endpoint-1"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: &api.Endpoints{ObjectMeta: api.ObjectMeta{Name: "endpoint-1"}}}, } - response, err := c.Setup().Endpoints(ns).Get("endpoint-1") + response, err := c.Setup(t).Endpoints(ns).Get("endpoint-1") c.Validate(t, response, err) } func TestGetEndpointWithNoName(t *testing.T) { ns := api.NamespaceDefault c := &testClient{Error: true} - receivedPod, err := c.Setup().Endpoints(ns).Get("") + receivedPod, err := c.Setup(t).Endpoints(ns).Get("") if (err != nil) && (err.Error() != nameRequiredError) { t.Errorf("Expected error: %v, but got %v", nameRequiredError, err) } diff --git a/pkg/client/unversioned/events_test.go b/pkg/client/unversioned/events_test.go index cc48a43a7e6..e8d7de4957e 100644 --- a/pkg/client/unversioned/events_test.go +++ b/pkg/client/unversioned/events_test.go @@ -32,24 +32,24 @@ func TestEventSearch(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath("events", "baz", ""), + Path: testapi.Default.ResourcePath("events", "baz", ""), Query: url.Values{ - api.FieldSelectorQueryParam(testapi.Version()): []string{ - getInvolvedObjectNameFieldLabel(testapi.Version()) + "=foo,", + api.FieldSelectorQueryParam(testapi.Default.Version()): []string{ + getInvolvedObjectNameFieldLabel(testapi.Default.Version()) + "=foo,", "involvedObject.namespace=baz,", "involvedObject.kind=Pod", }, - api.LabelSelectorQueryParam(testapi.Version()): []string{}, + api.LabelSelectorQueryParam(testapi.Default.Version()): []string{}, }, }, Response: Response{StatusCode: 200, Body: &api.EventList{}}, } - eventList, err := c.Setup().Events("baz").Search( + eventList, err := c.Setup(t).Events("baz").Search( &api.Pod{ ObjectMeta: api.ObjectMeta{ Name: "foo", Namespace: "baz", - SelfLink: testapi.SelfLink("pods", ""), + SelfLink: testapi.Default.SelfLink("pods", ""), }, }, ) @@ -78,13 +78,13 @@ func TestEventCreate(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "POST", - Path: testapi.ResourcePath("events", api.NamespaceDefault, ""), + Path: testapi.Default.ResourcePath("events", api.NamespaceDefault, ""), Body: event, }, Response: Response{StatusCode: 200, Body: event}, } - response, err := c.Setup().Events(api.NamespaceDefault).Create(event) + response, err := c.Setup(t).Events(api.NamespaceDefault).Create(event) if err != nil { t.Fatalf("%v should be nil.", err) @@ -117,13 +117,13 @@ func TestEventGet(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath("events", "other", "1"), + Path: testapi.Default.ResourcePath("events", "other", "1"), Body: nil, }, Response: Response{StatusCode: 200, Body: event}, } - response, err := c.Setup().Events("other").Get("1") + response, err := c.Setup(t).Events("other").Get("1") if err != nil { t.Fatalf("%v should be nil.", err) @@ -158,12 +158,12 @@ func TestEventList(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath("events", ns, ""), + Path: testapi.Default.ResourcePath("events", ns, ""), Body: nil, }, Response: Response{StatusCode: 200, Body: eventList}, } - response, err := c.Setup().Events(ns).List(labels.Everything(), + response, err := c.Setup(t).Events(ns).List(labels.Everything(), fields.Everything()) if err != nil { @@ -186,10 +186,10 @@ func TestEventDelete(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "DELETE", - Path: testapi.ResourcePath("events", ns, "foo"), + Path: testapi.Default.ResourcePath("events", ns, "foo"), }, Response: Response{StatusCode: 200}, } - err := c.Setup().Events(ns).Delete("foo") + err := c.Setup(t).Events(ns).Delete("foo") c.Validate(t, nil, err) } diff --git a/pkg/client/unversioned/fake.go b/pkg/client/unversioned/fake.go index f7f7fc35574..a52cdb09727 100644 --- a/pkg/client/unversioned/fake.go +++ b/pkg/client/unversioned/fake.go @@ -41,23 +41,23 @@ type FakeRESTClient struct { } func (c *FakeRESTClient) Get() *Request { - return NewRequest(c, "GET", &url.URL{Host: "localhost"}, testapi.Version(), c.Codec) + return NewRequest(c, "GET", &url.URL{Host: "localhost"}, testapi.Default.Version(), c.Codec) } func (c *FakeRESTClient) Put() *Request { - return NewRequest(c, "PUT", &url.URL{Host: "localhost"}, testapi.Version(), c.Codec) + return NewRequest(c, "PUT", &url.URL{Host: "localhost"}, testapi.Default.Version(), c.Codec) } func (c *FakeRESTClient) Patch(_ api.PatchType) *Request { - return NewRequest(c, "PATCH", &url.URL{Host: "localhost"}, testapi.Version(), c.Codec) + return NewRequest(c, "PATCH", &url.URL{Host: "localhost"}, testapi.Default.Version(), c.Codec) } func (c *FakeRESTClient) Post() *Request { - return NewRequest(c, "POST", &url.URL{Host: "localhost"}, testapi.Version(), c.Codec) + return NewRequest(c, "POST", &url.URL{Host: "localhost"}, testapi.Default.Version(), c.Codec) } func (c *FakeRESTClient) Delete() *Request { - return NewRequest(c, "DELETE", &url.URL{Host: "localhost"}, testapi.Version(), c.Codec) + return NewRequest(c, "DELETE", &url.URL{Host: "localhost"}, testapi.Default.Version(), c.Codec) } func (c *FakeRESTClient) Do(req *http.Request) (*http.Response, error) { diff --git a/pkg/client/unversioned/helper_test.go b/pkg/client/unversioned/helper_test.go index a540a2d6159..a81c5d9a612 100644 --- a/pkg/client/unversioned/helper_test.go +++ b/pkg/client/unversioned/helper_test.go @@ -401,40 +401,40 @@ func TestNegotiateVersion(t *testing.T) { name: "server supports client default", version: "version1", config: &Config{}, - serverVersions: []string{"version1", testapi.Version()}, - clientVersions: []string{"version1", testapi.Version()}, + serverVersions: []string{"version1", testapi.Default.Version()}, + clientVersions: []string{"version1", testapi.Default.Version()}, expectedVersion: "version1", expectErr: false, }, { name: "server falls back to client supported", - version: testapi.Version(), + version: testapi.Default.Version(), config: &Config{}, serverVersions: []string{"version1"}, - clientVersions: []string{"version1", testapi.Version()}, + clientVersions: []string{"version1", testapi.Default.Version()}, expectedVersion: "version1", expectErr: false, }, { name: "explicit version supported", version: "", - config: &Config{Version: testapi.Version()}, - serverVersions: []string{"version1", testapi.Version()}, - clientVersions: []string{"version1", testapi.Version()}, - expectedVersion: testapi.Version(), + config: &Config{Version: testapi.Default.Version()}, + serverVersions: []string{"version1", testapi.Default.Version()}, + clientVersions: []string{"version1", testapi.Default.Version()}, + expectedVersion: testapi.Default.Version(), expectErr: false, }, { name: "explicit version not supported", version: "", - config: &Config{Version: testapi.Version()}, + config: &Config{Version: testapi.Default.Version()}, serverVersions: []string{"version1"}, - clientVersions: []string{"version1", testapi.Version()}, + clientVersions: []string{"version1", testapi.Default.Version()}, expectedVersion: "", expectErr: true, }, } - codec := testapi.Codec() + codec := testapi.Default.Codec() for _, test := range tests { fakeClient := &FakeRESTClient{ diff --git a/pkg/client/unversioned/horizontalpodautoscaler_test.go b/pkg/client/unversioned/horizontalpodautoscaler_test.go index d1fdd5aa16b..0ca1b5f0a1a 100644 --- a/pkg/client/unversioned/horizontalpodautoscaler_test.go +++ b/pkg/client/unversioned/horizontalpodautoscaler_test.go @@ -21,8 +21,8 @@ import ( "testing" "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/expapi" - "k8s.io/kubernetes/pkg/expapi/testapi" "k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/labels" ) @@ -42,14 +42,14 @@ func TestHorizontalPodAutoscalerCreate(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "POST", - Path: testapi.ResourcePath(getHorizontalPodAutoscalersResoureName(), ns, ""), + Path: testapi.Experimental.ResourcePath(getHorizontalPodAutoscalersResoureName(), ns, ""), Query: buildQueryValues(nil), Body: &horizontalPodAutoscaler, }, Response: Response{StatusCode: 200, Body: &horizontalPodAutoscaler}, } - response, err := c.Setup().Experimental().HorizontalPodAutoscalers(ns).Create(&horizontalPodAutoscaler) + response, err := c.Setup(t).Experimental().HorizontalPodAutoscalers(ns).Create(&horizontalPodAutoscaler) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -67,14 +67,14 @@ func TestHorizontalPodAutoscalerGet(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getHorizontalPodAutoscalersResoureName(), ns, "abc"), + Path: testapi.Experimental.ResourcePath(getHorizontalPodAutoscalersResoureName(), ns, "abc"), Query: buildQueryValues(nil), Body: nil, }, Response: Response{StatusCode: 200, Body: horizontalPodAutoscaler}, } - response, err := c.Setup().Experimental().HorizontalPodAutoscalers(ns).Get("abc") + response, err := c.Setup(t).Experimental().HorizontalPodAutoscalers(ns).Get("abc") c.Validate(t, response, err) } @@ -93,13 +93,13 @@ func TestHorizontalPodAutoscalerList(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getHorizontalPodAutoscalersResoureName(), ns, ""), + Path: testapi.Experimental.ResourcePath(getHorizontalPodAutoscalersResoureName(), ns, ""), Query: buildQueryValues(nil), Body: nil, }, Response: Response{StatusCode: 200, Body: horizontalPodAutoscalerList}, } - response, err := c.Setup().Experimental().HorizontalPodAutoscalers(ns).List(labels.Everything(), fields.Everything()) + response, err := c.Setup(t).Experimental().HorizontalPodAutoscalers(ns).List(labels.Everything(), fields.Everything()) c.Validate(t, response, err) } @@ -113,20 +113,20 @@ func TestHorizontalPodAutoscalerUpdate(t *testing.T) { }, } c := &testClient{ - Request: testRequest{Method: "PUT", Path: testapi.ResourcePath(getHorizontalPodAutoscalersResoureName(), ns, "abc"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "PUT", Path: testapi.Experimental.ResourcePath(getHorizontalPodAutoscalersResoureName(), ns, "abc"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: horizontalPodAutoscaler}, } - response, err := c.Setup().Experimental().HorizontalPodAutoscalers(ns).Update(horizontalPodAutoscaler) + response, err := c.Setup(t).Experimental().HorizontalPodAutoscalers(ns).Update(horizontalPodAutoscaler) c.Validate(t, response, err) } func TestHorizontalPodAutoscalerDelete(t *testing.T) { ns := api.NamespaceDefault c := &testClient{ - Request: testRequest{Method: "DELETE", Path: testapi.ResourcePath(getHorizontalPodAutoscalersResoureName(), ns, "foo"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "DELETE", Path: testapi.Experimental.ResourcePath(getHorizontalPodAutoscalersResoureName(), ns, "foo"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200}, } - err := c.Setup().Experimental().HorizontalPodAutoscalers(ns).Delete("foo", nil) + err := c.Setup(t).Experimental().HorizontalPodAutoscalers(ns).Delete("foo", nil) c.Validate(t, nil, err) } @@ -134,10 +134,10 @@ func TestHorizontalPodAutoscalerWatch(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePathWithPrefix("watch", getHorizontalPodAutoscalersResoureName(), "", ""), + Path: testapi.Experimental.ResourcePathWithPrefix("watch", getHorizontalPodAutoscalersResoureName(), "", ""), Query: url.Values{"resourceVersion": []string{}}}, Response: Response{StatusCode: 200}, } - _, err := c.Setup().Experimental().HorizontalPodAutoscalers(api.NamespaceAll).Watch(labels.Everything(), fields.Everything(), "") + _, err := c.Setup(t).Experimental().HorizontalPodAutoscalers(api.NamespaceAll).Watch(labels.Everything(), fields.Everything(), "") c.Validate(t, nil, err) } diff --git a/pkg/client/unversioned/limit_ranges_test.go b/pkg/client/unversioned/limit_ranges_test.go index e6d8134d823..cba367172fd 100644 --- a/pkg/client/unversioned/limit_ranges_test.go +++ b/pkg/client/unversioned/limit_ranges_test.go @@ -56,14 +56,14 @@ func TestLimitRangeCreate(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "POST", - Path: testapi.ResourcePath(getLimitRangesResourceName(), ns, ""), + Path: testapi.Default.ResourcePath(getLimitRangesResourceName(), ns, ""), Query: buildQueryValues(nil), Body: limitRange, }, Response: Response{StatusCode: 200, Body: limitRange}, } - response, err := c.Setup().LimitRanges(ns).Create(limitRange) + response, err := c.Setup(t).LimitRanges(ns).Create(limitRange) c.Validate(t, response, err) } @@ -92,14 +92,14 @@ func TestLimitRangeGet(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getLimitRangesResourceName(), ns, "abc"), + Path: testapi.Default.ResourcePath(getLimitRangesResourceName(), ns, "abc"), Query: buildQueryValues(nil), Body: nil, }, Response: Response{StatusCode: 200, Body: limitRange}, } - response, err := c.Setup().LimitRanges(ns).Get("abc") + response, err := c.Setup(t).LimitRanges(ns).Get("abc") c.Validate(t, response, err) } @@ -116,13 +116,13 @@ func TestLimitRangeList(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getLimitRangesResourceName(), ns, ""), + Path: testapi.Default.ResourcePath(getLimitRangesResourceName(), ns, ""), Query: buildQueryValues(nil), Body: nil, }, Response: Response{StatusCode: 200, Body: limitRangeList}, } - response, err := c.Setup().LimitRanges(ns).List(labels.Everything()) + response, err := c.Setup(t).LimitRanges(ns).List(labels.Everything()) c.Validate(t, response, err) } @@ -150,10 +150,10 @@ func TestLimitRangeUpdate(t *testing.T) { }, } c := &testClient{ - Request: testRequest{Method: "PUT", Path: testapi.ResourcePath(getLimitRangesResourceName(), ns, "abc"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "PUT", Path: testapi.Default.ResourcePath(getLimitRangesResourceName(), ns, "abc"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: limitRange}, } - response, err := c.Setup().LimitRanges(ns).Update(limitRange) + response, err := c.Setup(t).LimitRanges(ns).Update(limitRange) c.Validate(t, response, err) } @@ -180,10 +180,10 @@ func TestInvalidLimitRangeUpdate(t *testing.T) { }, } c := &testClient{ - Request: testRequest{Method: "PUT", Path: testapi.ResourcePath(getLimitRangesResourceName(), ns, "abc"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "PUT", Path: testapi.Default.ResourcePath(getLimitRangesResourceName(), ns, "abc"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: limitRange}, } - _, err := c.Setup().LimitRanges(ns).Update(limitRange) + _, err := c.Setup(t).LimitRanges(ns).Update(limitRange) if err == nil { t.Errorf("Expected an error due to missing ResourceVersion") } @@ -192,10 +192,10 @@ func TestInvalidLimitRangeUpdate(t *testing.T) { func TestLimitRangeDelete(t *testing.T) { ns := api.NamespaceDefault c := &testClient{ - Request: testRequest{Method: "DELETE", Path: testapi.ResourcePath(getLimitRangesResourceName(), ns, "foo"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "DELETE", Path: testapi.Default.ResourcePath(getLimitRangesResourceName(), ns, "foo"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200}, } - err := c.Setup().LimitRanges(ns).Delete("foo") + err := c.Setup(t).LimitRanges(ns).Delete("foo") c.Validate(t, nil, err) } @@ -203,10 +203,10 @@ func TestLimitRangeWatch(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePathWithPrefix("watch", getLimitRangesResourceName(), "", ""), + Path: testapi.Default.ResourcePathWithPrefix("watch", getLimitRangesResourceName(), "", ""), Query: url.Values{"resourceVersion": []string{}}}, Response: Response{StatusCode: 200}, } - _, err := c.Setup().LimitRanges(api.NamespaceAll).Watch(labels.Everything(), fields.Everything(), "") + _, err := c.Setup(t).LimitRanges(api.NamespaceAll).Watch(labels.Everything(), fields.Everything(), "") c.Validate(t, nil, err) } diff --git a/pkg/client/unversioned/namespaces_test.go b/pkg/client/unversioned/namespaces_test.go index 6ca87a98d19..7fc36157345 100644 --- a/pkg/client/unversioned/namespaces_test.go +++ b/pkg/client/unversioned/namespaces_test.go @@ -34,14 +34,14 @@ func TestNamespaceCreate(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "POST", - Path: testapi.ResourcePath("namespaces", "", ""), + Path: testapi.Default.ResourcePath("namespaces", "", ""), Body: namespace, }, Response: Response{StatusCode: 200, Body: namespace}, } // from the source ns, provision a new global namespace "foo" - response, err := c.Setup().Namespaces().Create(namespace) + response, err := c.Setup(t).Namespaces().Create(namespace) if err != nil { t.Errorf("%#v should be nil.", err) @@ -59,13 +59,13 @@ func TestNamespaceGet(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath("namespaces", "", "foo"), + Path: testapi.Default.ResourcePath("namespaces", "", "foo"), Body: nil, }, Response: Response{StatusCode: 200, Body: namespace}, } - response, err := c.Setup().Namespaces().Get("foo") + response, err := c.Setup(t).Namespaces().Get("foo") if err != nil { t.Errorf("%#v should be nil.", err) @@ -87,12 +87,12 @@ func TestNamespaceList(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath("namespaces", "", ""), + Path: testapi.Default.ResourcePath("namespaces", "", ""), Body: nil, }, Response: Response{StatusCode: 200, Body: namespaceList}, } - response, err := c.Setup().Namespaces().List(labels.Everything(), fields.Everything()) + response, err := c.Setup(t).Namespaces().List(labels.Everything(), fields.Everything()) if err != nil { t.Errorf("%#v should be nil.", err) @@ -125,10 +125,10 @@ func TestNamespaceUpdate(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "PUT", - Path: testapi.ResourcePath("namespaces", "", "foo")}, + Path: testapi.Default.ResourcePath("namespaces", "", "foo")}, Response: Response{StatusCode: 200, Body: requestNamespace}, } - receivedNamespace, err := c.Setup().Namespaces().Update(requestNamespace) + receivedNamespace, err := c.Setup(t).Namespaces().Update(requestNamespace) c.Validate(t, receivedNamespace, err) } @@ -149,20 +149,20 @@ func TestNamespaceFinalize(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "PUT", - Path: testapi.ResourcePath("namespaces", "", "foo") + "/finalize", + Path: testapi.Default.ResourcePath("namespaces", "", "foo") + "/finalize", }, Response: Response{StatusCode: 200, Body: requestNamespace}, } - receivedNamespace, err := c.Setup().Namespaces().Finalize(requestNamespace) + receivedNamespace, err := c.Setup(t).Namespaces().Finalize(requestNamespace) c.Validate(t, receivedNamespace, err) } func TestNamespaceDelete(t *testing.T) { c := &testClient{ - Request: testRequest{Method: "DELETE", Path: testapi.ResourcePath("namespaces", "", "foo")}, + Request: testRequest{Method: "DELETE", Path: testapi.Default.ResourcePath("namespaces", "", "foo")}, Response: Response{StatusCode: 200}, } - err := c.Setup().Namespaces().Delete("foo") + err := c.Setup(t).Namespaces().Delete("foo") c.Validate(t, nil, err) } @@ -170,10 +170,10 @@ func TestNamespaceWatch(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePathWithPrefix("watch", "namespaces", "", ""), + Path: testapi.Default.ResourcePathWithPrefix("watch", "namespaces", "", ""), Query: url.Values{"resourceVersion": []string{}}}, Response: Response{StatusCode: 200}, } - _, err := c.Setup().Namespaces().Watch(labels.Everything(), fields.Everything(), "") + _, err := c.Setup(t).Namespaces().Watch(labels.Everything(), fields.Everything(), "") c.Validate(t, nil, err) } diff --git a/pkg/client/unversioned/nodes_test.go b/pkg/client/unversioned/nodes_test.go index d621d5a9039..44ca27bc6cf 100644 --- a/pkg/client/unversioned/nodes_test.go +++ b/pkg/client/unversioned/nodes_test.go @@ -35,20 +35,20 @@ func TestListMinions(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getNodesResourceName(), "", ""), + Path: testapi.Default.ResourcePath(getNodesResourceName(), "", ""), }, Response: Response{StatusCode: 200, Body: &api.NodeList{ListMeta: api.ListMeta{ResourceVersion: "1"}}}, } - response, err := c.Setup().Nodes().List(labels.Everything(), fields.Everything()) + response, err := c.Setup(t).Nodes().List(labels.Everything(), fields.Everything()) c.Validate(t, response, err) } func TestListMinionsLabels(t *testing.T) { - labelSelectorQueryParamName := api.LabelSelectorQueryParam(testapi.Version()) + labelSelectorQueryParamName := api.LabelSelectorQueryParam(testapi.Default.Version()) c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getNodesResourceName(), "", ""), + Path: testapi.Default.ResourcePath(getNodesResourceName(), "", ""), Query: buildQueryValues(url.Values{labelSelectorQueryParamName: []string{"foo=bar,name=baz"}})}, Response: Response{ StatusCode: 200, @@ -66,7 +66,7 @@ func TestListMinionsLabels(t *testing.T) { }, }, } - c.Setup() + c.Setup(t) c.QueryValidator[labelSelectorQueryParamName] = validateLabels selector := labels.Set{"foo": "bar", "name": "baz"}.AsSelector() receivedNodeList, err := c.Nodes().List(selector, fields.Everything()) @@ -77,17 +77,17 @@ func TestGetMinion(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getNodesResourceName(), "", "1"), + Path: testapi.Default.ResourcePath(getNodesResourceName(), "", "1"), }, Response: Response{StatusCode: 200, Body: &api.Node{ObjectMeta: api.ObjectMeta{Name: "minion-1"}}}, } - response, err := c.Setup().Nodes().Get("1") + response, err := c.Setup(t).Nodes().Get("1") c.Validate(t, response, err) } func TestGetMinionWithNoName(t *testing.T) { c := &testClient{Error: true} - receivedNode, err := c.Setup().Nodes().Get("") + receivedNode, err := c.Setup(t).Nodes().Get("") if (err != nil) && (err.Error() != nameRequiredError) { t.Errorf("Expected error: %v, but got %v", nameRequiredError, err) } @@ -113,14 +113,14 @@ func TestCreateMinion(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "POST", - Path: testapi.ResourcePath(getNodesResourceName(), "", ""), + Path: testapi.Default.ResourcePath(getNodesResourceName(), "", ""), Body: requestMinion}, Response: Response{ StatusCode: 200, Body: requestMinion, }, } - receivedMinion, err := c.Setup().Nodes().Create(requestMinion) + receivedMinion, err := c.Setup(t).Nodes().Create(requestMinion) c.Validate(t, receivedMinion, err) } @@ -128,11 +128,11 @@ func TestDeleteMinion(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "DELETE", - Path: testapi.ResourcePath(getNodesResourceName(), "", "foo"), + Path: testapi.Default.ResourcePath(getNodesResourceName(), "", "foo"), }, Response: Response{StatusCode: 200}, } - err := c.Setup().Nodes().Delete("foo") + err := c.Setup(t).Nodes().Delete("foo") c.Validate(t, nil, err) } @@ -155,10 +155,10 @@ func TestUpdateMinion(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "PUT", - Path: testapi.ResourcePath(getNodesResourceName(), "", "foo"), + Path: testapi.Default.ResourcePath(getNodesResourceName(), "", "foo"), }, Response: Response{StatusCode: 200, Body: requestMinion}, } - response, err := c.Setup().Nodes().Update(requestMinion) + response, err := c.Setup(t).Nodes().Update(requestMinion) c.Validate(t, response, err) } diff --git a/pkg/client/unversioned/persistentvolume_test.go b/pkg/client/unversioned/persistentvolume_test.go index 87cfb73cad0..6b09f5f518b 100644 --- a/pkg/client/unversioned/persistentvolume_test.go +++ b/pkg/client/unversioned/persistentvolume_test.go @@ -49,14 +49,14 @@ func TestPersistentVolumeCreate(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "POST", - Path: testapi.ResourcePath(getPersistentVolumesResoureName(), "", ""), + Path: testapi.Default.ResourcePath(getPersistentVolumesResoureName(), "", ""), Query: buildQueryValues(nil), Body: pv, }, Response: Response{StatusCode: 200, Body: pv}, } - response, err := c.Setup().PersistentVolumes().Create(pv) + response, err := c.Setup(t).PersistentVolumes().Create(pv) c.Validate(t, response, err) } @@ -78,14 +78,14 @@ func TestPersistentVolumeGet(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getPersistentVolumesResoureName(), "", "abc"), + Path: testapi.Default.ResourcePath(getPersistentVolumesResoureName(), "", "abc"), Query: buildQueryValues(nil), Body: nil, }, Response: Response{StatusCode: 200, Body: persistentVolume}, } - response, err := c.Setup().PersistentVolumes().Get("abc") + response, err := c.Setup(t).PersistentVolumes().Get("abc") c.Validate(t, response, err) } @@ -100,13 +100,13 @@ func TestPersistentVolumeList(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getPersistentVolumesResoureName(), "", ""), + Path: testapi.Default.ResourcePath(getPersistentVolumesResoureName(), "", ""), Query: buildQueryValues(nil), Body: nil, }, Response: Response{StatusCode: 200, Body: persistentVolumeList}, } - response, err := c.Setup().PersistentVolumes().List(labels.Everything(), fields.Everything()) + response, err := c.Setup(t).PersistentVolumes().List(labels.Everything(), fields.Everything()) c.Validate(t, response, err) } @@ -126,10 +126,10 @@ func TestPersistentVolumeUpdate(t *testing.T) { }, } c := &testClient{ - Request: testRequest{Method: "PUT", Path: testapi.ResourcePath(getPersistentVolumesResoureName(), "", "abc"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "PUT", Path: testapi.Default.ResourcePath(getPersistentVolumesResoureName(), "", "abc"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: persistentVolume}, } - response, err := c.Setup().PersistentVolumes().Update(persistentVolume) + response, err := c.Setup(t).PersistentVolumes().Update(persistentVolume) c.Validate(t, response, err) } @@ -155,20 +155,20 @@ func TestPersistentVolumeStatusUpdate(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "PUT", - Path: testapi.ResourcePath(getPersistentVolumesResoureName(), "", "abc") + "/status", + Path: testapi.Default.ResourcePath(getPersistentVolumesResoureName(), "", "abc") + "/status", Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: persistentVolume}, } - response, err := c.Setup().PersistentVolumes().UpdateStatus(persistentVolume) + response, err := c.Setup(t).PersistentVolumes().UpdateStatus(persistentVolume) c.Validate(t, response, err) } func TestPersistentVolumeDelete(t *testing.T) { c := &testClient{ - Request: testRequest{Method: "DELETE", Path: testapi.ResourcePath(getPersistentVolumesResoureName(), "", "foo"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "DELETE", Path: testapi.Default.ResourcePath(getPersistentVolumesResoureName(), "", "foo"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200}, } - err := c.Setup().PersistentVolumes().Delete("foo") + err := c.Setup(t).PersistentVolumes().Delete("foo") c.Validate(t, nil, err) } @@ -176,10 +176,10 @@ func TestPersistentVolumeWatch(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePathWithPrefix("watch", getPersistentVolumesResoureName(), "", ""), + Path: testapi.Default.ResourcePathWithPrefix("watch", getPersistentVolumesResoureName(), "", ""), Query: url.Values{"resourceVersion": []string{}}}, Response: Response{StatusCode: 200}, } - _, err := c.Setup().PersistentVolumes().Watch(labels.Everything(), fields.Everything(), "") + _, err := c.Setup(t).PersistentVolumes().Watch(labels.Everything(), fields.Everything(), "") c.Validate(t, nil, err) } diff --git a/pkg/client/unversioned/persistentvolumeclaim_test.go b/pkg/client/unversioned/persistentvolumeclaim_test.go index 2bbffa2e773..ae50560aba9 100644 --- a/pkg/client/unversioned/persistentvolumeclaim_test.go +++ b/pkg/client/unversioned/persistentvolumeclaim_test.go @@ -53,14 +53,14 @@ func TestPersistentVolumeClaimCreate(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "POST", - Path: testapi.ResourcePath(getPersistentVolumeClaimsResoureName(), ns, ""), + Path: testapi.Default.ResourcePath(getPersistentVolumeClaimsResoureName(), ns, ""), Query: buildQueryValues(nil), Body: pv, }, Response: Response{StatusCode: 200, Body: pv}, } - response, err := c.Setup().PersistentVolumeClaims(ns).Create(pv) + response, err := c.Setup(t).PersistentVolumeClaims(ns).Create(pv) c.Validate(t, response, err) } @@ -86,14 +86,14 @@ func TestPersistentVolumeClaimGet(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getPersistentVolumeClaimsResoureName(), ns, "abc"), + Path: testapi.Default.ResourcePath(getPersistentVolumeClaimsResoureName(), ns, "abc"), Query: buildQueryValues(nil), Body: nil, }, Response: Response{StatusCode: 200, Body: persistentVolumeClaim}, } - response, err := c.Setup().PersistentVolumeClaims(ns).Get("abc") + response, err := c.Setup(t).PersistentVolumeClaims(ns).Get("abc") c.Validate(t, response, err) } @@ -109,13 +109,13 @@ func TestPersistentVolumeClaimList(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getPersistentVolumeClaimsResoureName(), ns, ""), + Path: testapi.Default.ResourcePath(getPersistentVolumeClaimsResoureName(), ns, ""), Query: buildQueryValues(nil), Body: nil, }, Response: Response{StatusCode: 200, Body: persistentVolumeList}, } - response, err := c.Setup().PersistentVolumeClaims(ns).List(labels.Everything(), fields.Everything()) + response, err := c.Setup(t).PersistentVolumeClaims(ns).List(labels.Everything(), fields.Everything()) c.Validate(t, response, err) } @@ -139,10 +139,10 @@ func TestPersistentVolumeClaimUpdate(t *testing.T) { }, } c := &testClient{ - Request: testRequest{Method: "PUT", Path: testapi.ResourcePath(getPersistentVolumeClaimsResoureName(), ns, "abc"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "PUT", Path: testapi.Default.ResourcePath(getPersistentVolumeClaimsResoureName(), ns, "abc"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: persistentVolumeClaim}, } - response, err := c.Setup().PersistentVolumeClaims(ns).Update(persistentVolumeClaim) + response, err := c.Setup(t).PersistentVolumeClaims(ns).Update(persistentVolumeClaim) c.Validate(t, response, err) } @@ -171,21 +171,21 @@ func TestPersistentVolumeClaimStatusUpdate(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "PUT", - Path: testapi.ResourcePath(getPersistentVolumeClaimsResoureName(), ns, "abc") + "/status", + Path: testapi.Default.ResourcePath(getPersistentVolumeClaimsResoureName(), ns, "abc") + "/status", Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: persistentVolumeClaim}, } - response, err := c.Setup().PersistentVolumeClaims(ns).UpdateStatus(persistentVolumeClaim) + response, err := c.Setup(t).PersistentVolumeClaims(ns).UpdateStatus(persistentVolumeClaim) c.Validate(t, response, err) } func TestPersistentVolumeClaimDelete(t *testing.T) { ns := api.NamespaceDefault c := &testClient{ - Request: testRequest{Method: "DELETE", Path: testapi.ResourcePath(getPersistentVolumeClaimsResoureName(), ns, "foo"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "DELETE", Path: testapi.Default.ResourcePath(getPersistentVolumeClaimsResoureName(), ns, "foo"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200}, } - err := c.Setup().PersistentVolumeClaims(ns).Delete("foo") + err := c.Setup(t).PersistentVolumeClaims(ns).Delete("foo") c.Validate(t, nil, err) } @@ -193,10 +193,10 @@ func TestPersistentVolumeClaimWatch(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePathWithPrefix("watch", getPersistentVolumeClaimsResoureName(), "", ""), + Path: testapi.Default.ResourcePathWithPrefix("watch", getPersistentVolumeClaimsResoureName(), "", ""), Query: url.Values{"resourceVersion": []string{}}}, Response: Response{StatusCode: 200}, } - _, err := c.Setup().PersistentVolumeClaims(api.NamespaceAll).Watch(labels.Everything(), fields.Everything(), "") + _, err := c.Setup(t).PersistentVolumeClaims(api.NamespaceAll).Watch(labels.Everything(), fields.Everything(), "") c.Validate(t, nil, err) } diff --git a/pkg/client/unversioned/pod_templates_test.go b/pkg/client/unversioned/pod_templates_test.go index 80fb9496171..5f35efa9d4f 100644 --- a/pkg/client/unversioned/pod_templates_test.go +++ b/pkg/client/unversioned/pod_templates_test.go @@ -42,14 +42,14 @@ func TestPodTemplateCreate(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "POST", - Path: testapi.ResourcePath(getPodTemplatesResoureName(), ns, ""), + Path: testapi.Default.ResourcePath(getPodTemplatesResoureName(), ns, ""), Query: buildQueryValues(nil), Body: &podTemplate, }, Response: Response{StatusCode: 200, Body: &podTemplate}, } - response, err := c.Setup().PodTemplates(ns).Create(&podTemplate) + response, err := c.Setup(t).PodTemplates(ns).Create(&podTemplate) c.Validate(t, response, err) } @@ -65,14 +65,14 @@ func TestPodTemplateGet(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getPodTemplatesResoureName(), ns, "abc"), + Path: testapi.Default.ResourcePath(getPodTemplatesResoureName(), ns, "abc"), Query: buildQueryValues(nil), Body: nil, }, Response: Response{StatusCode: 200, Body: podTemplate}, } - response, err := c.Setup().PodTemplates(ns).Get("abc") + response, err := c.Setup(t).PodTemplates(ns).Get("abc") c.Validate(t, response, err) } @@ -91,13 +91,13 @@ func TestPodTemplateList(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getPodTemplatesResoureName(), ns, ""), + Path: testapi.Default.ResourcePath(getPodTemplatesResoureName(), ns, ""), Query: buildQueryValues(nil), Body: nil, }, Response: Response{StatusCode: 200, Body: podTemplateList}, } - response, err := c.Setup().PodTemplates(ns).List(labels.Everything(), fields.Everything()) + response, err := c.Setup(t).PodTemplates(ns).List(labels.Everything(), fields.Everything()) c.Validate(t, response, err) } @@ -112,20 +112,20 @@ func TestPodTemplateUpdate(t *testing.T) { Template: api.PodTemplateSpec{}, } c := &testClient{ - Request: testRequest{Method: "PUT", Path: testapi.ResourcePath(getPodTemplatesResoureName(), ns, "abc"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "PUT", Path: testapi.Default.ResourcePath(getPodTemplatesResoureName(), ns, "abc"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: podTemplate}, } - response, err := c.Setup().PodTemplates(ns).Update(podTemplate) + response, err := c.Setup(t).PodTemplates(ns).Update(podTemplate) c.Validate(t, response, err) } func TestPodTemplateDelete(t *testing.T) { ns := api.NamespaceDefault c := &testClient{ - Request: testRequest{Method: "DELETE", Path: testapi.ResourcePath(getPodTemplatesResoureName(), ns, "foo"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "DELETE", Path: testapi.Default.ResourcePath(getPodTemplatesResoureName(), ns, "foo"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200}, } - err := c.Setup().PodTemplates(ns).Delete("foo", nil) + err := c.Setup(t).PodTemplates(ns).Delete("foo", nil) c.Validate(t, nil, err) } @@ -133,10 +133,10 @@ func TestPodTemplateWatch(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePathWithPrefix("watch", getPodTemplatesResoureName(), "", ""), + Path: testapi.Default.ResourcePathWithPrefix("watch", getPodTemplatesResoureName(), "", ""), Query: url.Values{"resourceVersion": []string{}}}, Response: Response{StatusCode: 200}, } - _, err := c.Setup().PodTemplates(api.NamespaceAll).Watch(labels.Everything(), fields.Everything(), "") + _, err := c.Setup(t).PodTemplates(api.NamespaceAll).Watch(labels.Everything(), fields.Everything(), "") c.Validate(t, nil, err) } diff --git a/pkg/client/unversioned/pods_test.go b/pkg/client/unversioned/pods_test.go index 280995e5739..ad28e089ddb 100644 --- a/pkg/client/unversioned/pods_test.go +++ b/pkg/client/unversioned/pods_test.go @@ -29,17 +29,17 @@ import ( func TestListEmptyPods(t *testing.T) { ns := api.NamespaceDefault c := &testClient{ - Request: testRequest{Method: "GET", Path: testapi.ResourcePath("pods", ns, ""), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "GET", Path: testapi.Default.ResourcePath("pods", ns, ""), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: &api.PodList{}}, } - podList, err := c.Setup().Pods(ns).List(labels.Everything(), fields.Everything()) + podList, err := c.Setup(t).Pods(ns).List(labels.Everything(), fields.Everything()) c.Validate(t, podList, err) } func TestListPods(t *testing.T) { ns := api.NamespaceDefault c := &testClient{ - Request: testRequest{Method: "GET", Path: testapi.ResourcePath("pods", ns, ""), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "GET", Path: testapi.Default.ResourcePath("pods", ns, ""), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: &api.PodList{ Items: []api.Pod{ @@ -58,17 +58,17 @@ func TestListPods(t *testing.T) { }, }, } - receivedPodList, err := c.Setup().Pods(ns).List(labels.Everything(), fields.Everything()) + receivedPodList, err := c.Setup(t).Pods(ns).List(labels.Everything(), fields.Everything()) c.Validate(t, receivedPodList, err) } func TestListPodsLabels(t *testing.T) { ns := api.NamespaceDefault - labelSelectorQueryParamName := api.LabelSelectorQueryParam(testapi.Version()) + labelSelectorQueryParamName := api.LabelSelectorQueryParam(testapi.Default.Version()) c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath("pods", ns, ""), + Path: testapi.Default.ResourcePath("pods", ns, ""), Query: buildQueryValues(url.Values{labelSelectorQueryParamName: []string{"foo=bar,name=baz"}})}, Response: Response{ StatusCode: 200, @@ -89,7 +89,7 @@ func TestListPodsLabels(t *testing.T) { }, }, } - c.Setup() + c.Setup(t) c.QueryValidator[labelSelectorQueryParamName] = validateLabels selector := labels.Set{"foo": "bar", "name": "baz"}.AsSelector() receivedPodList, err := c.Pods(ns).List(selector, fields.Everything()) @@ -99,7 +99,7 @@ func TestListPodsLabels(t *testing.T) { func TestGetPod(t *testing.T) { ns := api.NamespaceDefault c := &testClient{ - Request: testRequest{Method: "GET", Path: testapi.ResourcePath("pods", ns, "foo"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "GET", Path: testapi.Default.ResourcePath("pods", ns, "foo"), Query: buildQueryValues(nil)}, Response: Response{ StatusCode: 200, Body: &api.Pod{ @@ -115,14 +115,14 @@ func TestGetPod(t *testing.T) { }, }, } - receivedPod, err := c.Setup().Pods(ns).Get("foo") + receivedPod, err := c.Setup(t).Pods(ns).Get("foo") c.Validate(t, receivedPod, err) } func TestGetPodWithNoName(t *testing.T) { ns := api.NamespaceDefault c := &testClient{Error: true} - receivedPod, err := c.Setup().Pods(ns).Get("") + receivedPod, err := c.Setup(t).Pods(ns).Get("") if (err != nil) && (err.Error() != nameRequiredError) { t.Errorf("Expected error: %v, but got %v", nameRequiredError, err) } @@ -133,10 +133,10 @@ func TestGetPodWithNoName(t *testing.T) { func TestDeletePod(t *testing.T) { ns := api.NamespaceDefault c := &testClient{ - Request: testRequest{Method: "DELETE", Path: testapi.ResourcePath("pods", ns, "foo"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "DELETE", Path: testapi.Default.ResourcePath("pods", ns, "foo"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200}, } - err := c.Setup().Pods(ns).Delete("foo", nil) + err := c.Setup(t).Pods(ns).Delete("foo", nil) c.Validate(t, nil, err) } @@ -154,13 +154,13 @@ func TestCreatePod(t *testing.T) { }, } c := &testClient{ - Request: testRequest{Method: "POST", Path: testapi.ResourcePath("pods", ns, ""), Query: buildQueryValues(nil), Body: requestPod}, + Request: testRequest{Method: "POST", Path: testapi.Default.ResourcePath("pods", ns, ""), Query: buildQueryValues(nil), Body: requestPod}, Response: Response{ StatusCode: 200, Body: requestPod, }, } - receivedPod, err := c.Setup().Pods(ns).Create(requestPod) + receivedPod, err := c.Setup(t).Pods(ns).Create(requestPod) c.Validate(t, receivedPod, err) } @@ -180,9 +180,9 @@ func TestUpdatePod(t *testing.T) { }, } c := &testClient{ - Request: testRequest{Method: "PUT", Path: testapi.ResourcePath("pods", ns, "foo"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "PUT", Path: testapi.Default.ResourcePath("pods", ns, "foo"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: requestPod}, } - receivedPod, err := c.Setup().Pods(ns).Update(requestPod) + receivedPod, err := c.Setup(t).Pods(ns).Update(requestPod) c.Validate(t, receivedPod, err) } diff --git a/pkg/client/unversioned/replication_controllers_test.go b/pkg/client/unversioned/replication_controllers_test.go index c5a0cc15a94..6908f42a654 100644 --- a/pkg/client/unversioned/replication_controllers_test.go +++ b/pkg/client/unversioned/replication_controllers_test.go @@ -33,7 +33,7 @@ func TestListControllers(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getRCResourceName(), ns, ""), + Path: testapi.Default.ResourcePath(getRCResourceName(), ns, ""), }, Response: Response{StatusCode: 200, Body: &api.ReplicationControllerList{ @@ -55,7 +55,7 @@ func TestListControllers(t *testing.T) { }, }, } - receivedControllerList, err := c.Setup().ReplicationControllers(ns).List(labels.Everything()) + receivedControllerList, err := c.Setup(t).ReplicationControllers(ns).List(labels.Everything()) c.Validate(t, receivedControllerList, err) } @@ -63,7 +63,7 @@ func TestListControllers(t *testing.T) { func TestGetController(t *testing.T) { ns := api.NamespaceDefault c := &testClient{ - Request: testRequest{Method: "GET", Path: testapi.ResourcePath(getRCResourceName(), ns, "foo"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "GET", Path: testapi.Default.ResourcePath(getRCResourceName(), ns, "foo"), Query: buildQueryValues(nil)}, Response: Response{ StatusCode: 200, Body: &api.ReplicationController{ @@ -81,14 +81,14 @@ func TestGetController(t *testing.T) { }, }, } - receivedController, err := c.Setup().ReplicationControllers(ns).Get("foo") + receivedController, err := c.Setup(t).ReplicationControllers(ns).Get("foo") c.Validate(t, receivedController, err) } func TestGetControllerWithNoName(t *testing.T) { ns := api.NamespaceDefault c := &testClient{Error: true} - receivedPod, err := c.Setup().ReplicationControllers(ns).Get("") + receivedPod, err := c.Setup(t).ReplicationControllers(ns).Get("") if (err != nil) && (err.Error() != nameRequiredError) { t.Errorf("Expected error: %v, but got %v", nameRequiredError, err) } @@ -102,7 +102,7 @@ func TestUpdateController(t *testing.T) { ObjectMeta: api.ObjectMeta{Name: "foo", ResourceVersion: "1"}, } c := &testClient{ - Request: testRequest{Method: "PUT", Path: testapi.ResourcePath(getRCResourceName(), ns, "foo"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "PUT", Path: testapi.Default.ResourcePath(getRCResourceName(), ns, "foo"), Query: buildQueryValues(nil)}, Response: Response{ StatusCode: 200, Body: &api.ReplicationController{ @@ -120,17 +120,17 @@ func TestUpdateController(t *testing.T) { }, }, } - receivedController, err := c.Setup().ReplicationControllers(ns).Update(requestController) + receivedController, err := c.Setup(t).ReplicationControllers(ns).Update(requestController) c.Validate(t, receivedController, err) } func TestDeleteController(t *testing.T) { ns := api.NamespaceDefault c := &testClient{ - Request: testRequest{Method: "DELETE", Path: testapi.ResourcePath(getRCResourceName(), ns, "foo"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "DELETE", Path: testapi.Default.ResourcePath(getRCResourceName(), ns, "foo"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200}, } - err := c.Setup().ReplicationControllers(ns).Delete("foo") + err := c.Setup(t).ReplicationControllers(ns).Delete("foo") c.Validate(t, nil, err) } @@ -140,7 +140,7 @@ func TestCreateController(t *testing.T) { ObjectMeta: api.ObjectMeta{Name: "foo"}, } c := &testClient{ - Request: testRequest{Method: "POST", Path: testapi.ResourcePath(getRCResourceName(), ns, ""), Body: requestController, Query: buildQueryValues(nil)}, + Request: testRequest{Method: "POST", Path: testapi.Default.ResourcePath(getRCResourceName(), ns, ""), Body: requestController, Query: buildQueryValues(nil)}, Response: Response{ StatusCode: 200, Body: &api.ReplicationController{ @@ -158,6 +158,6 @@ func TestCreateController(t *testing.T) { }, }, } - receivedController, err := c.Setup().ReplicationControllers(ns).Create(requestController) + receivedController, err := c.Setup(t).ReplicationControllers(ns).Create(requestController) c.Validate(t, receivedController, err) } diff --git a/pkg/client/unversioned/request_test.go b/pkg/client/unversioned/request_test.go index fd4b9e24008..7fbe26c5556 100644 --- a/pkg/client/unversioned/request_test.go +++ b/pkg/client/unversioned/request_test.go @@ -47,7 +47,7 @@ import ( func TestRequestWithErrorWontChange(t *testing.T) { original := Request{ err: errors.New("test"), - apiVersion: testapi.Version(), + apiVersion: testapi.Default.Version(), } r := original changed := r.Param("foo", "bar"). @@ -269,7 +269,7 @@ func TestTransformResponse(t *testing.T) { {Response: &http.Response{StatusCode: 200, Body: ioutil.NopCloser(bytes.NewReader(invalid))}, Data: invalid}, } for i, test := range testCases { - r := NewRequest(nil, "", uri, testapi.Version(), testapi.Codec()) + r := NewRequest(nil, "", uri, testapi.Default.Version(), testapi.Default.Codec()) if test.Response.Body == nil { test.Response.Body = ioutil.NopCloser(bytes.NewReader([]byte{})) } @@ -407,7 +407,7 @@ func TestRequestWatch(t *testing.T) { }, { Request: &Request{ - codec: testapi.Codec(), + codec: testapi.Default.Codec(), client: clientFunc(func(req *http.Request) (*http.Response, error) { return &http.Response{StatusCode: http.StatusForbidden}, nil }), @@ -420,7 +420,7 @@ func TestRequestWatch(t *testing.T) { }, { Request: &Request{ - codec: testapi.Codec(), + codec: testapi.Default.Codec(), client: clientFunc(func(req *http.Request) (*http.Response, error) { return &http.Response{StatusCode: http.StatusUnauthorized}, nil }), @@ -433,11 +433,11 @@ func TestRequestWatch(t *testing.T) { }, { Request: &Request{ - codec: testapi.Codec(), + codec: testapi.Default.Codec(), client: clientFunc(func(req *http.Request) (*http.Response, error) { return &http.Response{ StatusCode: http.StatusUnauthorized, - Body: ioutil.NopCloser(bytes.NewReader([]byte(runtime.EncodeOrDie(testapi.Codec(), &api.Status{ + Body: ioutil.NopCloser(bytes.NewReader([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), &api.Status{ Status: api.StatusFailure, Reason: api.StatusReasonUnauthorized, })))), @@ -537,7 +537,7 @@ func TestRequestStream(t *testing.T) { client: clientFunc(func(req *http.Request) (*http.Response, error) { return &http.Response{ StatusCode: http.StatusUnauthorized, - Body: ioutil.NopCloser(bytes.NewReader([]byte(runtime.EncodeOrDie(testapi.Codec(), &api.Status{ + Body: ioutil.NopCloser(bytes.NewReader([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), &api.Status{ Status: api.StatusFailure, Reason: api.StatusReasonUnauthorized, })))), @@ -629,7 +629,7 @@ func TestRequestUpgrade(t *testing.T) { Err: true, }, { - Request: NewRequest(nil, "", uri, testapi.Version(), testapi.Codec()), + Request: NewRequest(nil, "", uri, testapi.Default.Version(), testapi.Default.Codec()), Config: &Config{ Username: "u", Password: "p", @@ -638,7 +638,7 @@ func TestRequestUpgrade(t *testing.T) { Err: false, }, { - Request: NewRequest(nil, "", uri, testapi.Version(), testapi.Codec()), + Request: NewRequest(nil, "", uri, testapi.Default.Version(), testapi.Default.Codec()), Config: &Config{ BearerToken: "b", }, @@ -719,7 +719,7 @@ func TestDoRequestNewWay(t *testing.T) { Port: 12345, TargetPort: util.NewIntOrStringFromInt(12345), }}}} - expectedBody, _ := testapi.Codec().Encode(expectedObj) + expectedBody, _ := testapi.Default.Codec().Encode(expectedObj) fakeHandler := util.FakeHandler{ StatusCode: 200, ResponseBody: string(expectedBody), @@ -727,7 +727,7 @@ func TestDoRequestNewWay(t *testing.T) { } testServer := httptest.NewServer(&fakeHandler) defer testServer.Close() - c := NewOrDie(&Config{Host: testServer.URL, Version: testapi.Version(), Username: "user", Password: "pass"}) + c := NewOrDie(&Config{Host: testServer.URL, Version: testapi.Default.Version(), Username: "user", Password: "pass"}) obj, err := c.Verb("POST"). Prefix("foo", "bar"). Suffix("baz"). @@ -743,7 +743,7 @@ func TestDoRequestNewWay(t *testing.T) { } else if !api.Semantic.DeepDerivative(expectedObj, obj) { t.Errorf("Expected: %#v, got %#v", expectedObj, obj) } - requestURL := testapi.ResourcePathWithPrefix("foo/bar", "", "", "baz") + requestURL := testapi.Default.ResourcePathWithPrefix("foo/bar", "", "", "baz") requestURL += "?timeout=1s" fakeHandler.ValidateRequest(t, requestURL, "POST", &reqBody) if fakeHandler.RequestReceived.Header["Authorization"] == nil { @@ -767,7 +767,7 @@ func TestCheckRetryClosesBody(t *testing.T) { })) defer testServer.Close() - c := NewOrDie(&Config{Host: testServer.URL, Version: testapi.Version(), Username: "user", Password: "pass"}) + c := NewOrDie(&Config{Host: testServer.URL, Version: testapi.Default.Version(), Username: "user", Password: "pass"}) _, err := c.Verb("POST"). Prefix("foo", "bar"). Suffix("baz"). @@ -796,7 +796,7 @@ func BenchmarkCheckRetryClosesBody(t *testing.B) { })) defer testServer.Close() - c := NewOrDie(&Config{Host: testServer.URL, Version: testapi.Version(), Username: "user", Password: "pass"}) + c := NewOrDie(&Config{Host: testServer.URL, Version: testapi.Default.Version(), Username: "user", Password: "pass"}) r := c.Verb("POST"). Prefix("foo", "bar"). Suffix("baz"). @@ -811,20 +811,20 @@ func BenchmarkCheckRetryClosesBody(t *testing.B) { } func TestDoRequestNewWayReader(t *testing.T) { reqObj := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}} - reqBodyExpected, _ := testapi.Codec().Encode(reqObj) + reqBodyExpected, _ := testapi.Default.Codec().Encode(reqObj) expectedObj := &api.Service{Spec: api.ServiceSpec{Ports: []api.ServicePort{{ Protocol: "TCP", Port: 12345, TargetPort: util.NewIntOrStringFromInt(12345), }}}} - expectedBody, _ := testapi.Codec().Encode(expectedObj) + expectedBody, _ := testapi.Default.Codec().Encode(expectedObj) fakeHandler := util.FakeHandler{ StatusCode: 200, ResponseBody: string(expectedBody), T: t, } testServer := httptest.NewServer(&fakeHandler) - c := NewOrDie(&Config{Host: testServer.URL, Version: testapi.Version(), Username: "user", Password: "pass"}) + c := NewOrDie(&Config{Host: testServer.URL, Version: testapi.Default.Version(), Username: "user", Password: "pass"}) obj, err := c.Verb("POST"). Resource("bar"). Name("baz"). @@ -843,8 +843,8 @@ func TestDoRequestNewWayReader(t *testing.T) { t.Errorf("Expected: %#v, got %#v", expectedObj, obj) } tmpStr := string(reqBodyExpected) - requestURL := testapi.ResourcePathWithPrefix("foo", "bar", "", "baz") - requestURL += "?" + api.LabelSelectorQueryParam(testapi.Version()) + "=name%3Dfoo&timeout=1s" + requestURL := testapi.Default.ResourcePathWithPrefix("foo", "bar", "", "baz") + requestURL += "?" + api.LabelSelectorQueryParam(testapi.Default.Version()) + "=name%3Dfoo&timeout=1s" fakeHandler.ValidateRequest(t, requestURL, "POST", &tmpStr) if fakeHandler.RequestReceived.Header["Authorization"] == nil { t.Errorf("Request is missing authorization header: %#v", *fakeHandler.RequestReceived) @@ -853,20 +853,20 @@ func TestDoRequestNewWayReader(t *testing.T) { func TestDoRequestNewWayObj(t *testing.T) { reqObj := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}} - reqBodyExpected, _ := testapi.Codec().Encode(reqObj) + reqBodyExpected, _ := testapi.Default.Codec().Encode(reqObj) expectedObj := &api.Service{Spec: api.ServiceSpec{Ports: []api.ServicePort{{ Protocol: "TCP", Port: 12345, TargetPort: util.NewIntOrStringFromInt(12345), }}}} - expectedBody, _ := testapi.Codec().Encode(expectedObj) + expectedBody, _ := testapi.Default.Codec().Encode(expectedObj) fakeHandler := util.FakeHandler{ StatusCode: 200, ResponseBody: string(expectedBody), T: t, } testServer := httptest.NewServer(&fakeHandler) - c := NewOrDie(&Config{Host: testServer.URL, Version: testapi.Version(), Username: "user", Password: "pass"}) + c := NewOrDie(&Config{Host: testServer.URL, Version: testapi.Default.Version(), Username: "user", Password: "pass"}) obj, err := c.Verb("POST"). Suffix("baz"). Name("bar"). @@ -885,8 +885,8 @@ func TestDoRequestNewWayObj(t *testing.T) { t.Errorf("Expected: %#v, got %#v", expectedObj, obj) } tmpStr := string(reqBodyExpected) - requestURL := testapi.ResourcePath("foo", "", "bar/baz") - requestURL += "?" + api.LabelSelectorQueryParam(testapi.Version()) + "=name%3Dfoo&timeout=1s" + requestURL := testapi.Default.ResourcePath("foo", "", "bar/baz") + requestURL += "?" + api.LabelSelectorQueryParam(testapi.Default.Version()) + "=name%3Dfoo&timeout=1s" fakeHandler.ValidateRequest(t, requestURL, "POST", &tmpStr) if fakeHandler.RequestReceived.Header["Authorization"] == nil { t.Errorf("Request is missing authorization header: %#v", *fakeHandler.RequestReceived) @@ -895,7 +895,7 @@ func TestDoRequestNewWayObj(t *testing.T) { func TestDoRequestNewWayFile(t *testing.T) { reqObj := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}} - reqBodyExpected, err := testapi.Codec().Encode(reqObj) + reqBodyExpected, err := testapi.Default.Codec().Encode(reqObj) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -915,14 +915,14 @@ func TestDoRequestNewWayFile(t *testing.T) { Port: 12345, TargetPort: util.NewIntOrStringFromInt(12345), }}}} - expectedBody, _ := testapi.Codec().Encode(expectedObj) + expectedBody, _ := testapi.Default.Codec().Encode(expectedObj) fakeHandler := util.FakeHandler{ StatusCode: 200, ResponseBody: string(expectedBody), T: t, } testServer := httptest.NewServer(&fakeHandler) - c := NewOrDie(&Config{Host: testServer.URL, Version: testapi.Version(), Username: "user", Password: "pass"}) + c := NewOrDie(&Config{Host: testServer.URL, Version: testapi.Default.Version(), Username: "user", Password: "pass"}) wasCreated := true obj, err := c.Verb("POST"). Prefix("foo/bar", "baz"). @@ -942,7 +942,7 @@ func TestDoRequestNewWayFile(t *testing.T) { t.Errorf("expected object was not created") } tmpStr := string(reqBodyExpected) - requestURL := testapi.ResourcePathWithPrefix("foo/bar/baz", "", "", "") + requestURL := testapi.Default.ResourcePathWithPrefix("foo/bar/baz", "", "", "") requestURL += "?timeout=1s" fakeHandler.ValidateRequest(t, requestURL, "POST", &tmpStr) if fakeHandler.RequestReceived.Header["Authorization"] == nil { @@ -952,7 +952,7 @@ func TestDoRequestNewWayFile(t *testing.T) { func TestWasCreated(t *testing.T) { reqObj := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}} - reqBodyExpected, err := testapi.Codec().Encode(reqObj) + reqBodyExpected, err := testapi.Default.Codec().Encode(reqObj) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -962,14 +962,14 @@ func TestWasCreated(t *testing.T) { Port: 12345, TargetPort: util.NewIntOrStringFromInt(12345), }}}} - expectedBody, _ := testapi.Codec().Encode(expectedObj) + expectedBody, _ := testapi.Default.Codec().Encode(expectedObj) fakeHandler := util.FakeHandler{ StatusCode: 201, ResponseBody: string(expectedBody), T: t, } testServer := httptest.NewServer(&fakeHandler) - c := NewOrDie(&Config{Host: testServer.URL, Version: testapi.Version(), Username: "user", Password: "pass"}) + c := NewOrDie(&Config{Host: testServer.URL, Version: testapi.Default.Version(), Username: "user", Password: "pass"}) wasCreated := false obj, err := c.Verb("PUT"). Prefix("foo/bar", "baz"). @@ -990,7 +990,7 @@ func TestWasCreated(t *testing.T) { } tmpStr := string(reqBodyExpected) - requestURL := testapi.ResourcePathWithPrefix("foo/bar/baz", "", "", "") + requestURL := testapi.Default.ResourcePathWithPrefix("foo/bar/baz", "", "", "") requestURL += "?timeout=1s" fakeHandler.ValidateRequest(t, requestURL, "PUT", &tmpStr) if fakeHandler.RequestReceived.Header["Authorization"] == nil { @@ -1196,7 +1196,7 @@ func TestWatch(t *testing.T) { s, err := New(&Config{ Host: testServer.URL, - Version: testapi.Version(), + Version: testapi.Default.Version(), Username: "user", Password: "pass", }) @@ -1246,7 +1246,7 @@ func TestStream(t *testing.T) { s, err := New(&Config{ Host: testServer.URL, - Version: testapi.Version(), + Version: testapi.Default.Version(), Username: "user", Password: "pass", }) diff --git a/pkg/client/unversioned/resource_quotas_test.go b/pkg/client/unversioned/resource_quotas_test.go index 72df0528e53..4c01070ae85 100644 --- a/pkg/client/unversioned/resource_quotas_test.go +++ b/pkg/client/unversioned/resource_quotas_test.go @@ -52,14 +52,14 @@ func TestResourceQuotaCreate(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "POST", - Path: testapi.ResourcePath(getResourceQuotasResoureName(), ns, ""), + Path: testapi.Default.ResourcePath(getResourceQuotasResoureName(), ns, ""), Query: buildQueryValues(nil), Body: resourceQuota, }, Response: Response{StatusCode: 200, Body: resourceQuota}, } - response, err := c.Setup().ResourceQuotas(ns).Create(resourceQuota) + response, err := c.Setup(t).ResourceQuotas(ns).Create(resourceQuota) c.Validate(t, response, err) } @@ -84,14 +84,14 @@ func TestResourceQuotaGet(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getResourceQuotasResoureName(), ns, "abc"), + Path: testapi.Default.ResourcePath(getResourceQuotasResoureName(), ns, "abc"), Query: buildQueryValues(nil), Body: nil, }, Response: Response{StatusCode: 200, Body: resourceQuota}, } - response, err := c.Setup().ResourceQuotas(ns).Get("abc") + response, err := c.Setup(t).ResourceQuotas(ns).Get("abc") c.Validate(t, response, err) } @@ -108,13 +108,13 @@ func TestResourceQuotaList(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath(getResourceQuotasResoureName(), ns, ""), + Path: testapi.Default.ResourcePath(getResourceQuotasResoureName(), ns, ""), Query: buildQueryValues(nil), Body: nil, }, Response: Response{StatusCode: 200, Body: resourceQuotaList}, } - response, err := c.Setup().ResourceQuotas(ns).List(labels.Everything()) + response, err := c.Setup(t).ResourceQuotas(ns).List(labels.Everything()) c.Validate(t, response, err) } @@ -138,10 +138,10 @@ func TestResourceQuotaUpdate(t *testing.T) { }, } c := &testClient{ - Request: testRequest{Method: "PUT", Path: testapi.ResourcePath(getResourceQuotasResoureName(), ns, "abc"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "PUT", Path: testapi.Default.ResourcePath(getResourceQuotasResoureName(), ns, "abc"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: resourceQuota}, } - response, err := c.Setup().ResourceQuotas(ns).Update(resourceQuota) + response, err := c.Setup(t).ResourceQuotas(ns).Update(resourceQuota) c.Validate(t, response, err) } @@ -167,21 +167,21 @@ func TestResourceQuotaStatusUpdate(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "PUT", - Path: testapi.ResourcePath(getResourceQuotasResoureName(), ns, "abc") + "/status", + Path: testapi.Default.ResourcePath(getResourceQuotasResoureName(), ns, "abc") + "/status", Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: resourceQuota}, } - response, err := c.Setup().ResourceQuotas(ns).UpdateStatus(resourceQuota) + response, err := c.Setup(t).ResourceQuotas(ns).UpdateStatus(resourceQuota) c.Validate(t, response, err) } func TestResourceQuotaDelete(t *testing.T) { ns := api.NamespaceDefault c := &testClient{ - Request: testRequest{Method: "DELETE", Path: testapi.ResourcePath(getResourceQuotasResoureName(), ns, "foo"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "DELETE", Path: testapi.Default.ResourcePath(getResourceQuotasResoureName(), ns, "foo"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200}, } - err := c.Setup().ResourceQuotas(ns).Delete("foo") + err := c.Setup(t).ResourceQuotas(ns).Delete("foo") c.Validate(t, nil, err) } @@ -189,10 +189,10 @@ func TestResourceQuotaWatch(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePathWithPrefix("watch", getResourceQuotasResoureName(), "", ""), + Path: testapi.Default.ResourcePathWithPrefix("watch", getResourceQuotasResoureName(), "", ""), Query: url.Values{"resourceVersion": []string{}}}, Response: Response{StatusCode: 200}, } - _, err := c.Setup().ResourceQuotas(api.NamespaceAll).Watch(labels.Everything(), fields.Everything(), "") + _, err := c.Setup(t).ResourceQuotas(api.NamespaceAll).Watch(labels.Everything(), fields.Everything(), "") c.Validate(t, nil, err) } diff --git a/pkg/client/unversioned/restclient_test.go b/pkg/client/unversioned/restclient_test.go index 38b037f4086..942ccf5570e 100644 --- a/pkg/client/unversioned/restclient_test.go +++ b/pkg/client/unversioned/restclient_test.go @@ -35,8 +35,8 @@ func TestSetsCodec(t *testing.T) { Prefix string Codec runtime.Codec }{ - testapi.Version(): {false, "/api/" + testapi.Version() + "/", testapi.Codec()}, - "invalidVersion": {true, "", nil}, + testapi.Default.Version(): {false, "/api/" + testapi.Default.Version() + "/", testapi.Default.Codec()}, + "invalidVersion": {true, "", nil}, } for version, expected := range testCases { client, err := New(&Config{Host: "127.0.0.1", Version: version}) @@ -60,13 +60,13 @@ func TestSetsCodec(t *testing.T) { } func TestRESTClientRequires(t *testing.T) { - if _, err := RESTClientFor(&Config{Host: "127.0.0.1", Version: "", Codec: testapi.Codec()}); err == nil { + if _, err := RESTClientFor(&Config{Host: "127.0.0.1", Version: "", Codec: testapi.Default.Codec()}); err == nil { t.Errorf("unexpected non-error") } - if _, err := RESTClientFor(&Config{Host: "127.0.0.1", Version: testapi.Version()}); err == nil { + if _, err := RESTClientFor(&Config{Host: "127.0.0.1", Version: testapi.Default.Version()}); err == nil { t.Errorf("unexpected non-error") } - if _, err := RESTClientFor(&Config{Host: "127.0.0.1", Version: testapi.Version(), Codec: testapi.Codec()}); err != nil { + if _, err := RESTClientFor(&Config{Host: "127.0.0.1", Version: testapi.Default.Version(), Codec: testapi.Default.Codec()}); err != nil { t.Errorf("unexpected error: %v", err) } } @@ -79,17 +79,17 @@ func TestValidatesHostParameter(t *testing.T) { URL string Err bool }{ - {"127.0.0.1", "", "http://127.0.0.1/" + testapi.Version() + "/", false}, - {"127.0.0.1:8080", "", "http://127.0.0.1:8080/" + testapi.Version() + "/", false}, - {"foo.bar.com", "", "http://foo.bar.com/" + testapi.Version() + "/", false}, - {"http://host/prefix", "", "http://host/prefix/" + testapi.Version() + "/", false}, - {"http://host", "", "http://host/" + testapi.Version() + "/", false}, - {"http://host", "/", "http://host/" + testapi.Version() + "/", false}, - {"http://host", "/other", "http://host/other/" + testapi.Version() + "/", false}, + {"127.0.0.1", "", "http://127.0.0.1/" + testapi.Default.Version() + "/", false}, + {"127.0.0.1:8080", "", "http://127.0.0.1:8080/" + testapi.Default.Version() + "/", false}, + {"foo.bar.com", "", "http://foo.bar.com/" + testapi.Default.Version() + "/", false}, + {"http://host/prefix", "", "http://host/prefix/" + testapi.Default.Version() + "/", false}, + {"http://host", "", "http://host/" + testapi.Default.Version() + "/", false}, + {"http://host", "/", "http://host/" + testapi.Default.Version() + "/", false}, + {"http://host", "/other", "http://host/other/" + testapi.Default.Version() + "/", false}, {"host/server", "", "", true}, } for i, testCase := range testCases { - c, err := RESTClientFor(&Config{Host: testCase.Host, Prefix: testCase.Prefix, Version: testapi.Version(), Codec: testapi.Codec()}) + c, err := RESTClientFor(&Config{Host: testCase.Host, Prefix: testCase.Prefix, Version: testapi.Default.Version(), Codec: testapi.Default.Codec()}) switch { case err == nil && testCase.Err: t.Errorf("expected error but was nil") @@ -120,8 +120,8 @@ func TestDoRequestBearer(t *testing.T) { request, _ := http.NewRequest("GET", testServer.URL, nil) c, err := RESTClientFor(&Config{ Host: testServer.URL, - Version: testapi.Version(), - Codec: testapi.Codec(), + Version: testapi.Default.Version(), + Codec: testapi.Default.Codec(), BearerToken: "test", }) if err != nil { @@ -148,8 +148,8 @@ func TestDoRequestWithoutPassword(t *testing.T) { defer testServer.Close() c, err := RESTClientFor(&Config{ Host: testServer.URL, - Version: testapi.Version(), - Codec: testapi.Codec(), + Version: testapi.Default.Version(), + Codec: testapi.Default.Codec(), Username: "test", }) if err != nil { @@ -172,7 +172,7 @@ func TestDoRequestWithoutPassword(t *testing.T) { if body != nil { t.Errorf("Expected nil body, but saw: '%s'", string(body)) } - fakeHandler.ValidateRequest(t, "/"+testapi.Version()+"/test", "GET", nil) + fakeHandler.ValidateRequest(t, "/"+testapi.Default.Version()+"/test", "GET", nil) } func TestDoRequestSuccess(t *testing.T) { @@ -187,8 +187,8 @@ func TestDoRequestSuccess(t *testing.T) { defer testServer.Close() c, err := RESTClientFor(&Config{ Host: testServer.URL, - Version: testapi.Version(), - Codec: testapi.Codec(), + Version: testapi.Default.Version(), + Codec: testapi.Default.Codec(), Username: "user", Password: "pass", }) @@ -209,7 +209,7 @@ func TestDoRequestSuccess(t *testing.T) { if !reflect.DeepEqual(status, statusOut) { t.Errorf("Unexpected mis-match. Expected %#v. Saw %#v", status, statusOut) } - fakeHandler.ValidateRequest(t, "/"+testapi.Version()+"/test", "GET", nil) + fakeHandler.ValidateRequest(t, "/"+testapi.Default.Version()+"/test", "GET", nil) } func TestDoRequestFailed(t *testing.T) { @@ -230,8 +230,8 @@ func TestDoRequestFailed(t *testing.T) { defer testServer.Close() c, err := RESTClientFor(&Config{ Host: testServer.URL, - Version: testapi.Version(), - Codec: testapi.Codec(), + Version: testapi.Default.Version(), + Codec: testapi.Default.Codec(), }) if err != nil { t.Fatalf("unexpected error: %v", err) @@ -262,8 +262,8 @@ func TestDoRequestCreated(t *testing.T) { defer testServer.Close() c, err := RESTClientFor(&Config{ Host: testServer.URL, - Version: testapi.Version(), - Codec: testapi.Codec(), + Version: testapi.Default.Version(), + Codec: testapi.Default.Codec(), Username: "user", Password: "pass", }) @@ -285,5 +285,5 @@ func TestDoRequestCreated(t *testing.T) { if !reflect.DeepEqual(status, statusOut) { t.Errorf("Unexpected mis-match. Expected %#v. Saw %#v", status, statusOut) } - fakeHandler.ValidateRequest(t, "/"+testapi.Version()+"/test", "GET", nil) + fakeHandler.ValidateRequest(t, "/"+testapi.Default.Version()+"/test", "GET", nil) } diff --git a/pkg/client/unversioned/services_test.go b/pkg/client/unversioned/services_test.go index e97f62d37a6..fb1e638f056 100644 --- a/pkg/client/unversioned/services_test.go +++ b/pkg/client/unversioned/services_test.go @@ -30,7 +30,7 @@ func TestListServices(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath("services", ns, ""), + Path: testapi.Default.ResourcePath("services", ns, ""), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: &api.ServiceList{ @@ -53,18 +53,18 @@ func TestListServices(t *testing.T) { }, }, } - receivedServiceList, err := c.Setup().Services(ns).List(labels.Everything()) + receivedServiceList, err := c.Setup(t).Services(ns).List(labels.Everything()) t.Logf("received services: %v %#v", err, receivedServiceList) c.Validate(t, receivedServiceList, err) } func TestListServicesLabels(t *testing.T) { ns := api.NamespaceDefault - labelSelectorQueryParamName := api.LabelSelectorQueryParam(testapi.Version()) + labelSelectorQueryParamName := api.LabelSelectorQueryParam(testapi.Default.Version()) c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath("services", ns, ""), + Path: testapi.Default.ResourcePath("services", ns, ""), Query: buildQueryValues(url.Values{labelSelectorQueryParamName: []string{"foo=bar,name=baz"}})}, Response: Response{StatusCode: 200, Body: &api.ServiceList{ @@ -87,7 +87,7 @@ func TestListServicesLabels(t *testing.T) { }, }, } - c.Setup() + c.Setup(t) c.QueryValidator[labelSelectorQueryParamName] = validateLabels selector := labels.Set{"foo": "bar", "name": "baz"}.AsSelector() receivedServiceList, err := c.Services(ns).List(selector) @@ -99,18 +99,18 @@ func TestGetService(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePath("services", ns, "1"), + Path: testapi.Default.ResourcePath("services", ns, "1"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: &api.Service{ObjectMeta: api.ObjectMeta{Name: "service-1"}}}, } - response, err := c.Setup().Services(ns).Get("1") + response, err := c.Setup(t).Services(ns).Get("1") c.Validate(t, response, err) } func TestGetServiceWithNoName(t *testing.T) { ns := api.NamespaceDefault c := &testClient{Error: true} - receivedPod, err := c.Setup().Services(ns).Get("") + receivedPod, err := c.Setup(t).Services(ns).Get("") if (err != nil) && (err.Error() != nameRequiredError) { t.Errorf("Expected error: %v, but got %v", nameRequiredError, err) } @@ -123,12 +123,12 @@ func TestCreateService(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "POST", - Path: testapi.ResourcePath("services", ns, ""), + Path: testapi.Default.ResourcePath("services", ns, ""), Body: &api.Service{ObjectMeta: api.ObjectMeta{Name: "service-1"}}, Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: &api.Service{ObjectMeta: api.ObjectMeta{Name: "service-1"}}}, } - response, err := c.Setup().Services(ns).Create(&api.Service{ObjectMeta: api.ObjectMeta{Name: "service-1"}}) + response, err := c.Setup(t).Services(ns).Create(&api.Service{ObjectMeta: api.ObjectMeta{Name: "service-1"}}) c.Validate(t, response, err) } @@ -136,20 +136,20 @@ func TestUpdateService(t *testing.T) { ns := api.NamespaceDefault svc := &api.Service{ObjectMeta: api.ObjectMeta{Name: "service-1", ResourceVersion: "1"}} c := &testClient{ - Request: testRequest{Method: "PUT", Path: testapi.ResourcePath("services", ns, "service-1"), Body: svc, Query: buildQueryValues(nil)}, + Request: testRequest{Method: "PUT", Path: testapi.Default.ResourcePath("services", ns, "service-1"), Body: svc, Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200, Body: svc}, } - response, err := c.Setup().Services(ns).Update(svc) + response, err := c.Setup(t).Services(ns).Update(svc) c.Validate(t, response, err) } func TestDeleteService(t *testing.T) { ns := api.NamespaceDefault c := &testClient{ - Request: testRequest{Method: "DELETE", Path: testapi.ResourcePath("services", ns, "1"), Query: buildQueryValues(nil)}, + Request: testRequest{Method: "DELETE", Path: testapi.Default.ResourcePath("services", ns, "1"), Query: buildQueryValues(nil)}, Response: Response{StatusCode: 200}, } - err := c.Setup().Services(ns).Delete("1") + err := c.Setup(t).Services(ns).Delete("1") c.Validate(t, nil, err) } @@ -159,11 +159,11 @@ func TestServiceProxyGet(t *testing.T) { c := &testClient{ Request: testRequest{ Method: "GET", - Path: testapi.ResourcePathWithPrefix("proxy", "services", ns, "service-1") + "/foo", + Path: testapi.Default.ResourcePathWithPrefix("proxy", "services", ns, "service-1") + "/foo", Query: buildQueryValues(url.Values{"param-name": []string{"param-value"}}), }, Response: Response{StatusCode: 200, RawBody: &body}, } - response, err := c.Setup().Services(ns).ProxyGet("service-1", "foo", map[string]string{"param-name": "param-value"}).DoRaw() + response, err := c.Setup(t).Services(ns).ProxyGet("service-1", "foo", map[string]string{"param-name": "param-value"}).DoRaw() c.ValidateRaw(t, response, err) } diff --git a/pkg/controller/autoscaler/horizontalpodautoscaler_controller_test.go b/pkg/controller/autoscaler/horizontalpodautoscaler_controller_test.go index 276dcff2c84..1147cc3087c 100644 --- a/pkg/controller/autoscaler/horizontalpodautoscaler_controller_test.go +++ b/pkg/controller/autoscaler/horizontalpodautoscaler_controller_test.go @@ -80,7 +80,7 @@ func makeTestServer(t *testing.T, responses map[string]*serverResponse) (*httpte mkHandler := func(url string, response serverResponse) *util.FakeHandler { handler := util.FakeHandler{ StatusCode: response.statusCode, - ResponseBody: runtime.EncodeOrDie(testapi.Codec(), response.obj.(runtime.Object)), + ResponseBody: runtime.EncodeOrDie(testapi.Experimental.Codec(), response.obj.(runtime.Object)), } mux.Handle(url, &handler) glog.Infof("Will handle %s", url) @@ -176,8 +176,8 @@ func TestSyncEndpointsItemsPreserveNoSelector(t *testing.T) { }) defer testServer.Close() - kubeClient := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Version()}) - expClient := client.NewExperimentalOrDie(&client.Config{Host: testServer.URL, Version: testapi.Version()}) + kubeClient := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Experimental.Version()}) + expClient := client.NewExperimentalOrDie(&client.Config{Host: testServer.URL, Version: testapi.Experimental.Version()}) fakeRC := fakeResourceConsumptionClient{metrics: map[api.ResourceName]expapi.ResourceConsumption{ api.ResourceCPU: {Resource: api.ResourceCPU, Quantity: resource.MustParse("650m")}, diff --git a/pkg/controller/autoscaler/metrics/metrics_client_test.go b/pkg/controller/autoscaler/metrics/metrics_client_test.go index 22277e8806a..155842965cf 100644 --- a/pkg/controller/autoscaler/metrics/metrics_client_test.go +++ b/pkg/controller/autoscaler/metrics/metrics_client_test.go @@ -57,7 +57,7 @@ func makeTestServer(t *testing.T, responses map[string]*serverResponse) (*httpte mkHandler := func(url string, response serverResponse) *util.FakeHandler { handler := util.FakeHandler{ StatusCode: response.statusCode, - ResponseBody: runtime.EncodeOrDie(testapi.Codec(), response.obj.(runtime.Object)), + ResponseBody: runtime.EncodeOrDie(testapi.Experimental.Codec(), response.obj.(runtime.Object)), } mux.Handle(url, &handler) glog.Infof("Will handle %s", url) @@ -119,7 +119,7 @@ func TestHeapsterResourceConsumptionGet(t *testing.T) { }) defer testServer.Close() - kubeClient := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Version()}) + kubeClient := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Experimental.Version()}) metricsClient := NewHeapsterMetricsClient(kubeClient) diff --git a/pkg/controller/controller_utils_test.go b/pkg/controller/controller_utils_test.go index f7fa45449f8..ef6d69036df 100644 --- a/pkg/controller/controller_utils_test.go +++ b/pkg/controller/controller_utils_test.go @@ -48,7 +48,7 @@ func NewFakeControllerExpectationsLookup(ttl time.Duration) (*ControllerExpectat func newReplicationController(replicas int) *api.ReplicationController { rc := &api.ReplicationController{ - TypeMeta: api.TypeMeta{APIVersion: testapi.Version()}, + TypeMeta: api.TypeMeta{APIVersion: testapi.Default.Version()}, ObjectMeta: api.ObjectMeta{ UID: util.NewUUID(), Name: "foobar", @@ -181,14 +181,14 @@ func TestControllerExpectations(t *testing.T) { func TestCreateReplica(t *testing.T) { ns := api.NamespaceDefault - body := runtime.EncodeOrDie(testapi.Codec(), &api.Pod{ObjectMeta: api.ObjectMeta{Name: "empty_pod"}}) + body := runtime.EncodeOrDie(testapi.Default.Codec(), &api.Pod{ObjectMeta: api.ObjectMeta{Name: "empty_pod"}}) fakeHandler := util.FakeHandler{ StatusCode: 200, ResponseBody: string(body), } testServer := httptest.NewServer(&fakeHandler) defer testServer.Close() - client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Default.Version()}) podControl := RealPodControl{ KubeClient: client, @@ -207,7 +207,7 @@ func TestCreateReplica(t *testing.T) { }, Spec: controllerSpec.Spec.Template.Spec, } - fakeHandler.ValidateRequest(t, testapi.ResourcePath("pods", api.NamespaceDefault, ""), "POST", nil) + fakeHandler.ValidateRequest(t, testapi.Default.ResourcePath("pods", api.NamespaceDefault, ""), "POST", nil) actualPod, err := client.Codec.Decode([]byte(fakeHandler.RequestBody)) if err != nil { t.Errorf("Unexpected error: %#v", err) diff --git a/pkg/controller/endpoint/endpoints_controller_test.go b/pkg/controller/endpoint/endpoints_controller_test.go index a80cec37268..49314368ffd 100644 --- a/pkg/controller/endpoint/endpoints_controller_test.go +++ b/pkg/controller/endpoint/endpoints_controller_test.go @@ -35,7 +35,7 @@ import ( func addPods(store cache.Store, namespace string, nPods int, nPorts int) { for i := 0; i < nPods; i++ { p := &api.Pod{ - TypeMeta: api.TypeMeta{APIVersion: testapi.Version()}, + TypeMeta: api.TypeMeta{APIVersion: testapi.Default.Version()}, ObjectMeta: api.ObjectMeta{ Namespace: namespace, Name: fmt.Sprintf("pod%d", i), @@ -156,11 +156,11 @@ type serverResponse struct { func makeTestServer(t *testing.T, namespace string, endpointsResponse serverResponse) (*httptest.Server, *util.FakeHandler) { fakeEndpointsHandler := util.FakeHandler{ StatusCode: endpointsResponse.statusCode, - ResponseBody: runtime.EncodeOrDie(testapi.Codec(), endpointsResponse.obj.(runtime.Object)), + ResponseBody: runtime.EncodeOrDie(testapi.Default.Codec(), endpointsResponse.obj.(runtime.Object)), } mux := http.NewServeMux() - mux.Handle(testapi.ResourcePath("endpoints", namespace, ""), &fakeEndpointsHandler) - mux.Handle(testapi.ResourcePath("endpoints/", namespace, ""), &fakeEndpointsHandler) + mux.Handle(testapi.Default.ResourcePath("endpoints", namespace, ""), &fakeEndpointsHandler) + mux.Handle(testapi.Default.ResourcePath("endpoints/", namespace, ""), &fakeEndpointsHandler) mux.HandleFunc("/", func(res http.ResponseWriter, req *http.Request) { t.Errorf("unexpected request: %v", req.RequestURI) res.WriteHeader(http.StatusNotFound) @@ -183,7 +183,7 @@ func TestSyncEndpointsItemsPreserveNoSelector(t *testing.T) { }}, }}) defer testServer.Close() - client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Default.Version()}) endpoints := NewEndpointController(client) endpoints.serviceStore.Store.Add(&api.Service{ ObjectMeta: api.ObjectMeta{Name: "foo", Namespace: ns}, @@ -215,7 +215,7 @@ func TestCheckLeftoverEndpoints(t *testing.T) { }}, }}) defer testServer.Close() - client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Default.Version()}) endpoints := NewEndpointController(client) endpoints.checkLeftoverEndpoints() @@ -243,7 +243,7 @@ func TestSyncEndpointsProtocolTCP(t *testing.T) { }}, }}) defer testServer.Close() - client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Default.Version()}) endpoints := NewEndpointController(client) endpoints.serviceStore.Store.Add(&api.Service{ ObjectMeta: api.ObjectMeta{Name: "foo", Namespace: ns}, @@ -271,7 +271,7 @@ func TestSyncEndpointsProtocolUDP(t *testing.T) { }}, }}) defer testServer.Close() - client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Default.Version()}) endpoints := NewEndpointController(client) endpoints.serviceStore.Store.Add(&api.Service{ ObjectMeta: api.ObjectMeta{Name: "foo", Namespace: ns}, @@ -296,7 +296,7 @@ func TestSyncEndpointsItemsEmptySelectorSelectsAll(t *testing.T) { Subsets: []api.EndpointSubset{}, }}) defer testServer.Close() - client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Default.Version()}) endpoints := NewEndpointController(client) addPods(endpoints.podStore.Store, ns, 1, 1) endpoints.serviceStore.Store.Add(&api.Service{ @@ -307,7 +307,7 @@ func TestSyncEndpointsItemsEmptySelectorSelectsAll(t *testing.T) { }, }) endpoints.syncService(ns + "/foo") - data := runtime.EncodeOrDie(testapi.Codec(), &api.Endpoints{ + data := runtime.EncodeOrDie(testapi.Default.Codec(), &api.Endpoints{ ObjectMeta: api.ObjectMeta{ Name: "foo", Namespace: ns, @@ -318,7 +318,7 @@ func TestSyncEndpointsItemsEmptySelectorSelectsAll(t *testing.T) { Ports: []api.EndpointPort{{Port: 8080, Protocol: "TCP"}}, }}, }) - endpointsHandler.ValidateRequest(t, testapi.ResourcePath("endpoints", ns, "foo"), "PUT", &data) + endpointsHandler.ValidateRequest(t, testapi.Default.ResourcePath("endpoints", ns, "foo"), "PUT", &data) } func TestSyncEndpointsItemsPreexisting(t *testing.T) { @@ -336,7 +336,7 @@ func TestSyncEndpointsItemsPreexisting(t *testing.T) { }}, }}) defer testServer.Close() - client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Default.Version()}) endpoints := NewEndpointController(client) addPods(endpoints.podStore.Store, ns, 1, 1) endpoints.serviceStore.Store.Add(&api.Service{ @@ -347,7 +347,7 @@ func TestSyncEndpointsItemsPreexisting(t *testing.T) { }, }) endpoints.syncService(ns + "/foo") - data := runtime.EncodeOrDie(testapi.Codec(), &api.Endpoints{ + data := runtime.EncodeOrDie(testapi.Default.Codec(), &api.Endpoints{ ObjectMeta: api.ObjectMeta{ Name: "foo", Namespace: ns, @@ -358,7 +358,7 @@ func TestSyncEndpointsItemsPreexisting(t *testing.T) { Ports: []api.EndpointPort{{Port: 8080, Protocol: "TCP"}}, }}, }) - endpointsHandler.ValidateRequest(t, testapi.ResourcePath("endpoints", ns, "foo"), "PUT", &data) + endpointsHandler.ValidateRequest(t, testapi.Default.ResourcePath("endpoints", ns, "foo"), "PUT", &data) } func TestSyncEndpointsItemsPreexistingIdentical(t *testing.T) { @@ -376,7 +376,7 @@ func TestSyncEndpointsItemsPreexistingIdentical(t *testing.T) { }}, }}) defer testServer.Close() - client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Default.Version()}) endpoints := NewEndpointController(client) addPods(endpoints.podStore.Store, api.NamespaceDefault, 1, 1) endpoints.serviceStore.Store.Add(&api.Service{ @@ -387,7 +387,7 @@ func TestSyncEndpointsItemsPreexistingIdentical(t *testing.T) { }, }) endpoints.syncService(ns + "/foo") - endpointsHandler.ValidateRequest(t, testapi.ResourcePath("endpoints", api.NamespaceDefault, "foo"), "GET", nil) + endpointsHandler.ValidateRequest(t, testapi.Default.ResourcePath("endpoints", api.NamespaceDefault, "foo"), "GET", nil) } func TestSyncEndpointsItems(t *testing.T) { @@ -395,7 +395,7 @@ func TestSyncEndpointsItems(t *testing.T) { testServer, endpointsHandler := makeTestServer(t, ns, serverResponse{http.StatusOK, &api.Endpoints{}}) defer testServer.Close() - client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Default.Version()}) endpoints := NewEndpointController(client) addPods(endpoints.podStore.Store, ns, 3, 2) addPods(endpoints.podStore.Store, "blah", 5, 2) // make sure these aren't found! @@ -421,7 +421,7 @@ func TestSyncEndpointsItems(t *testing.T) { {Name: "port1", Port: 8088, Protocol: "TCP"}, }, }} - data := runtime.EncodeOrDie(testapi.Codec(), &api.Endpoints{ + data := runtime.EncodeOrDie(testapi.Default.Codec(), &api.Endpoints{ ObjectMeta: api.ObjectMeta{ ResourceVersion: "", }, @@ -429,7 +429,7 @@ func TestSyncEndpointsItems(t *testing.T) { }) // endpointsHandler should get 2 requests - one for "GET" and the next for "POST". endpointsHandler.ValidateRequestCount(t, 2) - endpointsHandler.ValidateRequest(t, testapi.ResourcePath("endpoints", ns, ""), "POST", &data) + endpointsHandler.ValidateRequest(t, testapi.Default.ResourcePath("endpoints", ns, ""), "POST", &data) } func TestSyncEndpointsItemsWithLabels(t *testing.T) { @@ -437,7 +437,7 @@ func TestSyncEndpointsItemsWithLabels(t *testing.T) { testServer, endpointsHandler := makeTestServer(t, ns, serverResponse{http.StatusOK, &api.Endpoints{}}) defer testServer.Close() - client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Default.Version()}) endpoints := NewEndpointController(client) addPods(endpoints.podStore.Store, ns, 3, 2) serviceLabels := map[string]string{"foo": "bar"} @@ -467,7 +467,7 @@ func TestSyncEndpointsItemsWithLabels(t *testing.T) { {Name: "port1", Port: 8088, Protocol: "TCP"}, }, }} - data := runtime.EncodeOrDie(testapi.Codec(), &api.Endpoints{ + data := runtime.EncodeOrDie(testapi.Default.Codec(), &api.Endpoints{ ObjectMeta: api.ObjectMeta{ ResourceVersion: "", Labels: serviceLabels, @@ -476,7 +476,7 @@ func TestSyncEndpointsItemsWithLabels(t *testing.T) { }) // endpointsHandler should get 2 requests - one for "GET" and the next for "POST". endpointsHandler.ValidateRequestCount(t, 2) - endpointsHandler.ValidateRequest(t, testapi.ResourcePath("endpoints", ns, ""), "POST", &data) + endpointsHandler.ValidateRequest(t, testapi.Default.ResourcePath("endpoints", ns, ""), "POST", &data) } func TestSyncEndpointsItemsPreexistingLabelsChange(t *testing.T) { @@ -497,7 +497,7 @@ func TestSyncEndpointsItemsPreexistingLabelsChange(t *testing.T) { }}, }}) defer testServer.Close() - client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Default.Version()}) endpoints := NewEndpointController(client) addPods(endpoints.podStore.Store, ns, 1, 1) serviceLabels := map[string]string{"baz": "blah"} @@ -513,7 +513,7 @@ func TestSyncEndpointsItemsPreexistingLabelsChange(t *testing.T) { }, }) endpoints.syncService(ns + "/foo") - data := runtime.EncodeOrDie(testapi.Codec(), &api.Endpoints{ + data := runtime.EncodeOrDie(testapi.Default.Codec(), &api.Endpoints{ ObjectMeta: api.ObjectMeta{ Name: "foo", Namespace: ns, @@ -525,5 +525,5 @@ func TestSyncEndpointsItemsPreexistingLabelsChange(t *testing.T) { Ports: []api.EndpointPort{{Port: 8080, Protocol: "TCP"}}, }}, }) - endpointsHandler.ValidateRequest(t, testapi.ResourcePath("endpoints", ns, "foo"), "PUT", &data) + endpointsHandler.ValidateRequest(t, testapi.Default.ResourcePath("endpoints", ns, "foo"), "PUT", &data) } diff --git a/pkg/controller/replication/replication_controller_test.go b/pkg/controller/replication/replication_controller_test.go index 014c82f5004..5376a69bf09 100644 --- a/pkg/controller/replication/replication_controller_test.go +++ b/pkg/controller/replication/replication_controller_test.go @@ -95,7 +95,7 @@ func getKey(rc *api.ReplicationController, t *testing.T) string { func newReplicationController(replicas int) *api.ReplicationController { rc := &api.ReplicationController{ - TypeMeta: api.TypeMeta{APIVersion: testapi.Version()}, + TypeMeta: api.TypeMeta{APIVersion: testapi.Default.Version()}, ObjectMeta: api.ObjectMeta{ UID: util.NewUUID(), Name: "foobar", @@ -176,24 +176,24 @@ type serverResponse struct { func makeTestServer(t *testing.T, namespace, name string, podResponse, controllerResponse, updateResponse serverResponse) (*httptest.Server, *util.FakeHandler) { fakePodHandler := util.FakeHandler{ StatusCode: podResponse.statusCode, - ResponseBody: runtime.EncodeOrDie(testapi.Codec(), podResponse.obj.(runtime.Object)), + ResponseBody: runtime.EncodeOrDie(testapi.Default.Codec(), podResponse.obj.(runtime.Object)), } fakeControllerHandler := util.FakeHandler{ StatusCode: controllerResponse.statusCode, - ResponseBody: runtime.EncodeOrDie(testapi.Codec(), controllerResponse.obj.(runtime.Object)), + ResponseBody: runtime.EncodeOrDie(testapi.Default.Codec(), controllerResponse.obj.(runtime.Object)), } fakeUpdateHandler := util.FakeHandler{ StatusCode: updateResponse.statusCode, - ResponseBody: runtime.EncodeOrDie(testapi.Codec(), updateResponse.obj.(runtime.Object)), + ResponseBody: runtime.EncodeOrDie(testapi.Default.Codec(), updateResponse.obj.(runtime.Object)), } mux := http.NewServeMux() - mux.Handle(testapi.ResourcePath("pods", namespace, ""), &fakePodHandler) - mux.Handle(testapi.ResourcePath(replicationControllerResourceName(), "", ""), &fakeControllerHandler) + mux.Handle(testapi.Default.ResourcePath("pods", namespace, ""), &fakePodHandler) + mux.Handle(testapi.Default.ResourcePath(replicationControllerResourceName(), "", ""), &fakeControllerHandler) if namespace != "" { - mux.Handle(testapi.ResourcePath(replicationControllerResourceName(), namespace, ""), &fakeControllerHandler) + mux.Handle(testapi.Default.ResourcePath(replicationControllerResourceName(), namespace, ""), &fakeControllerHandler) } if name != "" { - mux.Handle(testapi.ResourcePath(replicationControllerResourceName(), namespace, name), &fakeUpdateHandler) + mux.Handle(testapi.Default.ResourcePath(replicationControllerResourceName(), namespace, name), &fakeUpdateHandler) } mux.HandleFunc("/", func(res http.ResponseWriter, req *http.Request) { t.Errorf("unexpected request: %v", req.RequestURI) @@ -219,7 +219,7 @@ func startManagerAndWait(manager *ReplicationManager, pods int, t *testing.T) ch } func TestSyncReplicationControllerDoesNothing(t *testing.T) { - client := client.NewOrDie(&client.Config{Host: "", Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: "", Version: testapi.Default.Version()}) fakePodControl := FakePodControl{} manager := NewReplicationManager(client, BurstReplicas) manager.podStoreSynced = alwaysReady @@ -235,7 +235,7 @@ func TestSyncReplicationControllerDoesNothing(t *testing.T) { } func TestSyncReplicationControllerDeletes(t *testing.T) { - client := client.NewOrDie(&client.Config{Host: "", Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: "", Version: testapi.Default.Version()}) fakePodControl := FakePodControl{} manager := NewReplicationManager(client, BurstReplicas) manager.podStoreSynced = alwaysReady @@ -251,7 +251,7 @@ func TestSyncReplicationControllerDeletes(t *testing.T) { } func TestDeleteFinalStateUnknown(t *testing.T) { - client := client.NewOrDie(&client.Config{Host: "", Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: "", Version: testapi.Default.Version()}) fakePodControl := FakePodControl{} manager := NewReplicationManager(client, BurstReplicas) manager.podStoreSynced = alwaysReady @@ -284,7 +284,7 @@ func TestDeleteFinalStateUnknown(t *testing.T) { } func TestSyncReplicationControllerCreates(t *testing.T) { - client := client.NewOrDie(&client.Config{Host: "", Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: "", Version: testapi.Default.Version()}) manager := NewReplicationManager(client, BurstReplicas) manager.podStoreSynced = alwaysReady @@ -306,7 +306,7 @@ func TestStatusUpdatesWithoutReplicasChange(t *testing.T) { } testServer := httptest.NewServer(&fakeHandler) defer testServer.Close() - client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Default.Version()}) manager := NewReplicationManager(client, BurstReplicas) manager.podStoreSynced = alwaysReady @@ -328,15 +328,15 @@ func TestStatusUpdatesWithoutReplicasChange(t *testing.T) { // This response body is just so we don't err out decoding the http response, all // we care about is the request body sent below. - response := runtime.EncodeOrDie(testapi.Codec(), &api.ReplicationController{}) + response := runtime.EncodeOrDie(testapi.Default.Codec(), &api.ReplicationController{}) fakeHandler.ResponseBody = response rc.Generation = rc.Generation + 1 manager.syncReplicationController(getKey(rc, t)) rc.Status.ObservedGeneration = rc.Generation - updatedRc := runtime.EncodeOrDie(testapi.Codec(), rc) - fakeHandler.ValidateRequest(t, testapi.ResourcePath(replicationControllerResourceName(), rc.Namespace, rc.Name), "PUT", &updatedRc) + updatedRc := runtime.EncodeOrDie(testapi.Default.Codec(), rc) + fakeHandler.ValidateRequest(t, testapi.Default.ResourcePath(replicationControllerResourceName(), rc.Namespace, rc.Name), "PUT", &updatedRc) } func TestControllerUpdateReplicas(t *testing.T) { @@ -348,7 +348,7 @@ func TestControllerUpdateReplicas(t *testing.T) { testServer := httptest.NewServer(&fakeHandler) defer testServer.Close() - client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Default.Version()}) manager := NewReplicationManager(client, BurstReplicas) manager.podStoreSynced = alwaysReady @@ -361,7 +361,7 @@ func TestControllerUpdateReplicas(t *testing.T) { newPodList(manager.podStore.Store, 4, api.PodRunning, rc) // This response body is just so we don't err out decoding the http response - response := runtime.EncodeOrDie(testapi.Codec(), &api.ReplicationController{}) + response := runtime.EncodeOrDie(testapi.Default.Codec(), &api.ReplicationController{}) fakeHandler.ResponseBody = response fakePodControl := FakePodControl{} @@ -373,8 +373,8 @@ func TestControllerUpdateReplicas(t *testing.T) { // 2. Every update to the status should include the Generation of the spec. rc.Status = api.ReplicationControllerStatus{Replicas: 4, ObservedGeneration: 1} - decRc := runtime.EncodeOrDie(testapi.Codec(), rc) - fakeHandler.ValidateRequest(t, testapi.ResourcePath(replicationControllerResourceName(), rc.Namespace, rc.Name), "PUT", &decRc) + decRc := runtime.EncodeOrDie(testapi.Default.Codec(), rc) + fakeHandler.ValidateRequest(t, testapi.Default.ResourcePath(replicationControllerResourceName(), rc.Namespace, rc.Name), "PUT", &decRc) validateSyncReplication(t, &fakePodControl, 1, 0) } @@ -386,7 +386,7 @@ func TestSyncReplicationControllerDormancy(t *testing.T) { } testServer := httptest.NewServer(&fakeHandler) defer testServer.Close() - client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Default.Version()}) fakePodControl := FakePodControl{} manager := NewReplicationManager(client, BurstReplicas) @@ -435,7 +435,7 @@ func TestSyncReplicationControllerDormancy(t *testing.T) { } func TestPodControllerLookup(t *testing.T) { - manager := NewReplicationManager(client.NewOrDie(&client.Config{Host: "", Version: testapi.Version()}), BurstReplicas) + manager := NewReplicationManager(client.NewOrDie(&client.Config{Host: "", Version: testapi.Default.Version()}), BurstReplicas) manager.podStoreSynced = alwaysReady testCases := []struct { inRCs []*api.ReplicationController @@ -649,7 +649,7 @@ func TestControllerUpdateRequeue(t *testing.T) { testServer := httptest.NewServer(&fakeHandler) defer testServer.Close() - client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: testServer.URL, Version: testapi.Default.Version()}) manager := NewReplicationManager(client, BurstReplicas) manager.podStoreSynced = alwaysReady @@ -729,7 +729,7 @@ func TestControllerUpdateStatusWithFailure(t *testing.T) { } func doTestControllerBurstReplicas(t *testing.T, burstReplicas, numReplicas int) { - client := client.NewOrDie(&client.Config{Host: "", Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: "", Version: testapi.Default.Version()}) fakePodControl := FakePodControl{} manager := NewReplicationManager(client, burstReplicas) manager.podStoreSynced = alwaysReady @@ -849,7 +849,7 @@ func (fe FakeRCExpectations) SatisfiedExpectations(controllerKey string) bool { // TestRCSyncExpectations tests that a pod cannot sneak in between counting active pods // and checking expectations. func TestRCSyncExpectations(t *testing.T) { - client := client.NewOrDie(&client.Config{Host: "", Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: "", Version: testapi.Default.Version()}) fakePodControl := FakePodControl{} manager := NewReplicationManager(client, 2) manager.podStoreSynced = alwaysReady @@ -874,7 +874,7 @@ func TestRCSyncExpectations(t *testing.T) { } func TestDeleteControllerAndExpectations(t *testing.T) { - client := client.NewOrDie(&client.Config{Host: "", Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: "", Version: testapi.Default.Version()}) manager := NewReplicationManager(client, 10) manager.podStoreSynced = alwaysReady @@ -916,7 +916,7 @@ func TestDeleteControllerAndExpectations(t *testing.T) { } func TestRCManagerNotReady(t *testing.T) { - client := client.NewOrDie(&client.Config{Host: "", Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: "", Version: testapi.Default.Version()}) fakePodControl := FakePodControl{} manager := NewReplicationManager(client, 2) manager.podControl = &fakePodControl @@ -953,7 +953,7 @@ func shuffle(controllers []*api.ReplicationController) []*api.ReplicationControl } func TestOverlappingRCs(t *testing.T) { - client := client.NewOrDie(&client.Config{Host: "", Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: "", Version: testapi.Default.Version()}) for i := 0; i < 5; i++ { manager := NewReplicationManager(client, 10) diff --git a/pkg/controller/serviceaccount/serviceaccounts_controller_test.go b/pkg/controller/serviceaccount/serviceaccounts_controller_test.go index fe59258c98c..e1525bd8aa7 100644 --- a/pkg/controller/serviceaccount/serviceaccounts_controller_test.go +++ b/pkg/controller/serviceaccount/serviceaccounts_controller_test.go @@ -36,11 +36,11 @@ type serverResponse struct { func makeTestServer(t *testing.T, namespace string, serviceAccountResponse serverResponse) (*httptest.Server, *util.FakeHandler) { fakeServiceAccountsHandler := util.FakeHandler{ StatusCode: serviceAccountResponse.statusCode, - ResponseBody: runtime.EncodeOrDie(testapi.Codec(), serviceAccountResponse.obj.(runtime.Object)), + ResponseBody: runtime.EncodeOrDie(testapi.Default.Codec(), serviceAccountResponse.obj.(runtime.Object)), } mux := http.NewServeMux() - mux.Handle(testapi.ResourcePath("serviceAccounts", namespace, ""), &fakeServiceAccountsHandler) + mux.Handle(testapi.Default.ResourcePath("serviceAccounts", namespace, ""), &fakeServiceAccountsHandler) mux.HandleFunc("/", func(res http.ResponseWriter, req *http.Request) { t.Errorf("unexpected request: %v", req.RequestURI) res.WriteHeader(http.StatusNotFound) diff --git a/pkg/kubectl/cmd/annotate_test.go b/pkg/kubectl/cmd/annotate_test.go index 53c407c1d9e..ea45b030d06 100644 --- a/pkg/kubectl/cmd/annotate_test.go +++ b/pkg/kubectl/cmd/annotate_test.go @@ -391,7 +391,7 @@ func TestAnnotateErrors(t *testing.T) { f, tf, _ := NewAPIFactory() tf.Printer = &testPrinter{} tf.Namespace = "test" - tf.ClientConfig = &client.Config{Version: testapi.Version()} + tf.ClientConfig = &client.Config{Version: testapi.Default.Version()} buf := bytes.NewBuffer([]byte{}) cmd := NewCmdAnnotate(f, buf) @@ -447,7 +447,7 @@ func TestAnnotateObject(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &client.Config{Version: testapi.Version()} + tf.ClientConfig = &client.Config{Version: testapi.Default.Version()} options := &AnnotateOptions{} args := []string{"pods/foo", "a=b", "c-"} @@ -494,7 +494,7 @@ func TestAnnotateObjectFromFile(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &client.Config{Version: testapi.Version()} + tf.ClientConfig = &client.Config{Version: testapi.Default.Version()} options := &AnnotateOptions{} options.filenames = []string{"../../../examples/cassandra/cassandra.yaml"} @@ -544,7 +544,7 @@ func TestAnnotateMultipleObjects(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &client.Config{Version: testapi.Version()} + tf.ClientConfig = &client.Config{Version: testapi.Default.Version()} options := &AnnotateOptions{} options.all = true diff --git a/pkg/kubectl/cmd/attach_test.go b/pkg/kubectl/cmd/attach_test.go index 7e8328ba4ed..b7d336cd06f 100644 --- a/pkg/kubectl/cmd/attach_test.go +++ b/pkg/kubectl/cmd/attach_test.go @@ -105,7 +105,7 @@ func TestPodAndContainerAttach(t *testing.T) { } func TestAttach(t *testing.T) { - version := testapi.Version() + version := testapi.Default.Version() tests := []struct { name, version, podPath, attachPath, container string pod *api.Pod diff --git a/pkg/kubectl/cmd/cmd_test.go b/pkg/kubectl/cmd/cmd_test.go index acf4fae94a1..681af5ee3cf 100644 --- a/pkg/kubectl/cmd/cmd_test.go +++ b/pkg/kubectl/cmd/cmd_test.go @@ -79,10 +79,10 @@ func newExternalScheme() (*runtime.Scheme, meta.RESTMapper, runtime.Codec) { scheme.AddKnownTypeWithName("", "Type", &internalType{}) scheme.AddKnownTypeWithName("unlikelyversion", "Type", &externalType{}) //This tests that kubectl will not confuse the external scheme with the internal scheme, even when they accidentally have versions of the same name. - scheme.AddKnownTypeWithName(testapi.Version(), "Type", &ExternalType2{}) + scheme.AddKnownTypeWithName(testapi.Default.Version(), "Type", &ExternalType2{}) codec := runtime.CodecFor(scheme, "unlikelyversion") - validVersion := testapi.Version() + validVersion := testapi.Default.Version() mapper := meta.NewDefaultRESTMapper("apitest", []string{"unlikelyversion", validVersion}, func(version string) (*meta.VersionInterfaces, error) { return &meta.VersionInterfaces{ Codec: runtime.CodecFor(scheme, version), @@ -228,7 +228,7 @@ func NewAPIFactory() (*cmdutil.Factory, *testFactory, runtime.Codec) { generator, ok := generators[name] return generator, ok }, - }, t, testapi.Codec() + }, t, testapi.Default.Codec() } func objBody(codec runtime.Codec, obj runtime.Object) io.ReadCloser { @@ -245,7 +245,7 @@ func stringBody(body string) io.ReadCloser { //func TestClientVersions(t *testing.T) { // f := cmdutil.NewFactory(nil) // -// version := testapi.Version() +// version := testapi.Default.Version() // mapping := &meta.RESTMapping{ // APIVersion: version, // } diff --git a/pkg/kubectl/cmd/config/config_test.go b/pkg/kubectl/cmd/config/config_test.go index d95762848ac..3fe325e5e04 100644 --- a/pkg/kubectl/cmd/config/config_test.go +++ b/pkg/kubectl/cmd/config/config_test.go @@ -577,13 +577,13 @@ func TestNewEmptyCluster(t *testing.T) { func TestAdditionalCluster(t *testing.T) { expectedConfig := newRedFederalCowHammerConfig() cluster := clientcmdapi.NewCluster() - cluster.APIVersion = testapi.Version() + cluster.APIVersion = testapi.Default.Version() cluster.CertificateAuthority = "/ca-location" cluster.InsecureSkipTLSVerify = false cluster.Server = "serverlocation" expectedConfig.Clusters["different-cluster"] = cluster test := configCommandTest{ - args: []string{"set-cluster", "different-cluster", "--" + clientcmd.FlagAPIServer + "=serverlocation", "--" + clientcmd.FlagInsecure + "=false", "--" + clientcmd.FlagCAFile + "=/ca-location", "--" + clientcmd.FlagAPIVersion + "=" + testapi.Version()}, + args: []string{"set-cluster", "different-cluster", "--" + clientcmd.FlagAPIServer + "=serverlocation", "--" + clientcmd.FlagInsecure + "=false", "--" + clientcmd.FlagCAFile + "=/ca-location", "--" + clientcmd.FlagAPIVersion + "=" + testapi.Default.Version()}, startingConfig: newRedFederalCowHammerConfig(), expectedConfig: expectedConfig, } diff --git a/pkg/kubectl/cmd/delete_test.go b/pkg/kubectl/cmd/delete_test.go index f12124440f8..8be48805d0a 100644 --- a/pkg/kubectl/cmd/delete_test.go +++ b/pkg/kubectl/cmd/delete_test.go @@ -416,12 +416,12 @@ func TestDeleteMultipleSelector(t *testing.T) { Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { case p == "/namespaces/test/pods" && m == "GET": - if req.URL.Query().Get(api.LabelSelectorQueryParam(testapi.Version())) != "a=b" { + if req.URL.Query().Get(api.LabelSelectorQueryParam(testapi.Default.Version())) != "a=b" { t.Fatalf("unexpected request: %#v\n%#v", req.URL, req) } return &http.Response{StatusCode: 200, Body: objBody(codec, pods)}, nil case p == "/namespaces/test/services" && m == "GET": - if req.URL.Query().Get(api.LabelSelectorQueryParam(testapi.Version())) != "a=b" { + if req.URL.Query().Get(api.LabelSelectorQueryParam(testapi.Default.Version())) != "a=b" { t.Fatalf("unexpected request: %#v\n%#v", req.URL, req) } return &http.Response{StatusCode: 200, Body: objBody(codec, svc)}, nil diff --git a/pkg/kubectl/cmd/exec_test.go b/pkg/kubectl/cmd/exec_test.go index 3cf18afee69..34b147718a8 100644 --- a/pkg/kubectl/cmd/exec_test.go +++ b/pkg/kubectl/cmd/exec_test.go @@ -129,7 +129,7 @@ func TestPodAndContainer(t *testing.T) { } func TestExec(t *testing.T) { - version := testapi.Version() + version := testapi.Default.Version() tests := []struct { name, version, podPath, execPath, container string pod *api.Pod diff --git a/pkg/kubectl/cmd/get_test.go b/pkg/kubectl/cmd/get_test.go index fab0093dcfc..b15d6ec67e3 100644 --- a/pkg/kubectl/cmd/get_test.go +++ b/pkg/kubectl/cmd/get_test.go @@ -176,14 +176,14 @@ func TestGetUnknownSchemaObjectListGeneric(t *testing.T) { rcVersion: latest.Version, // see expected behavior 3b }, "handles common version": { - outputVersion: testapi.Version(), - listVersion: testapi.Version(), + outputVersion: testapi.Default.Version(), + listVersion: testapi.Default.Version(), testtypeVersion: "unlikelyversion", - rcVersion: testapi.Version(), + rcVersion: testapi.Default.Version(), }, } for k, test := range testCases { - apiCodec := runtime.CodecFor(api.Scheme, testapi.Version()) + apiCodec := runtime.CodecFor(api.Scheme, testapi.Default.Version()) regularClient := &client.FakeRESTClient{ Codec: apiCodec, Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) { @@ -440,7 +440,7 @@ func TestGetMultipleTypeObjectsAsList(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &client.Config{Version: testapi.Version()} + tf.ClientConfig = &client.Config{Version: testapi.Default.Version()} buf := bytes.NewBuffer([]byte{}) cmd := NewCmdGet(f, buf) @@ -488,7 +488,7 @@ func TestGetMultipleTypeObjectsWithSelector(t *testing.T) { tf.Client = &client.FakeRESTClient{ Codec: codec, Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) { - if req.URL.Query().Get(api.LabelSelectorQueryParam(testapi.Version())) != "a=b" { + if req.URL.Query().Get(api.LabelSelectorQueryParam(testapi.Default.Version())) != "a=b" { t.Fatalf("unexpected request: %#v\n%#v", req.URL, req) } switch req.URL.Path { @@ -624,7 +624,7 @@ func TestWatchSelector(t *testing.T) { tf.Client = &client.FakeRESTClient{ Codec: codec, Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) { - if req.URL.Query().Get(api.LabelSelectorQueryParam(testapi.Version())) != "a=b" { + if req.URL.Query().Get(api.LabelSelectorQueryParam(testapi.Default.Version())) != "a=b" { t.Fatalf("unexpected request: %#v\n%#v", req.URL, req) } switch req.URL.Path { diff --git a/pkg/kubectl/cmd/label_test.go b/pkg/kubectl/cmd/label_test.go index 934e847963a..814aa605239 100644 --- a/pkg/kubectl/cmd/label_test.go +++ b/pkg/kubectl/cmd/label_test.go @@ -300,7 +300,7 @@ func TestLabelErrors(t *testing.T) { f, tf, _ := NewAPIFactory() tf.Printer = &testPrinter{} tf.Namespace = "test" - tf.ClientConfig = &client.Config{Version: testapi.Version()} + tf.ClientConfig = &client.Config{Version: testapi.Default.Version()} buf := bytes.NewBuffer([]byte{}) cmd := NewCmdLabel(f, buf) @@ -353,7 +353,7 @@ func TestLabelForResourceFromFile(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &client.Config{Version: testapi.Version()} + tf.ClientConfig = &client.Config{Version: testapi.Default.Version()} buf := bytes.NewBuffer([]byte{}) cmd := NewCmdLabel(f, buf) @@ -402,7 +402,7 @@ func TestLabelMultipleObjects(t *testing.T) { }), } tf.Namespace = "test" - tf.ClientConfig = &client.Config{Version: testapi.Version()} + tf.ClientConfig = &client.Config{Version: testapi.Default.Version()} buf := bytes.NewBuffer([]byte{}) cmd := NewCmdLabel(f, buf) diff --git a/pkg/kubectl/cmd/portforward_test.go b/pkg/kubectl/cmd/portforward_test.go index d2f3a16d8f1..05923191081 100644 --- a/pkg/kubectl/cmd/portforward_test.go +++ b/pkg/kubectl/cmd/portforward_test.go @@ -39,7 +39,7 @@ func (f *fakePortForwarder) ForwardPorts(req *client.Request, config *client.Con } func TestPortForward(t *testing.T) { - version := testapi.Version() + version := testapi.Default.Version() tests := []struct { name, version, podPath, pfPath, container string @@ -101,7 +101,7 @@ func TestPortForward(t *testing.T) { } func TestPortForwardWithPFlag(t *testing.T) { - version := testapi.Version() + version := testapi.Default.Version() tests := []struct { name, version, podPath, pfPath, container string diff --git a/pkg/kubectl/cmd/util/helpers_test.go b/pkg/kubectl/cmd/util/helpers_test.go index 0a9cd7459a0..2547c10fb0d 100644 --- a/pkg/kubectl/cmd/util/helpers_test.go +++ b/pkg/kubectl/cmd/util/helpers_test.go @@ -49,7 +49,7 @@ func TestMerge(t *testing.T) { Name: "foo", }, }, - fragment: fmt.Sprintf(`{ "apiVersion": "%s" }`, testapi.Version()), + fragment: fmt.Sprintf(`{ "apiVersion": "%s" }`, testapi.Default.Version()), expected: &api.Pod{ ObjectMeta: api.ObjectMeta{ Name: "foo", @@ -82,7 +82,7 @@ func TestMerge(t *testing.T) { }, }, }, - fragment: fmt.Sprintf(`{ "apiVersion": "%s", "spec": { "containers": [ { "name": "c1", "image": "green-image" } ] } }`, testapi.Version()), + fragment: fmt.Sprintf(`{ "apiVersion": "%s", "spec": { "containers": [ { "name": "c1", "image": "green-image" } ] } }`, testapi.Default.Version()), expected: &api.Pod{ ObjectMeta: api.ObjectMeta{ Name: "foo", @@ -108,7 +108,7 @@ func TestMerge(t *testing.T) { Name: "foo", }, }, - fragment: fmt.Sprintf(`{ "apiVersion": "%s", "spec": { "volumes": [ {"name": "v1"}, {"name": "v2"} ] } }`, testapi.Version()), + fragment: fmt.Sprintf(`{ "apiVersion": "%s", "spec": { "volumes": [ {"name": "v1"}, {"name": "v2"} ] } }`, testapi.Default.Version()), expected: &api.Pod{ ObjectMeta: api.ObjectMeta{ Name: "foo", @@ -148,7 +148,7 @@ func TestMerge(t *testing.T) { obj: &api.Service{ Spec: api.ServiceSpec{}, }, - fragment: fmt.Sprintf(`{ "apiVersion": "%s", "spec": { "ports": [ { "port": 0 } ] } }`, testapi.Version()), + fragment: fmt.Sprintf(`{ "apiVersion": "%s", "spec": { "ports": [ { "port": 0 } ] } }`, testapi.Default.Version()), expected: &api.Service{ Spec: api.ServiceSpec{ SessionAffinity: "None", @@ -171,7 +171,7 @@ func TestMerge(t *testing.T) { }, }, }, - fragment: fmt.Sprintf(`{ "apiVersion": "%s", "spec": { "selector": { "version": "v2" } } }`, testapi.Version()), + fragment: fmt.Sprintf(`{ "apiVersion": "%s", "spec": { "selector": { "version": "v2" } } }`, testapi.Default.Version()), expected: &api.Service{ Spec: api.ServiceSpec{ SessionAffinity: "None", diff --git a/pkg/kubectl/resource/builder_test.go b/pkg/kubectl/resource/builder_test.go index d2921d63547..97322f3d5d1 100644 --- a/pkg/kubectl/resource/builder_test.go +++ b/pkg/kubectl/resource/builder_test.go @@ -512,7 +512,7 @@ func TestResourceByNameAndEmptySelector(t *testing.T) { func TestSelector(t *testing.T) { pods, svc := testData() - labelKey := api.LabelSelectorQueryParam(testapi.Version()) + 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), @@ -808,7 +808,7 @@ func TestSingularRootScopedObject(t *testing.T) { func TestListObject(t *testing.T) { pods, _ := testData() - labelKey := api.LabelSelectorQueryParam(testapi.Version()) + 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), })). @@ -841,7 +841,7 @@ func TestListObject(t *testing.T) { func TestListObjectWithDifferentVersions(t *testing.T) { pods, svc := testData() - labelKey := api.LabelSelectorQueryParam(testapi.Version()) + 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), diff --git a/pkg/kubectl/resource/helper_test.go b/pkg/kubectl/resource/helper_test.go index a1a443891ee..dcc1ede0160 100644 --- a/pkg/kubectl/resource/helper_test.go +++ b/pkg/kubectl/resource/helper_test.go @@ -34,7 +34,7 @@ import ( ) func objBody(obj runtime.Object) io.ReadCloser { - return ioutil.NopCloser(bytes.NewReader([]byte(runtime.EncodeOrDie(testapi.Codec(), obj)))) + return ioutil.NopCloser(bytes.NewReader([]byte(runtime.EncodeOrDie(testapi.Default.Codec(), obj)))) } // splitPath returns the segments for a URL path. @@ -93,7 +93,7 @@ func TestHelperDelete(t *testing.T) { } for _, test := range tests { client := &client.FakeRESTClient{ - Codec: testapi.Codec(), + Codec: testapi.Default.Codec(), Resp: test.Resp, Err: test.HttpErr, } @@ -184,7 +184,7 @@ func TestHelperCreate(t *testing.T) { } for i, test := range tests { client := &client.FakeRESTClient{ - Codec: testapi.Codec(), + Codec: testapi.Default.Codec(), Resp: test.Resp, Err: test.HttpErr, } @@ -193,13 +193,13 @@ func TestHelperCreate(t *testing.T) { } modifier := &Helper{ RESTClient: client, - Codec: testapi.Codec(), - Versioner: testapi.MetadataAccessor(), + Codec: testapi.Default.Codec(), + Versioner: testapi.Default.MetadataAccessor(), NamespaceScoped: true, } data := []byte{} if test.Object != nil { - data = []byte(runtime.EncodeOrDie(testapi.Codec(), test.Object)) + data = []byte(runtime.EncodeOrDie(testapi.Default.Codec(), test.Object)) } _, err := modifier.Create("bar", test.Modify, data) if (err != nil) != test.Err { @@ -218,7 +218,7 @@ func TestHelperCreate(t *testing.T) { t.Logf("got body: %s", string(body)) expect := []byte{} if test.ExpectObject != nil { - expect = []byte(runtime.EncodeOrDie(testapi.Codec(), test.ExpectObject)) + expect = []byte(runtime.EncodeOrDie(testapi.Default.Codec(), test.ExpectObject)) } if !reflect.DeepEqual(expect, body) { t.Errorf("%d: unexpected body: %s", i, string(body)) @@ -270,7 +270,7 @@ func TestHelperGet(t *testing.T) { } for _, test := range tests { client := &client.FakeRESTClient{ - Codec: testapi.Codec(), + Codec: testapi.Default.Codec(), Resp: test.Resp, Err: test.HttpErr, } @@ -331,7 +331,7 @@ func TestHelperList(t *testing.T) { t.Errorf("url doesn't contain name: %#v", req.URL) return false } - if req.URL.Query().Get(api.LabelSelectorQueryParam(testapi.Version())) != labels.SelectorFromSet(labels.Set{"foo": "baz"}).String() { + if req.URL.Query().Get(api.LabelSelectorQueryParam(testapi.Default.Version())) != labels.SelectorFromSet(labels.Set{"foo": "baz"}).String() { t.Errorf("url doesn't contain query parameters: %#v", req.URL) return false } @@ -341,7 +341,7 @@ func TestHelperList(t *testing.T) { } for _, test := range tests { client := &client.FakeRESTClient{ - Codec: testapi.Codec(), + Codec: testapi.Default.Codec(), Resp: test.Resp, Err: test.HttpErr, } @@ -349,7 +349,7 @@ func TestHelperList(t *testing.T) { RESTClient: client, NamespaceScoped: true, } - obj, err := modifier.List("bar", testapi.Version(), labels.SelectorFromSet(labels.Set{"foo": "baz"})) + obj, err := modifier.List("bar", testapi.Default.Version(), labels.SelectorFromSet(labels.Set{"foo": "baz"})) if (err != nil) != test.Err { t.Errorf("unexpected error: %t %v", test.Err, err) } @@ -444,7 +444,7 @@ func TestHelperReplace(t *testing.T) { } for i, test := range tests { client := &client.FakeRESTClient{ - Codec: testapi.Codec(), + Codec: testapi.Default.Codec(), Resp: test.Resp, Err: test.HttpErr, } @@ -453,13 +453,13 @@ func TestHelperReplace(t *testing.T) { } modifier := &Helper{ RESTClient: client, - Codec: testapi.Codec(), - Versioner: testapi.MetadataAccessor(), + Codec: testapi.Default.Codec(), + Versioner: testapi.Default.MetadataAccessor(), NamespaceScoped: true, } data := []byte{} if test.Object != nil { - data = []byte(runtime.EncodeOrDie(testapi.Codec(), test.Object)) + data = []byte(runtime.EncodeOrDie(testapi.Default.Codec(), test.Object)) } _, err := modifier.Replace("bar", "foo", test.Overwrite, data) if (err != nil) != test.Err { @@ -478,7 +478,7 @@ func TestHelperReplace(t *testing.T) { t.Logf("got body: %s", string(body)) expect := []byte{} if test.ExpectObject != nil { - expect = []byte(runtime.EncodeOrDie(testapi.Codec(), test.ExpectObject)) + expect = []byte(runtime.EncodeOrDie(testapi.Default.Codec(), test.ExpectObject)) } if !reflect.DeepEqual(expect, body) { t.Errorf("%d: unexpected body: %s", i, string(body)) diff --git a/pkg/kubectl/resource_printer_test.go b/pkg/kubectl/resource_printer_test.go index 29d7721f088..4197ea98e84 100644 --- a/pkg/kubectl/resource_printer_test.go +++ b/pkg/kubectl/resource_printer_test.go @@ -49,7 +49,7 @@ func (ts *testStruct) IsAnAPIObject() {} func init() { api.Scheme.AddKnownTypes("", &testStruct{}) - api.Scheme.AddKnownTypes(testapi.Version(), &testStruct{}) + api.Scheme.AddKnownTypes(testapi.Default.Version(), &testStruct{}) } var testData = testStruct{ @@ -72,7 +72,7 @@ func TestVersionedPrinter(t *testing.T) { return nil }), api.Scheme, - testapi.Version(), + testapi.Default.Version(), ) if err := p.PrintObj(original, nil); err != nil { t.Errorf("unexpected error: %v", err) @@ -110,7 +110,7 @@ func TestPrinter(t *testing.T) { }, } emptyListTest := &api.PodList{} - testapi, err := api.Scheme.ConvertToVersion(podTest, testapi.Version()) + testapi, err := api.Scheme.ConvertToVersion(podTest, testapi.Default.Version()) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -183,7 +183,7 @@ func testPrinter(t *testing.T, printer ResourcePrinter, unmarshalFunc func(data } // Use real decode function to undo the versioning process. poutput = testStruct{} - err = runtime.YAMLDecoder(testapi.Codec()).DecodeInto(buf.Bytes(), &poutput) + err = runtime.YAMLDecoder(testapi.Default.Codec()).DecodeInto(buf.Bytes(), &poutput) if err != nil { t.Fatal(err) } @@ -204,7 +204,7 @@ func testPrinter(t *testing.T, printer ResourcePrinter, unmarshalFunc func(data } // Use real decode function to undo the versioning process. objOut = api.Pod{} - err = runtime.YAMLDecoder(testapi.Codec()).DecodeInto(buf.Bytes(), &objOut) + err = runtime.YAMLDecoder(testapi.Default.Codec()).DecodeInto(buf.Bytes(), &objOut) if err != nil { t.Fatal(err) } @@ -430,7 +430,7 @@ func TestTemplateStrings(t *testing.T) { t.Fatalf("tmpl fail: %v", err) } - printer := NewVersionedPrinter(p, api.Scheme, testapi.Version()) + printer := NewVersionedPrinter(p, api.Scheme, testapi.Default.Version()) for name, item := range table { buffer := &bytes.Buffer{} diff --git a/pkg/kubectl/rolling_updater_test.go b/pkg/kubectl/rolling_updater_test.go index ae38ceee888..4b6b6406e93 100644 --- a/pkg/kubectl/rolling_updater_test.go +++ b/pkg/kubectl/rolling_updater_test.go @@ -1008,7 +1008,7 @@ func TestUpdateExistingReplicationController(t *testing.T) { } func TestUpdateWithRetries(t *testing.T) { - codec := testapi.Codec() + codec := testapi.Default.Codec() grace := int64(30) rc := &api.ReplicationController{ ObjectMeta: api.ObjectMeta{Name: "rc", @@ -1055,7 +1055,7 @@ func TestUpdateWithRetries(t *testing.T) { Codec: codec, Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { - case p == testapi.ResourcePath("replicationcontrollers", "default", "rc") && m == "PUT": + case p == testapi.Default.ResourcePath("replicationcontrollers", "default", "rc") && m == "PUT": update := updates[0] updates = updates[1:] // We should always get an update with a valid rc even when the get fails. The rc should always @@ -1068,7 +1068,7 @@ func TestUpdateWithRetries(t *testing.T) { delete(c.Spec.Selector, "baz") } return update, nil - case p == testapi.ResourcePath("replicationcontrollers", "default", "rc") && m == "GET": + case p == testapi.Default.ResourcePath("replicationcontrollers", "default", "rc") && m == "GET": get := gets[0] gets = gets[1:] return get, nil @@ -1078,7 +1078,7 @@ func TestUpdateWithRetries(t *testing.T) { } }), } - clientConfig := &client.Config{Version: testapi.Version()} + clientConfig := &client.Config{Version: testapi.Default.Version()} client := client.NewOrDie(clientConfig) client.Client = fakeClient.Client @@ -1115,7 +1115,7 @@ func objBody(codec runtime.Codec, obj runtime.Object) io.ReadCloser { func TestAddDeploymentHash(t *testing.T) { buf := &bytes.Buffer{} - codec := testapi.Codec() + codec := testapi.Default.Codec() rc := &api.ReplicationController{ ObjectMeta: api.ObjectMeta{Name: "rc"}, Spec: api.ReplicationControllerSpec{ @@ -1146,27 +1146,27 @@ func TestAddDeploymentHash(t *testing.T) { Codec: codec, Client: client.HTTPClientFunc(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { - case p == testapi.ResourcePath("pods", "default", "") && m == "GET": + case p == testapi.Default.ResourcePath("pods", "default", "") && m == "GET": if req.URL.RawQuery != "labelSelector=foo%3Dbar" { t.Errorf("Unexpected query string: %s", req.URL.RawQuery) } return &http.Response{StatusCode: 200, Body: objBody(codec, podList)}, nil - case p == testapi.ResourcePath("pods", "default", "foo") && m == "PUT": + case p == testapi.Default.ResourcePath("pods", "default", "foo") && m == "PUT": seen.Insert("foo") obj := readOrDie(t, req, codec) podList.Items[0] = *(obj.(*api.Pod)) return &http.Response{StatusCode: 200, Body: objBody(codec, &podList.Items[0])}, nil - case p == testapi.ResourcePath("pods", "default", "bar") && m == "PUT": + case p == testapi.Default.ResourcePath("pods", "default", "bar") && m == "PUT": seen.Insert("bar") obj := readOrDie(t, req, codec) podList.Items[1] = *(obj.(*api.Pod)) return &http.Response{StatusCode: 200, Body: objBody(codec, &podList.Items[1])}, nil - case p == testapi.ResourcePath("pods", "default", "baz") && m == "PUT": + case p == testapi.Default.ResourcePath("pods", "default", "baz") && m == "PUT": seen.Insert("baz") obj := readOrDie(t, req, codec) podList.Items[2] = *(obj.(*api.Pod)) return &http.Response{StatusCode: 200, Body: objBody(codec, &podList.Items[2])}, nil - case p == testapi.ResourcePath("replicationcontrollers", "default", "rc") && m == "PUT": + case p == testapi.Default.ResourcePath("replicationcontrollers", "default", "rc") && m == "PUT": updatedRc = true return &http.Response{StatusCode: 200, Body: objBody(codec, rc)}, nil default: @@ -1175,7 +1175,7 @@ func TestAddDeploymentHash(t *testing.T) { } }), } - clientConfig := &client.Config{Version: testapi.Version()} + clientConfig := &client.Config{Version: testapi.Default.Version()} client := client.NewOrDie(clientConfig) client.Client = fakeClient.Client diff --git a/pkg/kubelet/config/common_test.go b/pkg/kubelet/config/common_test.go index fcf16781bab..ccfb88effaa 100644 --- a/pkg/kubelet/config/common_test.go +++ b/pkg/kubelet/config/common_test.go @@ -54,7 +54,7 @@ func TestDecodeSinglePod(t *testing.T) { }}, }, } - json, err := testapi.Codec().Encode(pod) + json, err := testapi.Default.Codec().Encode(pod) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -70,7 +70,7 @@ func TestDecodeSinglePod(t *testing.T) { } for _, version := range registered.RegisteredVersions { - externalPod, err := testapi.Converter().ConvertToVersion(pod, version) + externalPod, err := testapi.Default.Converter().ConvertToVersion(pod, version) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -119,7 +119,7 @@ func TestDecodePodList(t *testing.T) { podList := &api.PodList{ Items: []api.Pod{*pod}, } - json, err := testapi.Codec().Encode(podList) + json, err := testapi.Default.Codec().Encode(podList) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -135,7 +135,7 @@ func TestDecodePodList(t *testing.T) { } for _, version := range registered.RegisteredVersions { - externalPodList, err := testapi.Converter().ConvertToVersion(podList, version) + externalPodList, err := testapi.Default.Converter().ConvertToVersion(podList, version) if err != nil { t.Errorf("unexpected error: %v", err) } diff --git a/pkg/kubelet/config/file_test.go b/pkg/kubelet/config/file_test.go index 66ca28ba97e..94ad000d3f4 100644 --- a/pkg/kubelet/config/file_test.go +++ b/pkg/kubelet/config/file_test.go @@ -117,11 +117,11 @@ func TestReadPodsFromFile(t *testing.T) { for _, testCase := range testCases { func() { var versionedPod runtime.Object - err := testapi.Converter().Convert(&testCase.pod, &versionedPod) + err := testapi.Default.Converter().Convert(&testCase.pod, &versionedPod) if err != nil { t.Fatalf("%s: error in versioning the pod: %v", testCase.desc, err) } - fileContents, err := testapi.Codec().Encode(versionedPod) + fileContents, err := testapi.Default.Codec().Encode(versionedPod) if err != nil { t.Fatalf("%s: error in encoding the pod: %v", testCase.desc, err) } diff --git a/pkg/kubelet/config/http_test.go b/pkg/kubelet/config/http_test.go index 4279609414a..af700241621 100644 --- a/pkg/kubelet/config/http_test.go +++ b/pkg/kubelet/config/http_test.go @@ -67,7 +67,7 @@ func TestExtractInvalidPods(t *testing.T) { { desc: "Invalid volume name", pod: &api.Pod{ - TypeMeta: api.TypeMeta{APIVersion: testapi.Version()}, + TypeMeta: api.TypeMeta{APIVersion: testapi.Default.Version()}, Spec: api.PodSpec{ Volumes: []api.Volume{{Name: "_INVALID_"}}, }, @@ -76,7 +76,7 @@ func TestExtractInvalidPods(t *testing.T) { { desc: "Duplicate volume names", pod: &api.Pod{ - TypeMeta: api.TypeMeta{APIVersion: testapi.Version()}, + TypeMeta: api.TypeMeta{APIVersion: testapi.Default.Version()}, Spec: api.PodSpec{ Volumes: []api.Volume{{Name: "repeated"}, {Name: "repeated"}}, }, @@ -85,7 +85,7 @@ func TestExtractInvalidPods(t *testing.T) { { desc: "Unspecified container name", pod: &api.Pod{ - TypeMeta: api.TypeMeta{APIVersion: testapi.Version()}, + TypeMeta: api.TypeMeta{APIVersion: testapi.Default.Version()}, Spec: api.PodSpec{ Containers: []api.Container{{Name: ""}}, }, @@ -94,7 +94,7 @@ func TestExtractInvalidPods(t *testing.T) { { desc: "Invalid container name", pod: &api.Pod{ - TypeMeta: api.TypeMeta{APIVersion: testapi.Version()}, + TypeMeta: api.TypeMeta{APIVersion: testapi.Default.Version()}, Spec: api.PodSpec{ Containers: []api.Container{{Name: "_INVALID_"}}, }, @@ -252,11 +252,11 @@ func TestExtractPodsFromHTTP(t *testing.T) { for _, testCase := range testCases { var versionedPods runtime.Object - err := testapi.Converter().Convert(&testCase.pods, &versionedPods) + err := testapi.Default.Converter().Convert(&testCase.pods, &versionedPods) if err != nil { t.Fatalf("%s: error in versioning the pods: %s", testCase.desc, err) } - data, err := testapi.Codec().Encode(versionedPods) + data, err := testapi.Default.Codec().Encode(versionedPods) if err != nil { t.Fatalf("%s: error in encoding the pod: %v", testCase.desc, err) } @@ -288,7 +288,7 @@ func TestExtractPodsFromHTTP(t *testing.T) { func TestURLWithHeader(t *testing.T) { pod := &api.Pod{ TypeMeta: api.TypeMeta{ - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), Kind: "Pod", }, ObjectMeta: api.ObjectMeta{ diff --git a/pkg/kubelet/container/ref_test.go b/pkg/kubelet/container/ref_test.go index 8f0f6f335d8..17c2a6f11dd 100644 --- a/pkg/kubelet/container/ref_test.go +++ b/pkg/kubelet/container/ref_test.go @@ -66,14 +66,14 @@ func TestGenerateContainerRef(t *testing.T) { okPod = api.Pod{ TypeMeta: api.TypeMeta{ Kind: "Pod", - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), }, ObjectMeta: api.ObjectMeta{ Name: "ok", Namespace: "test-ns", UID: "bar", ResourceVersion: "42", - SelfLink: "/api/" + testapi.Version() + "/pods/foo", + SelfLink: "/api/" + testapi.Default.Version() + "/pods/foo", }, Spec: api.PodSpec{ Containers: []api.Container{ @@ -90,7 +90,7 @@ func TestGenerateContainerRef(t *testing.T) { noSelfLinkPod.Kind = "" noSelfLinkPod.APIVersion = "" noSelfLinkPod.ObjectMeta.SelfLink = "" - defaultedSelfLinkPod.ObjectMeta.SelfLink = "/api/" + testapi.Version() + "/pods/ok" + defaultedSelfLinkPod.ObjectMeta.SelfLink = "/api/" + testapi.Default.Version() + "/pods/ok" cases := []struct { name string @@ -107,7 +107,7 @@ func TestGenerateContainerRef(t *testing.T) { }, expected: &api.ObjectReference{ Kind: "Pod", - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), Name: "ok", Namespace: "test-ns", UID: "bar", @@ -122,7 +122,7 @@ func TestGenerateContainerRef(t *testing.T) { container: &api.Container{}, expected: &api.ObjectReference{ Kind: "Pod", - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), Name: "ok", Namespace: "test-ns", UID: "bar", @@ -146,7 +146,7 @@ func TestGenerateContainerRef(t *testing.T) { }, expected: &api.ObjectReference{ Kind: "Pod", - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), Name: "ok", Namespace: "test-ns", UID: "bar", @@ -163,7 +163,7 @@ func TestGenerateContainerRef(t *testing.T) { }, expected: &api.ObjectReference{ Kind: "Pod", - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), Name: "ok", Namespace: "test-ns", UID: "bar", diff --git a/pkg/kubelet/dockertools/manager_test.go b/pkg/kubelet/dockertools/manager_test.go index a3d65bf15b5..a6d54e71eba 100644 --- a/pkg/kubelet/dockertools/manager_test.go +++ b/pkg/kubelet/dockertools/manager_test.go @@ -449,7 +449,7 @@ func TestKillContainerInPodWithPreStop(t *testing.T) { }, {Name: "bar"}}}, } - podString, err := testapi.Codec().Encode(pod) + podString, err := testapi.Default.Codec().Encode(pod) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -2348,7 +2348,7 @@ func TestPodDependsOnPodIP(t *testing.T) { Name: "POD_IP", ValueFrom: &api.EnvVarSource{ FieldRef: &api.ObjectFieldSelector{ - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), FieldPath: "status.podIP", }, }, @@ -2369,7 +2369,7 @@ func TestPodDependsOnPodIP(t *testing.T) { Name: "POD_NAME", ValueFrom: &api.EnvVarSource{ FieldRef: &api.ObjectFieldSelector{ - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), FieldPath: "metadata.name", }, }, diff --git a/pkg/kubelet/kubelet_test.go b/pkg/kubelet/kubelet_test.go index 816fed19923..b37f5145ea9 100644 --- a/pkg/kubelet/kubelet_test.go +++ b/pkg/kubelet/kubelet_test.go @@ -1227,7 +1227,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "POD_NAME", ValueFrom: &api.EnvVarSource{ FieldRef: &api.ObjectFieldSelector{ - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), FieldPath: "metadata.name", }, }, @@ -1236,7 +1236,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "POD_NAMESPACE", ValueFrom: &api.EnvVarSource{ FieldRef: &api.ObjectFieldSelector{ - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), FieldPath: "metadata.namespace", }, }, @@ -1245,7 +1245,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "POD_IP", ValueFrom: &api.EnvVarSource{ FieldRef: &api.ObjectFieldSelector{ - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), FieldPath: "status.podIP", }, }, @@ -1273,7 +1273,7 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "POD_NAME", ValueFrom: &api.EnvVarSource{ FieldRef: &api.ObjectFieldSelector{ - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), FieldPath: "metadata.name", }, }, diff --git a/pkg/registry/controller/etcd/etcd_test.go b/pkg/registry/controller/etcd/etcd_test.go index 909e529963c..00e583c4db3 100644 --- a/pkg/registry/controller/etcd/etcd_test.go +++ b/pkg/registry/controller/etcd/etcd_test.go @@ -28,7 +28,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "") return NewREST(etcdStorage), fakeClient } diff --git a/pkg/registry/daemon/etcd/etcd_test.go b/pkg/registry/daemon/etcd/etcd_test.go index ff289c2ddbc..5d2510a7bf6 100755 --- a/pkg/registry/daemon/etcd/etcd_test.go +++ b/pkg/registry/daemon/etcd/etcd_test.go @@ -29,7 +29,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "experimental") return NewREST(etcdStorage), fakeClient } diff --git a/pkg/registry/deployment/etcd/etcd_test.go b/pkg/registry/deployment/etcd/etcd_test.go index 9a3a2ac6206..0878d10883d 100755 --- a/pkg/registry/deployment/etcd/etcd_test.go +++ b/pkg/registry/deployment/etcd/etcd_test.go @@ -29,7 +29,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "experimental") return NewREST(etcdStorage), fakeClient } diff --git a/pkg/registry/endpoint/etcd/etcd_test.go b/pkg/registry/endpoint/etcd/etcd_test.go index cff15c74962..7ec7e3e106a 100644 --- a/pkg/registry/endpoint/etcd/etcd_test.go +++ b/pkg/registry/endpoint/etcd/etcd_test.go @@ -28,7 +28,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "") return NewREST(etcdStorage, false), fakeClient } diff --git a/pkg/registry/event/etcd/etcd_test.go b/pkg/registry/event/etcd/etcd_test.go index fcc46e8e18d..6bc6fd6af07 100644 --- a/pkg/registry/event/etcd/etcd_test.go +++ b/pkg/registry/event/etcd/etcd_test.go @@ -28,7 +28,7 @@ import ( var testTTL uint64 = 60 func newStorage(t *testing.T) (*REST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "") fakeClient.HideExpires = true return NewREST(etcdStorage, testTTL), fakeClient } diff --git a/pkg/registry/event/strategy_test.go b/pkg/registry/event/strategy_test.go index 797185d799d..03ebd771db2 100644 --- a/pkg/registry/event/strategy_test.go +++ b/pkg/registry/event/strategy_test.go @@ -48,7 +48,7 @@ func TestGetAttrs(t *testing.T) { Name: "foo", Namespace: "baz", UID: "long uid string", - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), ResourceVersion: "0", FieldPath: "", }, @@ -68,7 +68,7 @@ func TestGetAttrs(t *testing.T) { "involvedObject.name": "foo", "involvedObject.namespace": "baz", "involvedObject.uid": "long uid string", - "involvedObject.apiVersion": testapi.Version(), + "involvedObject.apiVersion": testapi.Default.Version(), "involvedObject.resourceVersion": "0", "involvedObject.fieldPath": "", "reason": "ForTesting", diff --git a/pkg/registry/experimental/controller/etcd/etcd_test.go b/pkg/registry/experimental/controller/etcd/etcd_test.go index fa09096ae6f..192da9dfba1 100644 --- a/pkg/registry/experimental/controller/etcd/etcd_test.go +++ b/pkg/registry/experimental/controller/etcd/etcd_test.go @@ -30,7 +30,7 @@ import ( ) func newStorage(t *testing.T) (*ScaleREST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "experimental") return NewStorage(etcdStorage).Scale, fakeClient } @@ -82,7 +82,7 @@ func TestGet(t *testing.T) { ctx := api.WithNamespace(api.NewContext(), "test") key := etcdtest.AddPrefix("/controllers/test/foo") - if _, err := fakeClient.Set(key, runtime.EncodeOrDie(testapi.Codec(), &validController), 0); err != nil { + if _, err := fakeClient.Set(key, runtime.EncodeOrDie(testapi.Experimental.Codec(), &validController), 0); err != nil { t.Fatalf("unexpected error: %v", err) } @@ -102,7 +102,7 @@ func TestUpdate(t *testing.T) { ctx := api.WithNamespace(api.NewContext(), "test") key := etcdtest.AddPrefix("/controllers/test/foo") - if _, err := fakeClient.Set(key, runtime.EncodeOrDie(testapi.Codec(), &validController), 0); err != nil { + if _, err := fakeClient.Set(key, runtime.EncodeOrDie(testapi.Experimental.Codec(), &validController), 0); err != nil { t.Fatalf("unexpected error: %v", err) } replicas := 12 @@ -122,7 +122,7 @@ func TestUpdate(t *testing.T) { } var controller api.ReplicationController - testapi.Codec().DecodeInto([]byte(response.Node.Value), &controller) + testapi.Experimental.Codec().DecodeInto([]byte(response.Node.Value), &controller) if controller.Spec.Replicas != replicas { t.Errorf("wrong replicas count expected: %d got: %d", replicas, controller.Spec.Replicas) } diff --git a/pkg/registry/generic/etcd/etcd_test.go b/pkg/registry/generic/etcd/etcd_test.go index 566e329432a..cd389b7ef8c 100644 --- a/pkg/registry/generic/etcd/etcd_test.go +++ b/pkg/registry/generic/etcd/etcd_test.go @@ -70,7 +70,7 @@ func hasCreated(t *testing.T, pod *api.Pod) func(runtime.Object) bool { func NewTestGenericEtcdRegistry(t *testing.T) (*tools.FakeEtcdClient, *Etcd) { f := tools.NewFakeEtcdClient(t) f.TestIndex = true - s := etcdstorage.NewEtcdStorage(f, testapi.Codec(), etcdtest.PathPrefix()) + s := etcdstorage.NewEtcdStorage(f, testapi.Default.Codec(), etcdtest.PathPrefix()) strategy := &testRESTStrategy{api.Scheme, api.SimpleNameGenerator, true, false, true} podPrefix := "/pods" return f, &Etcd{ @@ -135,14 +135,14 @@ func TestEtcdList(t *testing.T) { singleElemListResp := &etcd.Response{ Node: &etcd.Node{ - Value: runtime.EncodeOrDie(testapi.Codec(), podA), + Value: runtime.EncodeOrDie(testapi.Default.Codec(), podA), }, } normalListResp := &etcd.Response{ Node: &etcd.Node{ Nodes: []*etcd.Node{ - {Value: runtime.EncodeOrDie(testapi.Codec(), podA)}, - {Value: runtime.EncodeOrDie(testapi.Codec(), podB)}, + {Value: runtime.EncodeOrDie(testapi.Default.Codec(), podA)}, + {Value: runtime.EncodeOrDie(testapi.Default.Codec(), podB)}, }, }, } @@ -243,7 +243,7 @@ func TestEtcdCreate(t *testing.T) { nodeWithPodA := tools.EtcdResponseWithError{ R: &etcd.Response{ Node: &etcd.Node{ - Value: runtime.EncodeOrDie(testapi.Codec(), podA), + Value: runtime.EncodeOrDie(testapi.Default.Codec(), podA), ModifiedIndex: 1, CreatedIndex: 1, }, @@ -323,7 +323,7 @@ func TestEtcdUpdate(t *testing.T) { nodeWithPodA := tools.EtcdResponseWithError{ R: &etcd.Response{ Node: &etcd.Node{ - Value: runtime.EncodeOrDie(testapi.Codec(), podA), + Value: runtime.EncodeOrDie(testapi.Default.Codec(), podA), ModifiedIndex: 1, CreatedIndex: 1, }, @@ -334,7 +334,7 @@ func TestEtcdUpdate(t *testing.T) { newerNodeWithPodA := tools.EtcdResponseWithError{ R: &etcd.Response{ Node: &etcd.Node{ - Value: runtime.EncodeOrDie(testapi.Codec(), podA), + Value: runtime.EncodeOrDie(testapi.Default.Codec(), podA), ModifiedIndex: 2, CreatedIndex: 1, }, @@ -345,7 +345,7 @@ func TestEtcdUpdate(t *testing.T) { nodeWithPodB := tools.EtcdResponseWithError{ R: &etcd.Response{ Node: &etcd.Node{ - Value: runtime.EncodeOrDie(testapi.Codec(), podB), + Value: runtime.EncodeOrDie(testapi.Default.Codec(), podB), ModifiedIndex: 1, CreatedIndex: 1, }, @@ -356,7 +356,7 @@ func TestEtcdUpdate(t *testing.T) { nodeWithPodAWithResourceVersion := tools.EtcdResponseWithError{ R: &etcd.Response{ Node: &etcd.Node{ - Value: runtime.EncodeOrDie(testapi.Codec(), podAWithResourceVersion), + Value: runtime.EncodeOrDie(testapi.Default.Codec(), podAWithResourceVersion), ModifiedIndex: 3, CreatedIndex: 1, }, @@ -452,7 +452,7 @@ func TestEtcdGet(t *testing.T) { nodeWithPodA := tools.EtcdResponseWithError{ R: &etcd.Response{ Node: &etcd.Node{ - Value: runtime.EncodeOrDie(testapi.Codec(), podA), + Value: runtime.EncodeOrDie(testapi.Default.Codec(), podA), ModifiedIndex: 1, CreatedIndex: 1, }, @@ -508,7 +508,7 @@ func TestEtcdDelete(t *testing.T) { nodeWithPodA := tools.EtcdResponseWithError{ R: &etcd.Response{ Node: &etcd.Node{ - Value: runtime.EncodeOrDie(testapi.Codec(), podA), + Value: runtime.EncodeOrDie(testapi.Default.Codec(), podA), ModifiedIndex: 1, CreatedIndex: 1, }, @@ -576,7 +576,7 @@ func TestEtcdWatch(t *testing.T) { respWithPodA := &etcd.Response{ Node: &etcd.Node{ Key: "/registry/pods/default/foo", - Value: runtime.EncodeOrDie(testapi.Codec(), podA), + Value: runtime.EncodeOrDie(testapi.Default.Codec(), podA), ModifiedIndex: 1, CreatedIndex: 1, }, diff --git a/pkg/registry/horizontalpodautoscaler/etcd/etcd_test.go b/pkg/registry/horizontalpodautoscaler/etcd/etcd_test.go index 826d52dd3ea..a5ab4768565 100644 --- a/pkg/registry/horizontalpodautoscaler/etcd/etcd_test.go +++ b/pkg/registry/horizontalpodautoscaler/etcd/etcd_test.go @@ -32,7 +32,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "experimental") return NewREST(etcdStorage), fakeClient } diff --git a/pkg/registry/limitrange/etcd/etcd_test.go b/pkg/registry/limitrange/etcd/etcd_test.go index c08e627cc31..be3c49e8c47 100644 --- a/pkg/registry/limitrange/etcd/etcd_test.go +++ b/pkg/registry/limitrange/etcd/etcd_test.go @@ -29,7 +29,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "") return NewREST(etcdStorage), fakeClient } diff --git a/pkg/registry/minion/etcd/etcd_test.go b/pkg/registry/minion/etcd/etcd_test.go index e89051eb5c7..af23cb0c1da 100644 --- a/pkg/registry/minion/etcd/etcd_test.go +++ b/pkg/registry/minion/etcd/etcd_test.go @@ -37,7 +37,7 @@ func (fakeConnectionInfoGetter) GetConnectionInfo(host string) (string, uint, ht } func newStorage(t *testing.T) (*REST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "") storage, _ := NewREST(etcdStorage, false, fakeConnectionInfoGetter{}) return storage, fakeClient } diff --git a/pkg/registry/namespace/etcd/etcd_test.go b/pkg/registry/namespace/etcd/etcd_test.go index dfe9ed8714d..653d84b6058 100644 --- a/pkg/registry/namespace/etcd/etcd_test.go +++ b/pkg/registry/namespace/etcd/etcd_test.go @@ -31,7 +31,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "") storage, _, _ := NewREST(etcdStorage) return storage, fakeClient } @@ -140,7 +140,7 @@ func TestDeleteNamespaceWithIncompleteFinalizers(t *testing.T) { }, Status: api.NamespaceStatus{Phase: api.NamespaceActive}, } - if _, err := fakeClient.Set(key, runtime.EncodeOrDie(testapi.Codec(), namespace), 0); err != nil { + if _, err := fakeClient.Set(key, runtime.EncodeOrDie(testapi.Default.Codec(), namespace), 0); err != nil { t.Fatalf("unexpected error: %v", err) } if _, err := storage.Delete(ctx, "foo", nil); err == nil { @@ -163,7 +163,7 @@ func TestDeleteNamespaceWithCompleteFinalizers(t *testing.T) { }, Status: api.NamespaceStatus{Phase: api.NamespaceActive}, } - if _, err := fakeClient.Set(key, runtime.EncodeOrDie(testapi.Codec(), namespace), 0); err != nil { + if _, err := fakeClient.Set(key, runtime.EncodeOrDie(testapi.Default.Codec(), namespace), 0); err != nil { t.Fatalf("unexpected error: %v", err) } if _, err := storage.Delete(ctx, "foo", nil); err != nil { diff --git a/pkg/registry/persistentvolume/etcd/etcd_test.go b/pkg/registry/persistentvolume/etcd/etcd_test.go index 8bc00c5a2c9..e376a3b998b 100644 --- a/pkg/registry/persistentvolume/etcd/etcd_test.go +++ b/pkg/registry/persistentvolume/etcd/etcd_test.go @@ -32,7 +32,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *StatusREST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "") storage, statusStorage := NewREST(etcdStorage) return storage, statusStorage, fakeClient } @@ -148,7 +148,7 @@ func TestUpdateStatus(t *testing.T) { key, _ := storage.KeyFunc(ctx, "foo") key = etcdtest.AddPrefix(key) pvStart := validNewPersistentVolume("foo") - fakeClient.Set(key, runtime.EncodeOrDie(testapi.Codec(), pvStart), 0) + fakeClient.Set(key, runtime.EncodeOrDie(testapi.Default.Codec(), pvStart), 0) pvIn := &api.PersistentVolume{ ObjectMeta: api.ObjectMeta{ diff --git a/pkg/registry/persistentvolumeclaim/etcd/etcd_test.go b/pkg/registry/persistentvolumeclaim/etcd/etcd_test.go index 049b2d128c5..acba24753a4 100644 --- a/pkg/registry/persistentvolumeclaim/etcd/etcd_test.go +++ b/pkg/registry/persistentvolumeclaim/etcd/etcd_test.go @@ -32,7 +32,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *StatusREST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "") storage, statusStorage := NewREST(etcdStorage) return storage, statusStorage, fakeClient } @@ -141,7 +141,7 @@ func TestUpdateStatus(t *testing.T) { key, _ := storage.KeyFunc(ctx, "foo") key = etcdtest.AddPrefix(key) pvcStart := validNewPersistentVolumeClaim("foo", api.NamespaceDefault) - fakeClient.Set(key, runtime.EncodeOrDie(testapi.Codec(), pvcStart), 0) + fakeClient.Set(key, runtime.EncodeOrDie(testapi.Default.Codec(), pvcStart), 0) pvc := &api.PersistentVolumeClaim{ ObjectMeta: api.ObjectMeta{ diff --git a/pkg/registry/pod/etcd/etcd_test.go b/pkg/registry/pod/etcd/etcd_test.go index ee737d6ce1b..7622132eaf6 100644 --- a/pkg/registry/pod/etcd/etcd_test.go +++ b/pkg/registry/pod/etcd/etcd_test.go @@ -37,7 +37,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *BindingREST, *StatusREST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "") storage := NewStorage(etcdStorage, false, nil) return storage.Pod, storage.Binding, storage.Status, fakeClient } @@ -256,7 +256,7 @@ func TestResourceLocation(t *testing.T) { storage, _, _, fakeClient := newStorage(t) key, _ := storage.KeyFunc(ctx, tc.pod.Name) key = etcdtest.AddPrefix(key) - if _, err := fakeClient.Set(key, runtime.EncodeOrDie(testapi.Codec(), &tc.pod), 0); err != nil { + if _, err := fakeClient.Set(key, runtime.EncodeOrDie(testapi.Default.Codec(), &tc.pod), 0); err != nil { t.Fatalf("unexpected error: %v", err) } @@ -338,7 +338,7 @@ func TestEtcdCreate(t *testing.T) { t.Fatalf("Unexpected error %v", err) } var pod api.Pod - err = testapi.Codec().DecodeInto([]byte(resp.Node.Value), &pod) + err = testapi.Default.Codec().DecodeInto([]byte(resp.Node.Value), &pod) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -424,7 +424,7 @@ func TestEtcdCreateWithContainersNotFound(t *testing.T) { t.Fatalf("Unexpected error %v", err) } var pod api.Pod - err = testapi.Codec().DecodeInto([]byte(resp.Node.Value), &pod) + err = testapi.Default.Codec().DecodeInto([]byte(resp.Node.Value), &pod) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -495,7 +495,7 @@ func TestEtcdCreateWithExistingContainers(t *testing.T) { t.Fatalf("Unexpected error %v", err) } var pod api.Pod - err = testapi.Codec().DecodeInto([]byte(resp.Node.Value), &pod) + err = testapi.Default.Codec().DecodeInto([]byte(resp.Node.Value), &pod) if err != nil { t.Errorf("unexpected error: %v", err) } @@ -578,7 +578,7 @@ func TestEtcdUpdateNotScheduled(t *testing.T) { key, _ := storage.KeyFunc(ctx, "foo") key = etcdtest.AddPrefix(key) - fakeClient.Set(key, runtime.EncodeOrDie(testapi.Codec(), validNewPod()), 1) + fakeClient.Set(key, runtime.EncodeOrDie(testapi.Default.Codec(), validNewPod()), 1) podIn := validChangedPod() _, _, err := storage.Update(ctx, podIn) @@ -590,7 +590,7 @@ func TestEtcdUpdateNotScheduled(t *testing.T) { t.Fatalf("Unexpected error: %v", err) } podOut := &api.Pod{} - testapi.Codec().DecodeInto([]byte(response.Node.Value), podOut) + testapi.Default.Codec().DecodeInto([]byte(response.Node.Value), podOut) if !api.Semantic.DeepEqual(podOut, podIn) { t.Errorf("objects differ: %v", util.ObjectDiff(podOut, podIn)) } @@ -603,7 +603,7 @@ func TestEtcdUpdateScheduled(t *testing.T) { key, _ := storage.KeyFunc(ctx, "foo") key = etcdtest.AddPrefix(key) - fakeClient.Set(key, runtime.EncodeOrDie(testapi.Codec(), &api.Pod{ + fakeClient.Set(key, runtime.EncodeOrDie(testapi.Default.Codec(), &api.Pod{ ObjectMeta: api.ObjectMeta{ Name: "foo", Namespace: api.NamespaceDefault, @@ -655,7 +655,7 @@ func TestEtcdUpdateScheduled(t *testing.T) { t.Fatalf("Unexpected error: %v", err) } var podOut api.Pod - testapi.Codec().DecodeInto([]byte(response.Node.Value), &podOut) + testapi.Default.Codec().DecodeInto([]byte(response.Node.Value), &podOut) if !api.Semantic.DeepEqual(podOut, podIn) { t.Errorf("expected: %#v, got: %#v", podOut, podIn) } @@ -684,7 +684,7 @@ func TestEtcdUpdateStatus(t *testing.T) { }, }, } - fakeClient.Set(key, runtime.EncodeOrDie(testapi.Codec(), &podStart), 0) + fakeClient.Set(key, runtime.EncodeOrDie(testapi.Default.Codec(), &podStart), 0) podIn := api.Pod{ ObjectMeta: api.ObjectMeta{ diff --git a/pkg/registry/podtemplate/etcd/etcd_test.go b/pkg/registry/podtemplate/etcd/etcd_test.go index 8fc83cc8e3b..0b712671979 100644 --- a/pkg/registry/podtemplate/etcd/etcd_test.go +++ b/pkg/registry/podtemplate/etcd/etcd_test.go @@ -28,7 +28,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "") return NewREST(etcdStorage), fakeClient } diff --git a/pkg/registry/registrytest/etcd.go b/pkg/registry/registrytest/etcd.go index 95f8aecc19b..c22a393dd1b 100644 --- a/pkg/registry/registrytest/etcd.go +++ b/pkg/registry/registrytest/etcd.go @@ -17,6 +17,7 @@ limitations under the License. package registrytest import ( + "fmt" "testing" "github.com/coreos/go-etcd/etcd" @@ -34,10 +35,10 @@ import ( "k8s.io/kubernetes/pkg/tools/etcdtest" ) -func NewEtcdStorage(t *testing.T) (storage.Interface, *tools.FakeEtcdClient) { +func NewEtcdStorage(t *testing.T, group string) (storage.Interface, *tools.FakeEtcdClient) { fakeClient := tools.NewFakeEtcdClient(t) fakeClient.TestIndex = true - etcdStorage := etcdstorage.NewEtcdStorage(fakeClient, testapi.Codec(), etcdtest.PathPrefix()) + etcdStorage := etcdstorage.NewEtcdStorage(fakeClient, testapi.Groups[group].Codec(), etcdtest.PathPrefix()) return etcdStorage, fakeClient } @@ -149,6 +150,27 @@ func (t *Tester) TestWatch(valid runtime.Object, labelsPass, labelsFail []labels } // ============================================================================= +// get codec based on runtime.Object +func getCodec(obj runtime.Object) (runtime.Codec, error) { + _, kind, err := api.Scheme.ObjectVersionAndKind(obj) + if err != nil { + return nil, fmt.Errorf("unexpected encoding error: %v", err) + } + // TODO: caesarxuchao: we should detect which group an object belongs to + // by using the version returned by Schem.ObjectVersionAndKind() once we + // split the schemes for internal objects. + // TODO: caesarxuchao: we should add a map from kind to group in Scheme. + var codec runtime.Codec + if api.Scheme.Recognizes(testapi.Default.GroupAndVersion(), kind) { + codec = testapi.Default.Codec() + } else if api.Scheme.Recognizes(testapi.Experimental.GroupAndVersion(), kind) { + codec = testapi.Experimental.Codec() + } else { + return nil, fmt.Errorf("unexpected kind: %v", kind) + } + return codec, nil +} + // Helper functions func (t *Tester) getObject(ctx api.Context, obj runtime.Object) (runtime.Object, error) { @@ -166,7 +188,12 @@ func (t *Tester) getObject(ctx api.Context, obj runtime.Object) (runtime.Object, return nil, err } result := t.storage.NewFunc() - if err := testapi.Codec().DecodeInto([]byte(resp.Node.Value), result); err != nil { + + codec, err := getCodec(obj) + if err != nil { + return nil, err + } + if err := codec.DecodeInto([]byte(resp.Node.Value), result); err != nil { return nil, err } return result, nil @@ -182,7 +209,12 @@ func (t *Tester) setObject(ctx api.Context, obj runtime.Object) error { return err } key = etcdtest.AddPrefix(key) - _, err = t.fakeClient.Set(key, runtime.EncodeOrDie(testapi.Codec(), obj), 0) + + codec, err := getCodec(obj) + if err != nil { + return err + } + _, err = t.fakeClient.Set(key, runtime.EncodeOrDie(codec, obj), 0) return err } @@ -193,8 +225,9 @@ func (t *Tester) setObjectsForList(objects []runtime.Object) []runtime.Object { if len(objects) > 0 { nodes := make([]*etcd.Node, len(objects)) for i, obj := range objects { - encoded := runtime.EncodeOrDie(testapi.Codec(), obj) - decoded, _ := testapi.Codec().Decode([]byte(encoded)) + codec, _ := getCodec(obj) + encoded := runtime.EncodeOrDie(codec, obj) + decoded, _ := codec.Decode([]byte(encoded)) nodes[i] = &etcd.Node{Value: encoded} result[i] = decoded } @@ -224,7 +257,11 @@ func (t *Tester) injectWatchError(err error) { } func (t *Tester) emitObject(obj runtime.Object, action string) error { - encoded, err := testapi.Codec().Encode(obj) + codec, err := getCodec(obj) + if err != nil { + return err + } + encoded, err := codec.Encode(obj) if err != nil { return err } diff --git a/pkg/registry/resourcequota/etcd/etcd_test.go b/pkg/registry/resourcequota/etcd/etcd_test.go index 6999bd13623..978bcfe870c 100644 --- a/pkg/registry/resourcequota/etcd/etcd_test.go +++ b/pkg/registry/resourcequota/etcd/etcd_test.go @@ -33,7 +33,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *StatusREST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "") storage, statusStorage := NewREST(etcdStorage) return storage, statusStorage, fakeClient } @@ -152,7 +152,7 @@ func TestUpdateStatus(t *testing.T) { key, _ := storage.KeyFunc(ctx, "foo") key = etcdtest.AddPrefix(key) resourcequotaStart := validNewResourceQuota() - fakeClient.Set(key, runtime.EncodeOrDie(testapi.Codec(), resourcequotaStart), 0) + fakeClient.Set(key, runtime.EncodeOrDie(testapi.Default.Codec(), resourcequotaStart), 0) resourcequotaIn := &api.ResourceQuota{ ObjectMeta: api.ObjectMeta{ diff --git a/pkg/registry/secret/etcd/etcd_test.go b/pkg/registry/secret/etcd/etcd_test.go index e7506c12123..f027c18f4ad 100644 --- a/pkg/registry/secret/etcd/etcd_test.go +++ b/pkg/registry/secret/etcd/etcd_test.go @@ -28,7 +28,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "") return NewREST(etcdStorage), fakeClient } diff --git a/pkg/registry/service/allocator/etcd/etcd_test.go b/pkg/registry/service/allocator/etcd/etcd_test.go index e1efedea0b3..1c7d89dc926 100644 --- a/pkg/registry/service/allocator/etcd/etcd_test.go +++ b/pkg/registry/service/allocator/etcd/etcd_test.go @@ -30,7 +30,7 @@ import ( ) func newStorage(t *testing.T) (*Etcd, *tools.FakeEtcdClient, allocator.Interface) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "") mem := allocator.NewAllocationMap(100, "rangeSpecValue") etcd := NewEtcd(mem, "/ranges/serviceips", "serviceipallocation", etcdStorage) return etcd, fakeClient, mem @@ -57,7 +57,7 @@ func TestEmpty(t *testing.T) { func TestStore(t *testing.T) { storage, fakeClient, backing := newStorage(t) - if _, err := fakeClient.Set(key(), runtime.EncodeOrDie(testapi.Codec(), validNewRangeAllocation()), 0); err != nil { + if _, err := fakeClient.Set(key(), runtime.EncodeOrDie(testapi.Default.Codec(), validNewRangeAllocation()), 0); err != nil { t.Fatalf("unexpected error: %v", err) } diff --git a/pkg/registry/service/etcd/etcd_test.go b/pkg/registry/service/etcd/etcd_test.go index 580d0a093a6..b05021235fb 100644 --- a/pkg/registry/service/etcd/etcd_test.go +++ b/pkg/registry/service/etcd/etcd_test.go @@ -29,7 +29,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "") return NewREST(etcdStorage), fakeClient } diff --git a/pkg/registry/service/ipallocator/etcd/etcd_test.go b/pkg/registry/service/ipallocator/etcd/etcd_test.go index 59e73b999dc..4db8f2742ce 100644 --- a/pkg/registry/service/ipallocator/etcd/etcd_test.go +++ b/pkg/registry/service/ipallocator/etcd/etcd_test.go @@ -33,7 +33,7 @@ import ( ) func newStorage(t *testing.T) (*tools.FakeEtcdClient, ipallocator.Interface, allocator.Interface) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "") _, cidr, err := net.ParseCIDR("192.168.1.0/24") if err != nil { t.Fatal(err) @@ -79,7 +79,7 @@ func TestErrors(t *testing.T) { func TestStore(t *testing.T) { fakeClient, storage, backing := newStorage(t) - if _, err := fakeClient.Set(key(), runtime.EncodeOrDie(testapi.Codec(), validNewRangeAllocation()), 0); err != nil { + if _, err := fakeClient.Set(key(), runtime.EncodeOrDie(testapi.Default.Codec(), validNewRangeAllocation()), 0); err != nil { t.Fatalf("unexpected error: %v", err) } diff --git a/pkg/registry/serviceaccount/etcd/etcd_test.go b/pkg/registry/serviceaccount/etcd/etcd_test.go index b102f965a30..af6e1631d03 100644 --- a/pkg/registry/serviceaccount/etcd/etcd_test.go +++ b/pkg/registry/serviceaccount/etcd/etcd_test.go @@ -28,7 +28,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "") return NewREST(etcdStorage), fakeClient } diff --git a/pkg/registry/thirdpartyresource/etcd/etcd_test.go b/pkg/registry/thirdpartyresource/etcd/etcd_test.go index 0f2cea31d53..14e31c5f402 100644 --- a/pkg/registry/thirdpartyresource/etcd/etcd_test.go +++ b/pkg/registry/thirdpartyresource/etcd/etcd_test.go @@ -31,7 +31,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "experimental") return NewREST(etcdStorage), fakeClient } diff --git a/pkg/registry/thirdpartyresourcedata/etcd/etcd_test.go b/pkg/registry/thirdpartyresourcedata/etcd/etcd_test.go index 6dc2bd81643..ea0f7505ca4 100644 --- a/pkg/registry/thirdpartyresourcedata/etcd/etcd_test.go +++ b/pkg/registry/thirdpartyresourcedata/etcd/etcd_test.go @@ -31,7 +31,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *tools.FakeEtcdClient) { - etcdStorage, fakeClient := registrytest.NewEtcdStorage(t) + etcdStorage, fakeClient := registrytest.NewEtcdStorage(t, "experimental") return NewREST(etcdStorage, "foo", "bar"), fakeClient } diff --git a/pkg/runtime/helper_test.go b/pkg/runtime/helper_test.go index c60ec310dd5..7ec7cbdce56 100644 --- a/pkg/runtime/helper_test.go +++ b/pkg/runtime/helper_test.go @@ -137,7 +137,7 @@ func TestDecodeList(t *testing.T) { pl := &api.List{ Items: []runtime.Object{ &api.Pod{ObjectMeta: api.ObjectMeta{Name: "1"}}, - &runtime.Unknown{TypeMeta: runtime.TypeMeta{Kind: "Pod", APIVersion: testapi.Version()}, RawJSON: []byte(`{"kind":"Pod","apiVersion":"` + testapi.Version() + `","metadata":{"name":"test"}}`)}, + &runtime.Unknown{TypeMeta: runtime.TypeMeta{Kind: "Pod", APIVersion: testapi.Default.Version()}, RawJSON: []byte(`{"kind":"Pod","apiVersion":"` + testapi.Default.Version() + `","metadata":{"name":"test"}}`)}, &runtime.Unstructured{TypeMeta: runtime.TypeMeta{Kind: "Foo", APIVersion: "Bar"}, Object: map[string]interface{}{"test": "value"}}, }, } diff --git a/pkg/runtime/unstructured_test.go b/pkg/runtime/unstructured_test.go index 2d9b884cfbe..8780ea29a6c 100644 --- a/pkg/runtime/unstructured_test.go +++ b/pkg/runtime/unstructured_test.go @@ -26,7 +26,7 @@ import ( ) func TestDecodeUnstructured(t *testing.T) { - version := testapi.Version() + version := testapi.Default.Version() rawJson := fmt.Sprintf(`{"kind":"Pod","apiVersion":"%s","metadata":{"name":"test"}}`, version) pl := &api.List{ Items: []runtime.Object{ diff --git a/pkg/storage/cacher_test.go b/pkg/storage/cacher_test.go index 7a160e50a09..b9b7895efac 100644 --- a/pkg/storage/cacher_test.go +++ b/pkg/storage/cacher_test.go @@ -43,7 +43,7 @@ func newTestCacher(client tools.EtcdClient) *storage.Cacher { config := storage.CacherConfig{ CacheCapacity: 10, Versioner: etcdstorage.APIObjectVersioner{}, - Storage: etcdstorage.NewEtcdStorage(client, testapi.Codec(), etcdtest.PathPrefix()), + Storage: etcdstorage.NewEtcdStorage(client, testapi.Default.Codec(), etcdtest.PathPrefix()), Type: &api.Pod{}, ResourcePrefix: prefix, KeyFunc: func(obj runtime.Object) (string, error) { return storage.NamespaceKeyFunc(prefix, obj) }, @@ -94,7 +94,7 @@ func TestListFromMemory(t *testing.T) { { Action: "create", Node: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podFoo)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podFoo)), CreatedIndex: 1, ModifiedIndex: 1, }, @@ -102,7 +102,7 @@ func TestListFromMemory(t *testing.T) { { Action: "create", Node: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podBar)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podBar)), CreatedIndex: 2, ModifiedIndex: 2, }, @@ -110,7 +110,7 @@ func TestListFromMemory(t *testing.T) { { Action: "create", Node: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podBaz)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podBaz)), CreatedIndex: 3, ModifiedIndex: 3, }, @@ -118,12 +118,12 @@ func TestListFromMemory(t *testing.T) { { Action: "set", Node: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podFooPrime)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podFooPrime)), CreatedIndex: 1, ModifiedIndex: 4, }, PrevNode: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podFoo)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podFoo)), CreatedIndex: 1, ModifiedIndex: 1, }, @@ -135,7 +135,7 @@ func TestListFromMemory(t *testing.T) { ModifiedIndex: 5, }, PrevNode: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podBar)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podBar)), CreatedIndex: 1, ModifiedIndex: 1, }, @@ -210,7 +210,7 @@ func TestWatch(t *testing.T) { etcdResponse: &etcd.Response{ Action: "create", Node: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podFoo)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podFoo)), CreatedIndex: 1, ModifiedIndex: 1, }, @@ -223,7 +223,7 @@ func TestWatch(t *testing.T) { etcdResponse: &etcd.Response{ Action: "create", Node: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podBar)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podBar)), CreatedIndex: 2, ModifiedIndex: 2, }, @@ -236,12 +236,12 @@ func TestWatch(t *testing.T) { etcdResponse: &etcd.Response{ Action: "set", Node: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podFoo)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podFoo)), CreatedIndex: 1, ModifiedIndex: 3, }, PrevNode: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podFoo)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podFoo)), CreatedIndex: 1, ModifiedIndex: 1, }, @@ -326,7 +326,7 @@ func TestFiltering(t *testing.T) { etcdResponse: &etcd.Response{ Action: "create", Node: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podFoo)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podFoo)), CreatedIndex: 1, ModifiedIndex: 1, }, @@ -339,12 +339,12 @@ func TestFiltering(t *testing.T) { etcdResponse: &etcd.Response{ Action: "set", Node: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podFooFiltered)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podFooFiltered)), CreatedIndex: 1, ModifiedIndex: 2, }, PrevNode: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podFoo)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podFoo)), CreatedIndex: 1, ModifiedIndex: 1, }, @@ -358,12 +358,12 @@ func TestFiltering(t *testing.T) { etcdResponse: &etcd.Response{ Action: "set", Node: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podFoo)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podFoo)), CreatedIndex: 1, ModifiedIndex: 3, }, PrevNode: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podFooFiltered)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podFooFiltered)), CreatedIndex: 1, ModifiedIndex: 2, }, @@ -377,12 +377,12 @@ func TestFiltering(t *testing.T) { etcdResponse: &etcd.Response{ Action: "set", Node: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podFoo)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podFoo)), CreatedIndex: 1, ModifiedIndex: 4, }, PrevNode: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podFoo)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podFoo)), CreatedIndex: 1, ModifiedIndex: 3, }, @@ -399,7 +399,7 @@ func TestFiltering(t *testing.T) { ModifiedIndex: 5, }, PrevNode: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podFoo)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podFoo)), CreatedIndex: 1, ModifiedIndex: 4, }, @@ -462,7 +462,7 @@ func TestStorageError(t *testing.T) { fakeClient.WatchResponse <- &etcd.Response{ Action: "create", Node: &etcd.Node{ - Value: string(runtime.EncodeOrDie(testapi.Codec(), podFoo)), + Value: string(runtime.EncodeOrDie(testapi.Default.Codec(), podFoo)), CreatedIndex: 1, ModifiedIndex: 1, }, diff --git a/pkg/storage/etcd/etcd_helper_test.go b/pkg/storage/etcd/etcd_helper_test.go index c84b66f808d..99820304b98 100644 --- a/pkg/storage/etcd/etcd_helper_test.go +++ b/pkg/storage/etcd/etcd_helper_test.go @@ -57,8 +57,8 @@ var codec runtime.Codec func init() { scheme = runtime.NewScheme() scheme.AddKnownTypes("", &TestResource{}) - scheme.AddKnownTypes(testapi.Version(), &TestResource{}) - codec = runtime.CodecFor(scheme, testapi.Version()) + scheme.AddKnownTypes(testapi.Default.Version(), &TestResource{}) + codec = runtime.CodecFor(scheme, testapi.Default.Version()) scheme.AddConversionFuncs( func(in *TestResource, out *TestResource, s conversion.Scope) error { *out = *in @@ -85,7 +85,7 @@ func TestIsEtcdNotFound(t *testing.T) { // Returns an encoded version of api.Pod with the given name. func getEncodedPod(name string) string { - pod, _ := testapi.Codec().Encode(&api.Pod{ + pod, _ := testapi.Default.Codec().Encode(&api.Pod{ ObjectMeta: api.ObjectMeta{Name: name}, }) return string(pod) @@ -93,7 +93,7 @@ func getEncodedPod(name string) string { func TestList(t *testing.T) { fakeClient := tools.NewFakeEtcdClient(t) - helper := newEtcdHelper(fakeClient, testapi.Codec(), etcdtest.PathPrefix()) + helper := newEtcdHelper(fakeClient, testapi.Default.Codec(), etcdtest.PathPrefix()) key := etcdtest.AddPrefix("/some/key") fakeClient.Data[key] = tools.EtcdResponseWithError{ R: &etcd.Response{ @@ -167,7 +167,7 @@ func TestList(t *testing.T) { // TestListAcrossDirectories ensures that the client excludes directories and flattens tree-response - simulates cross-namespace query func TestListAcrossDirectories(t *testing.T) { fakeClient := tools.NewFakeEtcdClient(t) - helper := newEtcdHelper(fakeClient, testapi.Codec(), etcdtest.PathPrefix()) + helper := newEtcdHelper(fakeClient, testapi.Default.Codec(), etcdtest.PathPrefix()) key := etcdtest.AddPrefix("/some/key") fakeClient.Data[key] = tools.EtcdResponseWithError{ R: &etcd.Response{ @@ -254,7 +254,7 @@ func TestListAcrossDirectories(t *testing.T) { func TestListExcludesDirectories(t *testing.T) { fakeClient := tools.NewFakeEtcdClient(t) - helper := newEtcdHelper(fakeClient, testapi.Codec(), etcdtest.PathPrefix()) + helper := newEtcdHelper(fakeClient, testapi.Default.Codec(), etcdtest.PathPrefix()) key := etcdtest.AddPrefix("/some/key") fakeClient.Data[key] = tools.EtcdResponseWithError{ R: &etcd.Response{ @@ -329,7 +329,7 @@ func TestListExcludesDirectories(t *testing.T) { func TestGet(t *testing.T) { fakeClient := tools.NewFakeEtcdClient(t) - helper := newEtcdHelper(fakeClient, testapi.Codec(), etcdtest.PathPrefix()) + helper := newEtcdHelper(fakeClient, testapi.Default.Codec(), etcdtest.PathPrefix()) key := etcdtest.AddPrefix("/some/key") grace := int64(30) expect := api.Pod{ @@ -340,7 +340,7 @@ func TestGet(t *testing.T) { TerminationGracePeriodSeconds: &grace, }, } - fakeClient.Set(key, runtime.EncodeOrDie(testapi.Codec(), &expect), 0) + fakeClient.Set(key, runtime.EncodeOrDie(testapi.Default.Codec(), &expect), 0) var got api.Pod err := helper.Get("/some/key", &got, false) if err != nil { @@ -353,7 +353,7 @@ func TestGet(t *testing.T) { func TestGetNotFoundErr(t *testing.T) { fakeClient := tools.NewFakeEtcdClient(t) - helper := newEtcdHelper(fakeClient, testapi.Codec(), etcdtest.PathPrefix()) + helper := newEtcdHelper(fakeClient, testapi.Default.Codec(), etcdtest.PathPrefix()) key1 := etcdtest.AddPrefix("/some/key") fakeClient.Data[key1] = tools.EtcdResponseWithError{ R: &etcd.Response{ @@ -397,13 +397,13 @@ func TestGetNotFoundErr(t *testing.T) { func TestCreate(t *testing.T) { obj := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}} fakeClient := tools.NewFakeEtcdClient(t) - helper := newEtcdHelper(fakeClient, testapi.Codec(), etcdtest.PathPrefix()) + helper := newEtcdHelper(fakeClient, testapi.Default.Codec(), etcdtest.PathPrefix()) returnedObj := &api.Pod{} err := helper.Create("/some/key", obj, returnedObj, 5) if err != nil { t.Errorf("Unexpected error %#v", err) } - data, err := testapi.Codec().Encode(obj) + data, err := testapi.Default.Codec().Encode(obj) if err != nil { t.Errorf("Unexpected error %#v", err) } @@ -423,7 +423,7 @@ func TestCreate(t *testing.T) { func TestCreateNilOutParam(t *testing.T) { obj := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}} fakeClient := tools.NewFakeEtcdClient(t) - helper := newEtcdHelper(fakeClient, testapi.Codec(), etcdtest.PathPrefix()) + helper := newEtcdHelper(fakeClient, testapi.Default.Codec(), etcdtest.PathPrefix()) err := helper.Create("/some/key", obj, nil, 5) if err != nil { t.Errorf("Unexpected error %#v", err) @@ -433,13 +433,13 @@ func TestCreateNilOutParam(t *testing.T) { func TestSet(t *testing.T) { obj := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}} fakeClient := tools.NewFakeEtcdClient(t) - helper := newEtcdHelper(fakeClient, testapi.Codec(), etcdtest.PathPrefix()) + helper := newEtcdHelper(fakeClient, testapi.Default.Codec(), etcdtest.PathPrefix()) returnedObj := &api.Pod{} err := helper.Set("/some/key", obj, returnedObj, 5) if err != nil { t.Errorf("Unexpected error %#v", err) } - data, err := testapi.Codec().Encode(obj) + data, err := testapi.Default.Codec().Encode(obj) if err != nil { t.Errorf("Unexpected error %#v", err) } @@ -461,7 +461,7 @@ func TestSetFailCAS(t *testing.T) { obj := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo", ResourceVersion: "1"}} fakeClient := tools.NewFakeEtcdClient(t) fakeClient.CasErr = fakeClient.NewError(123) - helper := newEtcdHelper(fakeClient, testapi.Codec(), etcdtest.PathPrefix()) + helper := newEtcdHelper(fakeClient, testapi.Default.Codec(), etcdtest.PathPrefix()) err := helper.Set("/some/key", obj, nil, 5) if err == nil { t.Errorf("Expecting error.") @@ -472,12 +472,12 @@ func TestSetWithVersion(t *testing.T) { obj := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo", ResourceVersion: "1"}} fakeClient := tools.NewFakeEtcdClient(t) fakeClient.TestIndex = true - helper := newEtcdHelper(fakeClient, testapi.Codec(), etcdtest.PathPrefix()) + helper := newEtcdHelper(fakeClient, testapi.Default.Codec(), etcdtest.PathPrefix()) key := etcdtest.AddPrefix("/some/key") fakeClient.Data[key] = tools.EtcdResponseWithError{ R: &etcd.Response{ Node: &etcd.Node{ - Value: runtime.EncodeOrDie(testapi.Codec(), obj), + Value: runtime.EncodeOrDie(testapi.Default.Codec(), obj), ModifiedIndex: 1, }, }, @@ -488,7 +488,7 @@ func TestSetWithVersion(t *testing.T) { if err != nil { t.Fatalf("Unexpected error %#v", err) } - data, err := testapi.Codec().Encode(obj) + data, err := testapi.Default.Codec().Encode(obj) if err != nil { t.Fatalf("Unexpected error %#v", err) } @@ -508,7 +508,7 @@ func TestSetWithVersion(t *testing.T) { func TestSetWithoutResourceVersioner(t *testing.T) { obj := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}} fakeClient := tools.NewFakeEtcdClient(t) - helper := newEtcdHelper(fakeClient, testapi.Codec(), etcdtest.PathPrefix()) + helper := newEtcdHelper(fakeClient, testapi.Default.Codec(), etcdtest.PathPrefix()) helper.versioner = nil returnedObj := &api.Pod{} err := helper.Set("/some/key", obj, returnedObj, 3) @@ -516,7 +516,7 @@ func TestSetWithoutResourceVersioner(t *testing.T) { if err != nil { t.Errorf("Unexpected error %#v", err) } - data, err := testapi.Codec().Encode(obj) + data, err := testapi.Default.Codec().Encode(obj) if err != nil { t.Errorf("Unexpected error %#v", err) } @@ -536,7 +536,7 @@ func TestSetWithoutResourceVersioner(t *testing.T) { func TestSetNilOutParam(t *testing.T) { obj := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}} fakeClient := tools.NewFakeEtcdClient(t) - helper := newEtcdHelper(fakeClient, testapi.Codec(), etcdtest.PathPrefix()) + helper := newEtcdHelper(fakeClient, testapi.Default.Codec(), etcdtest.PathPrefix()) helper.versioner = nil err := helper.Set("/some/key", obj, nil, 3) if err != nil { @@ -860,7 +860,7 @@ func TestGetEtcdVersion_NotListening(t *testing.T) { func TestPrefixEtcdKey(t *testing.T) { fakeClient := tools.NewFakeEtcdClient(t) prefix := path.Join("/", etcdtest.PathPrefix()) - helper := newEtcdHelper(fakeClient, testapi.Codec(), prefix) + helper := newEtcdHelper(fakeClient, testapi.Default.Codec(), prefix) baseKey := "/some/key" diff --git a/pkg/watch/json/decoder_test.go b/pkg/watch/json/decoder_test.go index c2e8d2be810..ba7bf7640fc 100644 --- a/pkg/watch/json/decoder_test.go +++ b/pkg/watch/json/decoder_test.go @@ -33,12 +33,12 @@ func TestDecoder(t *testing.T) { for _, eventType := range table { out, in := io.Pipe() - decoder := NewDecoder(out, testapi.Codec()) + decoder := NewDecoder(out, testapi.Default.Codec()) expect := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}} encoder := json.NewEncoder(in) go func() { - data, err := testapi.Codec().Encode(expect) + data, err := testapi.Default.Codec().Encode(expect) if err != nil { t.Fatalf("Unexpected error %v", err) } @@ -81,7 +81,7 @@ func TestDecoder(t *testing.T) { func TestDecoder_SourceClose(t *testing.T) { out, in := io.Pipe() - decoder := NewDecoder(out, testapi.Codec()) + decoder := NewDecoder(out, testapi.Default.Codec()) done := make(chan struct{}) diff --git a/pkg/watch/json/encoder_test.go b/pkg/watch/json/encoder_test.go index c5a0cfd1c56..92550692fdd 100644 --- a/pkg/watch/json/encoder_test.go +++ b/pkg/watch/json/encoder_test.go @@ -36,17 +36,17 @@ func TestEncodeDecodeRoundTrip(t *testing.T) { { watch.Added, &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}}, - testapi.Codec(), + testapi.Default.Codec(), }, { watch.Modified, &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}}, - testapi.Codec(), + testapi.Default.Codec(), }, { watch.Deleted, &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}}, - testapi.Codec(), + testapi.Default.Codec(), }, } for i, testCase := range testCases { diff --git a/plugin/pkg/scheduler/factory/factory_test.go b/plugin/pkg/scheduler/factory/factory_test.go index 9301e78ff00..e18250224e6 100644 --- a/plugin/pkg/scheduler/factory/factory_test.go +++ b/plugin/pkg/scheduler/factory/factory_test.go @@ -43,7 +43,7 @@ func TestCreate(t *testing.T) { } server := httptest.NewServer(&handler) defer server.Close() - client := client.NewOrDie(&client.Config{Host: server.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: server.URL, Version: testapi.Default.Version()}) factory := NewConfigFactory(client, nil) factory.Create() } @@ -61,7 +61,7 @@ func TestCreateFromConfig(t *testing.T) { } server := httptest.NewServer(&handler) defer server.Close() - client := client.NewOrDie(&client.Config{Host: server.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: server.URL, Version: testapi.Default.Version()}) factory := NewConfigFactory(client, nil) // Pre-register some predicate and priority functions @@ -103,7 +103,7 @@ func TestCreateFromEmptyConfig(t *testing.T) { } server := httptest.NewServer(&handler) defer server.Close() - client := client.NewOrDie(&client.Config{Host: server.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: server.URL, Version: testapi.Default.Version()}) factory := NewConfigFactory(client, nil) configData = []byte(`{}`) @@ -149,10 +149,10 @@ func TestDefaultErrorFunc(t *testing.T) { mux := http.NewServeMux() // FakeHandler musn't be sent requests other than the one you want to test. - mux.Handle(testapi.ResourcePath("pods", "bar", "foo"), &handler) + mux.Handle(testapi.Default.ResourcePath("pods", "bar", "foo"), &handler) server := httptest.NewServer(mux) defer server.Close() - factory := NewConfigFactory(client.NewOrDie(&client.Config{Host: server.URL, Version: testapi.Version()}), nil) + factory := NewConfigFactory(client.NewOrDie(&client.Config{Host: server.URL, Version: testapi.Default.Version()}), nil) queue := cache.NewFIFO(cache.MetaNamespaceKeyFunc) podBackoff := podBackoff{ perPodBackoff: map[string]*backoffEntry{}, @@ -172,7 +172,7 @@ func TestDefaultErrorFunc(t *testing.T) { if !exists { continue } - handler.ValidateRequest(t, testapi.ResourcePath("pods", "bar", "foo"), "GET", nil) + handler.ValidateRequest(t, testapi.Default.ResourcePath("pods", "bar", "foo"), "GET", nil) if e, a := testPod, got; !reflect.DeepEqual(e, a) { t.Errorf("Expected %v, got %v", e, a) } @@ -235,15 +235,15 @@ func TestBind(t *testing.T) { } server := httptest.NewServer(&handler) defer server.Close() - client := client.NewOrDie(&client.Config{Host: server.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: server.URL, Version: testapi.Default.Version()}) b := binder{client} if err := b.Bind(item.binding); err != nil { t.Errorf("Unexpected error: %v", err) continue } - expectedBody := runtime.EncodeOrDie(testapi.Codec(), item.binding) - handler.ValidateRequest(t, testapi.ResourcePath("bindings", api.NamespaceDefault, ""), "POST", &expectedBody) + expectedBody := runtime.EncodeOrDie(testapi.Default.Codec(), item.binding) + handler.ValidateRequest(t, testapi.Default.ResourcePath("bindings", api.NamespaceDefault, ""), "POST", &expectedBody) } } diff --git a/plugin/pkg/scheduler/scheduler_test.go b/plugin/pkg/scheduler/scheduler_test.go index 21145ce168a..3e2f7f13016 100644 --- a/plugin/pkg/scheduler/scheduler_test.go +++ b/plugin/pkg/scheduler/scheduler_test.go @@ -40,7 +40,7 @@ func (fb fakeBinder) Bind(binding *api.Binding) error { return fb.b(binding) } func podWithID(id, desiredHost string) *api.Pod { return &api.Pod{ - ObjectMeta: api.ObjectMeta{Name: id, SelfLink: testapi.SelfLink("pods", id)}, + ObjectMeta: api.ObjectMeta{Name: id, SelfLink: testapi.Default.SelfLink("pods", id)}, Spec: api.PodSpec{ NodeName: desiredHost, }, diff --git a/shippable.yml b/shippable.yml index 5686b3e3cad..be7bb3d2c08 100644 --- a/shippable.yml +++ b/shippable.yml @@ -6,7 +6,7 @@ matrix: include: - go: 1.4 env: - - KUBE_TEST_API_VERSIONS=v1 KUBE_TEST_ETCD_PREFIXES=registry + - KUBE_TEST_API_VERSIONS=v1,experimental/v1 KUBE_TEST_ETCD_PREFIXES=registry - KUBE_JUNIT_REPORT_DIR="${SHIPPABLE_REPO_DIR}/shippable/testresults" - CI_NAME="shippable" - CI_BUILD_NUMBER="$BUILD_NUMBER" @@ -17,7 +17,7 @@ matrix: - secure: hfh1Kwl2XYUlJCn4dtKSG0C9yXl5TtksVOY74OeqolvDAdVj4sc+GJD3Bywsp91CJe8YMEnkt9rN0WGI+gPVMcjTmZ9tMUxKiNNBP8m5oLRFbdgKOkNuXjpjpFHHWGAnNhMmh9vjI+ehADo+QIpU1fGxd3yO4tmIJ1qoK3QqvUrOZ1RwUubRXoeVn3xy3LK5yg4vP5ruitbNeWMw/RZZ7D6czvqvEfCgV6b4mdNDRMiqlUJNkaTRc3em1APXr30yagDV3a7hXLq3HdlyFwvF+9pmB4AKhQctyjPN4zvvPd0/gJXq3ZHXSlZXOZBMPXHlSS5pizfSInNszyZyrP3+/w== - go: 1.3 env: - - KUBE_TEST_API_VERSIONS=v1 KUBE_TEST_ETCD_PREFIXES=kubernetes.io/registry + - KUBE_TEST_API_VERSIONS=v1,experimental/v1 KUBE_TEST_ETCD_PREFIXES=kubernetes.io/registry - KUBE_JUNIT_REPORT_DIR="${SHIPPABLE_REPO_DIR}/shippable/testresults" - CI_NAME="shippable" - CI_BUILD_NUMBER="$BUILD_NUMBER" @@ -45,8 +45,17 @@ install: - ./hack/build-go.sh - godep go install ./... - ./hack/travis/install-etcd.sh + - ./hack/verify-gofmt.sh + - ./hack/verify-boilerplate.sh + - ./hack/verify-description.sh + - ./hack/verify-flags-underscore.py + - ./hack/verify-godeps.sh ${BASE_BRANCH} - ./hack/travis/install-std-race.sh - - make verify BRANCH=${BASE_BRANCH} + - ./hack/verify-generated-conversions.sh + - ./hack/verify-generated-deep-copies.sh + - ./hack/verify-generated-docs.sh + - ./hack/verify-swagger-spec.sh + - ./hack/verify-linkcheck.sh script: # Disable coverage collection on pull requests diff --git a/test/e2e/persistent_volumes.go b/test/e2e/persistent_volumes.go index 968bfac6db1..8341a27a066 100644 --- a/test/e2e/persistent_volumes.go +++ b/test/e2e/persistent_volumes.go @@ -163,7 +163,7 @@ func makeCheckPod(ns string, nfsserver string) *api.Pod { return &api.Pod{ TypeMeta: api.TypeMeta{ Kind: "Pod", - APIVersion: testapi.Version(), + APIVersion: testapi.Default.Version(), }, ObjectMeta: api.ObjectMeta{ GenerateName: "checker-", diff --git a/test/e2e/proxy.go b/test/e2e/proxy.go index 3e0ac808876..b1149d8159e 100644 --- a/test/e2e/proxy.go +++ b/test/e2e/proxy.go @@ -36,7 +36,7 @@ import ( ) var _ = Describe("Proxy", func() { - version := testapi.Version() + version := testapi.Default.Version() Context("version "+version, func() { proxyContext(version) }) }) diff --git a/test/integration/auth_test.go b/test/integration/auth_test.go index 5e8a29b2b3d..e1f3577f7f9 100644 --- a/test/integration/auth_test.go +++ b/test/integration/auth_test.go @@ -65,22 +65,22 @@ func getTestTokenAuth() authenticator.Request { } func path(resource, namespace, name string) string { - return testapi.ResourcePath(resource, namespace, name) + return testapi.Default.ResourcePath(resource, namespace, name) } func pathWithPrefix(prefix, resource, namespace, name string) string { - return testapi.ResourcePathWithPrefix(prefix, resource, namespace, name) + return testapi.Default.ResourcePathWithPrefix(prefix, resource, namespace, name) } func timeoutPath(resource, namespace, name string) string { - return addTimeoutFlag(testapi.ResourcePath(resource, namespace, name)) + return addTimeoutFlag(testapi.Default.ResourcePath(resource, namespace, name)) } // Bodies for requests used in subsequent tests. var aPod string = ` { "kind": "Pod", - "apiVersion": "` + testapi.Version() + `", + "apiVersion": "` + testapi.Default.Version() + `", "metadata": { "name": "a", "creationTimestamp": null%s @@ -98,7 +98,7 @@ var aPod string = ` var aRC string = ` { "kind": "ReplicationController", - "apiVersion": "` + testapi.Version() + `", + "apiVersion": "` + testapi.Default.Version() + `", "metadata": { "name": "a", "labels": { @@ -131,7 +131,7 @@ var aRC string = ` var aService string = ` { "kind": "Service", - "apiVersion": "` + testapi.Version() + `", + "apiVersion": "` + testapi.Default.Version() + `", "metadata": { "name": "a", "labels": { @@ -155,7 +155,7 @@ var aService string = ` var aNode string = ` { "kind": "Node", - "apiVersion": "` + testapi.Version() + `", + "apiVersion": "` + testapi.Default.Version() + `", "metadata": { "name": "a"%s }, @@ -167,7 +167,7 @@ var aNode string = ` var aEvent string = ` { "kind": "Event", - "apiVersion": "` + testapi.Version() + `", + "apiVersion": "` + testapi.Default.Version() + `", "metadata": { "name": "a"%s }, @@ -183,7 +183,7 @@ var aEvent string = ` var aBinding string = ` { "kind": "Binding", - "apiVersion": "` + testapi.Version() + `", + "apiVersion": "` + testapi.Default.Version() + `", "metadata": { "name": "a"%s }, @@ -206,7 +206,7 @@ var emptyEndpoints string = ` var aEndpoints string = ` { "kind": "Endpoints", - "apiVersion": "` + testapi.Version() + `", + "apiVersion": "` + testapi.Default.Version() + `", "metadata": { "name": "a"%s }, @@ -231,7 +231,7 @@ var aEndpoints string = ` var deleteNow string = ` { "kind": "DeleteOptions", - "apiVersion": "` + testapi.Version() + `", + "apiVersion": "` + testapi.Default.Version() + `", "gracePeriodSeconds": 0%s } ` diff --git a/test/integration/client_test.go b/test/integration/client_test.go index 732fc52aa45..c27390fff02 100644 --- a/test/integration/client_test.go +++ b/test/integration/client_test.go @@ -43,7 +43,7 @@ func TestClient(t *testing.T) { ns := api.NamespaceDefault framework.DeleteAllEtcdKeys() - client := client.NewOrDie(&client.Config{Host: s.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: s.URL, Version: testapi.Default.Version()}) info, err := client.ServerVersion() if err != nil { @@ -113,7 +113,7 @@ func TestSingleWatch(t *testing.T) { ns := "blargh" deleteAllEtcdKeys() - client := client.NewOrDie(&client.Config{Host: s.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: s.URL, Version: testapi.Default.Version()}) mkEvent := func(i int) *api.Event { name := fmt.Sprintf("event-%v", i) @@ -197,7 +197,7 @@ func TestMultiWatch(t *testing.T) { defer s.Close() ns := api.NamespaceDefault - client := client.NewOrDie(&client.Config{Host: s.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: s.URL, Version: testapi.Default.Version()}) dummyEvent := func(i int) *api.Event { name := fmt.Sprintf("unrelated-%v", i) diff --git a/test/integration/etcd_tools_test.go b/test/integration/etcd_tools_test.go index 60b9408edb0..9eb6b9c58b6 100644 --- a/test/integration/etcd_tools_test.go +++ b/test/integration/etcd_tools_test.go @@ -34,7 +34,7 @@ import ( func TestSet(t *testing.T) { client := framework.NewEtcdClient() - etcdStorage := etcd.NewEtcdStorage(client, testapi.Codec(), "") + etcdStorage := etcd.NewEtcdStorage(client, testapi.Default.Codec(), "") framework.WithEtcdKey(func(key string) { testObject := api.ServiceAccount{ObjectMeta: api.ObjectMeta{Name: "foo"}} if err := etcdStorage.Set(key, &testObject, nil, 0); err != nil { @@ -44,7 +44,7 @@ func TestSet(t *testing.T) { if err != nil || resp.Node == nil { t.Fatalf("unexpected error: %v %v", err, resp) } - decoded, err := testapi.Codec().Decode([]byte(resp.Node.Value)) + decoded, err := testapi.Default.Codec().Decode([]byte(resp.Node.Value)) if err != nil { t.Fatalf("unexpected response: %#v", resp.Node) } @@ -57,10 +57,10 @@ func TestSet(t *testing.T) { func TestGet(t *testing.T) { client := framework.NewEtcdClient() - etcdStorage := etcd.NewEtcdStorage(client, testapi.Codec(), "") + etcdStorage := etcd.NewEtcdStorage(client, testapi.Default.Codec(), "") framework.WithEtcdKey(func(key string) { testObject := api.ServiceAccount{ObjectMeta: api.ObjectMeta{Name: "foo"}} - coded, err := testapi.Codec().Encode(&testObject) + coded, err := testapi.Default.Codec().Encode(&testObject) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -82,7 +82,7 @@ func TestGet(t *testing.T) { func TestWriteTTL(t *testing.T) { client := framework.NewEtcdClient() - etcdStorage := etcd.NewEtcdStorage(client, testapi.Codec(), "") + etcdStorage := etcd.NewEtcdStorage(client, testapi.Default.Codec(), "") framework.WithEtcdKey(func(key string) { testObject := api.ServiceAccount{ObjectMeta: api.ObjectMeta{Name: "foo"}} if err := etcdStorage.Set(key, &testObject, nil, 0); err != nil { @@ -135,10 +135,10 @@ func TestWriteTTL(t *testing.T) { func TestWatch(t *testing.T) { client := framework.NewEtcdClient() - etcdStorage := etcd.NewEtcdStorage(client, testapi.Codec(), etcdtest.PathPrefix()) + etcdStorage := etcd.NewEtcdStorage(client, testapi.Default.Codec(), etcdtest.PathPrefix()) framework.WithEtcdKey(func(key string) { key = etcdtest.AddPrefix(key) - resp, err := client.Set(key, runtime.EncodeOrDie(testapi.Codec(), &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}}), 0) + resp, err := client.Set(key, runtime.EncodeOrDie(testapi.Default.Codec(), &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}}), 0) if err != nil { t.Fatalf("unexpected error: %v", err) } diff --git a/test/integration/framework/etcd_utils.go b/test/integration/framework/etcd_utils.go index d4cc7a0164e..e4f09ecad1f 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.Version(), etcdtest.PathPrefix()) + return master.NewEtcdStorage(NewEtcdClient(), latest.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 31b7dc8275b..7c90f1596a1 100644 --- a/test/integration/framework/master_utils.go +++ b/test/integration/framework/master_utils.go @@ -99,7 +99,7 @@ func NewMasterComponents(c *Config) *MasterComponents { if c.DeleteEtcdKeys { DeleteAllEtcdKeys() } - restClient := client.NewOrDie(&client.Config{Host: s.URL, Version: testapi.Version(), QPS: c.QPS, Burst: c.Burst}) + restClient := client.NewOrDie(&client.Config{Host: s.URL, Version: testapi.Default.Version(), QPS: c.QPS, Burst: c.Burst}) rcStopCh := make(chan struct{}) controllerManager := replicationcontroller.NewReplicationManager(restClient, c.Burst) @@ -269,7 +269,7 @@ 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.Version(), etcdtest.PathPrefix()) + etcdStorage, err := master.NewEtcdStorage(etcdClient, latest.InterfacesFor, testapi.Default.Version(), etcdtest.PathPrefix()) if err != nil { t.Fatalf("unexpected error: %v", err) } diff --git a/test/integration/metrics_test.go b/test/integration/metrics_test.go index 4455bdba0c4..d3dc6945c78 100644 --- a/test/integration/metrics_test.go +++ b/test/integration/metrics_test.go @@ -109,7 +109,7 @@ func TestApiserverMetrics(t *testing.T) { // Make a request to the apiserver to ensure there's at least one data point // for the metrics we're expecting -- otherwise, they won't be exported. - client := client.NewOrDie(&client.Config{Host: s.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: s.URL, Version: testapi.Default.Version()}) if _, err := client.Pods(api.NamespaceDefault).List(labels.Everything(), fields.Everything()); err != nil { t.Fatalf("unexpected error getting pods: %v", err) } diff --git a/test/integration/persistent_volumes_test.go b/test/integration/persistent_volumes_test.go index 93b979b2ca3..fdd1f406dd8 100644 --- a/test/integration/persistent_volumes_test.go +++ b/test/integration/persistent_volumes_test.go @@ -40,7 +40,7 @@ func TestPersistentVolumeClaimBinder(t *testing.T) { defer s.Close() deleteAllEtcdKeys() - client := client.NewOrDie(&client.Config{Host: s.URL, Version: testapi.Version()}) + client := client.NewOrDie(&client.Config{Host: s.URL, Version: testapi.Default.Version()}) binder := volumeclaimbinder.NewPersistentVolumeClaimBinder(client, 1*time.Second) binder.Run() diff --git a/test/integration/scheduler_test.go b/test/integration/scheduler_test.go index 3dfe04b9bf0..a6042900afa 100644 --- a/test/integration/scheduler_test.go +++ b/test/integration/scheduler_test.go @@ -77,7 +77,7 @@ func TestUnschedulableNodes(t *testing.T) { AdmissionControl: admit.NewAlwaysAdmit(), }) - restClient := client.NewOrDie(&client.Config{Host: s.URL, Version: testapi.Version()}) + restClient := client.NewOrDie(&client.Config{Host: s.URL, Version: testapi.Default.Version()}) schedulerConfigFactory := factory.NewConfigFactory(restClient, nil) schedulerConfig, err := schedulerConfigFactory.Create() diff --git a/test/integration/secret_test.go b/test/integration/secret_test.go index e1627c709e1..77191c61634 100644 --- a/test/integration/secret_test.go +++ b/test/integration/secret_test.go @@ -71,8 +71,8 @@ func TestSecrets(t *testing.T) { }) framework.DeleteAllEtcdKeys() - client := client.NewOrDie(&client.Config{Host: s.URL, Version: testapi.Version()}) - DoTestSecrets(t, client, testapi.Version()) + client := client.NewOrDie(&client.Config{Host: s.URL, Version: testapi.Default.Version()}) + DoTestSecrets(t, client, testapi.Default.Version()) } // DoTestSecrets test secrets for one api version. diff --git a/test/integration/service_account_test.go b/test/integration/service_account_test.go index 8b915cff163..7218b547f8a 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.Version(), etcdtest.PathPrefix()) + etcdStorage, err := master.NewEtcdStorage(newEtcdClient(), latest.InterfacesFor, testapi.Default.Version(), etcdtest.PathPrefix()) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -353,9 +353,9 @@ func startServiceAccountTestServer(t *testing.T) (*client.Client, client.Config, })) // Anonymous client config - clientConfig := client.Config{Host: apiServer.URL, Version: testapi.Version()} + clientConfig := client.Config{Host: apiServer.URL, Version: testapi.Default.Version()} // Root client - rootClient := client.NewOrDie(&client.Config{Host: apiServer.URL, Version: testapi.Version(), BearerToken: rootToken}) + rootClient := client.NewOrDie(&client.Config{Host: apiServer.URL, Version: testapi.Default.Version(), BearerToken: rootToken}) // Set up two authenticators: // 1. A token authenticator that maps the rootToken to the "root" user diff --git a/test/integration/utils.go b/test/integration/utils.go index 1e3e9ddf24e..fb8c4cac838 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.Version(), etcdtest.PathPrefix()) + etcdStorage, err := master.NewEtcdStorage(newEtcdClient(), latest.InterfacesFor, testapi.Default.Version(), etcdtest.PathPrefix()) if err != nil { t.Fatalf("unexpected error: %v", err) }