diff --git a/federation/pkg/kubefed/BUILD b/federation/pkg/kubefed/BUILD index 023ee83ebca..17e4b23812f 100644 --- a/federation/pkg/kubefed/BUILD +++ b/federation/pkg/kubefed/BUILD @@ -19,7 +19,6 @@ go_library( "//federation/pkg/kubefed/init:go_default_library", "//federation/pkg/kubefed/util:go_default_library", "//pkg/api:go_default_library", - "//pkg/api/v1:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", @@ -37,6 +36,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", diff --git a/federation/pkg/kubefed/join.go b/federation/pkg/kubefed/join.go index 35079e8a280..7f59f74fd8a 100644 --- a/federation/pkg/kubefed/join.go +++ b/federation/pkg/kubefed/join.go @@ -26,11 +26,11 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apiserver/pkg/storage/names" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "k8s.io/kubernetes/federation/apis/federation" "k8s.io/kubernetes/federation/pkg/kubefed/util" "k8s.io/kubernetes/pkg/api" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" extensions "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/rbac" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" @@ -183,7 +183,7 @@ func (j *joinFederation) Run(f cmdutil.Factory, cmdOut io.Writer, config util.Ad joiningClusterName := j.commonOptions.Name secretName := j.options.secretName if secretName == "" { - secretName = k8s_api_v1.SimpleNameGenerator.GenerateName(j.commonOptions.Name + "-") + secretName = names.SimpleNameGenerator.GenerateName(j.commonOptions.Name + "-") } joiningClusterFactory := j.joningClusterFactory(config) diff --git a/federation/test/e2e/BUILD b/federation/test/e2e/BUILD index 3a527f1155e..13ea12512c8 100644 --- a/federation/test/e2e/BUILD +++ b/federation/test/e2e/BUILD @@ -29,7 +29,6 @@ go_library( "//federation/pkg/federation-controller/util:go_default_library", "//federation/test/e2e/framework:go_default_library", "//federation/test/e2e/upgrades:go_default_library", - "//pkg/api/v1:go_default_library", "//pkg/cloudprovider:go_default_library", "//test/e2e/chaosmonkey:go_default_library", "//test/e2e/common:go_default_library", @@ -47,6 +46,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/util/rand:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", ], diff --git a/federation/test/e2e/namespace.go b/federation/test/e2e/namespace.go index de9aa81c18d..f92db2cf3af 100644 --- a/federation/test/e2e/namespace.go +++ b/federation/test/e2e/namespace.go @@ -26,9 +26,9 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apiserver/pkg/storage/names" clientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/core/v1" fedframework "k8s.io/kubernetes/federation/test/e2e/framework" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/test/e2e/framework" . "github.com/onsi/ginkgo" @@ -71,7 +71,7 @@ var _ = framework.KubeDescribe("Federation namespace [Feature:Federation]", func fedframework.SkipUnlessFederated(f.ClientSet) nsName = createNamespace(f.FederationClientset.Core().Namespaces()) - rsName := k8s_api_v1.SimpleNameGenerator.GenerateName(replicaSetNamePrefix) + rsName := names.SimpleNameGenerator.GenerateName(replicaSetNamePrefix) replicaCount := int32(2) rs := &v1beta1.ReplicaSet{ ObjectMeta: metav1.ObjectMeta{ @@ -123,7 +123,7 @@ var _ = framework.KubeDescribe("Federation namespace [Feature:Federation]", func // Create resources in the namespace. event := v1.Event{ ObjectMeta: metav1.ObjectMeta{ - Name: k8s_api_v1.SimpleNameGenerator.GenerateName(eventNamePrefix), + Name: names.SimpleNameGenerator.GenerateName(eventNamePrefix), Namespace: nsName, }, InvolvedObject: v1.ObjectReference{ @@ -199,7 +199,7 @@ func verifyNsCascadingDeletion(nsClient clientset.NamespaceInterface, clusters f func createNamespace(nsClient clientset.NamespaceInterface) string { ns := v1.Namespace{ ObjectMeta: metav1.ObjectMeta{ - Name: k8s_api_v1.SimpleNameGenerator.GenerateName(namespacePrefix), + Name: names.SimpleNameGenerator.GenerateName(namespacePrefix), }, } By(fmt.Sprintf("Creating namespace %s", ns.Name)) diff --git a/hack/.golint_failures b/hack/.golint_failures index f0f0a472422..458555f2f07 100644 --- a/hack/.golint_failures +++ b/hack/.golint_failures @@ -60,6 +60,7 @@ federation/test/e2e federation/test/e2e/framework federation/test/e2e/upgrades federation/test/integration/framework +pkg/api pkg/api/endpoints pkg/api/helper pkg/api/helper/qos diff --git a/pkg/api/BUILD b/pkg/api/BUILD index 40261d53aec..780b758ea4f 100644 --- a/pkg/api/BUILD +++ b/pkg/api/BUILD @@ -39,50 +39,6 @@ go_test( library = ":go_default_library", ) -go_test( - name = "go_default_xtest", - srcs = [ - "conversion_test.go", - "copy_test.go", - "deep_copy_test.go", - "defaulting_test.go", - "meta_test.go", - "serialization_proto_test.go", - "serialization_test.go", - "unstructured_test.go", - ], - deps = [ - ":go_default_library", - "//pkg/api/testapi:go_default_library", - "//pkg/api/testing:go_default_library", - "//pkg/api/v1:go_default_library", - "//pkg/apis/extensions:go_default_library", - "//pkg/apis/extensions/v1beta1:go_default_library", - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/golang/protobuf/proto:go_default_library", - "//vendor/github.com/google/gofuzz:go_default_library", - "//vendor/github.com/json-iterator/go:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/testing/fuzzer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/testing/roundtrip:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion/unstructured:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/protobuf:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/json:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - ], -) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/pkg/api/testing/BUILD b/pkg/api/testing/BUILD index 659e97210cd..ac7ce7e1c4f 100644 --- a/pkg/api/testing/BUILD +++ b/pkg/api/testing/BUILD @@ -3,12 +3,14 @@ package(default_visibility = ["//visibility:public"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", + "go_test", ) go_library( name = "go_default_library", srcs = [ "conversion.go", + "doc.go", "fuzzer.go", "pod_specs.go", ], @@ -54,3 +56,52 @@ filegroup( ], tags = ["automanaged"], ) + +go_test( + name = "go_default_test", + srcs = [ + "backward_compatibility_test.go", + "conversion_test.go", + "copy_test.go", + "deep_copy_test.go", + "defaulting_test.go", + "meta_test.go", + "serialization_proto_test.go", + "serialization_test.go", + "unstructured_test.go", + ], + library = ":go_default_library", + deps = [ + "//pkg/api:go_default_library", + "//pkg/api/install:go_default_library", + "//pkg/api/testapi:go_default_library", + "//pkg/api/testing/compat:go_default_library", + "//pkg/api/v1:go_default_library", + "//pkg/api/validation:go_default_library", + "//pkg/apis/extensions:go_default_library", + "//pkg/apis/extensions/v1beta1:go_default_library", + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/google/gofuzz:go_default_library", + "//vendor/github.com/json-iterator/go:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/testing/fuzzer:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/testing/roundtrip:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/conversion/unstructured:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/protobuf:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/json:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + ], +) diff --git a/pkg/api/v1/backward_compatibility_test.go b/pkg/api/testing/backward_compatibility_test.go similarity index 99% rename from pkg/api/v1/backward_compatibility_test.go rename to pkg/api/testing/backward_compatibility_test.go index 83c7107f960..82ac3ca81ae 100644 --- a/pkg/api/v1/backward_compatibility_test.go +++ b/pkg/api/testing/backward_compatibility_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package v1_test +package testing import ( "testing" diff --git a/pkg/api/conversion_test.go b/pkg/api/testing/conversion_test.go similarity index 95% rename from pkg/api/conversion_test.go rename to pkg/api/testing/conversion_test.go index b4c79696cd6..a594431ecad 100644 --- a/pkg/api/conversion_test.go +++ b/pkg/api/testing/conversion_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package api_test +package testing import ( "io/ioutil" @@ -27,11 +27,10 @@ import ( "k8s.io/apimachinery/pkg/util/diff" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" - kapitesting "k8s.io/kubernetes/pkg/api/testing" ) func BenchmarkPodConversion(b *testing.B) { - apiObjectFuzzer := fuzzer.FuzzerFor(kapitesting.FuzzerFuncs, rand.NewSource(benchmarkSeed), api.Codecs) + apiObjectFuzzer := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(benchmarkSeed), api.Codecs) items := make([]api.Pod, 4) for i := range items { apiObjectFuzzer.Fuzz(&items[i]) diff --git a/pkg/api/copy_test.go b/pkg/api/testing/copy_test.go similarity index 91% rename from pkg/api/copy_test.go rename to pkg/api/testing/copy_test.go index 1ca0df20cc8..e1002706dc1 100644 --- a/pkg/api/copy_test.go +++ b/pkg/api/testing/copy_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package api_test +package testing import ( "bytes" @@ -30,13 +30,12 @@ import ( "k8s.io/apimachinery/pkg/util/diff" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" - kapitesting "k8s.io/kubernetes/pkg/api/testing" ) func TestDeepCopyApiObjects(t *testing.T) { for i := 0; i < *roundtrip.FuzzIters; i++ { for _, version := range []schema.GroupVersion{testapi.Default.InternalGroupVersion(), api.Registry.GroupOrDie(api.GroupName).GroupVersion} { - f := fuzzer.FuzzerFor(kapitesting.FuzzerFuncs, rand.NewSource(rand.Int63()), api.Codecs) + f := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(rand.Int63()), api.Codecs) for kind := range api.Scheme.KnownTypes(version) { doDeepCopyTest(t, version.WithKind(kind), f) } @@ -80,7 +79,7 @@ func doDeepCopyTest(t *testing.T, kind schema.GroupVersionKind, f *fuzz.Fuzzer) func TestDeepCopySingleType(t *testing.T) { for i := 0; i < *roundtrip.FuzzIters; i++ { for _, version := range []schema.GroupVersion{testapi.Default.InternalGroupVersion(), api.Registry.GroupOrDie(api.GroupName).GroupVersion} { - f := fuzzer.FuzzerFor(kapitesting.FuzzerFuncs, rand.NewSource(rand.Int63()), api.Codecs) + f := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(rand.Int63()), api.Codecs) doDeepCopyTest(t, version.WithKind("Pod"), f) } } diff --git a/pkg/api/deep_copy_test.go b/pkg/api/testing/deep_copy_test.go similarity index 99% rename from pkg/api/deep_copy_test.go rename to pkg/api/testing/deep_copy_test.go index d88b6bb5ee7..a9580235e6e 100644 --- a/pkg/api/deep_copy_test.go +++ b/pkg/api/testing/deep_copy_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package api_test +package testing import ( "io/ioutil" diff --git a/pkg/api/defaulting_test.go b/pkg/api/testing/defaulting_test.go similarity index 99% rename from pkg/api/defaulting_test.go rename to pkg/api/testing/defaulting_test.go index e887eaa48d8..a54d49a21fc 100644 --- a/pkg/api/defaulting_test.go +++ b/pkg/api/testing/defaulting_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package api_test +package testing import ( "math/rand" diff --git a/pkg/api/testing/doc.go b/pkg/api/testing/doc.go new file mode 100644 index 00000000000..279404da564 --- /dev/null +++ b/pkg/api/testing/doc.go @@ -0,0 +1,20 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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 testing contains +// - all generic API tests which depend on Kubernetes API types +// - all cross-Kubernetes-API tests. +package testing diff --git a/pkg/api/meta_test.go b/pkg/api/testing/meta_test.go similarity index 99% rename from pkg/api/meta_test.go rename to pkg/api/testing/meta_test.go index f97758188ca..32a6cc67f89 100644 --- a/pkg/api/meta_test.go +++ b/pkg/api/testing/meta_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package api_test +package testing import ( "reflect" diff --git a/pkg/api/node_example.json b/pkg/api/testing/node_example.json similarity index 100% rename from pkg/api/node_example.json rename to pkg/api/testing/node_example.json diff --git a/pkg/api/replication_controller_example.json b/pkg/api/testing/replication_controller_example.json similarity index 100% rename from pkg/api/replication_controller_example.json rename to pkg/api/testing/replication_controller_example.json diff --git a/pkg/api/serialization_proto_test.go b/pkg/api/testing/serialization_proto_test.go similarity index 97% rename from pkg/api/serialization_proto_test.go rename to pkg/api/testing/serialization_proto_test.go index b33d7eaeb5d..9e3b040958f 100644 --- a/pkg/api/serialization_proto_test.go +++ b/pkg/api/testing/serialization_proto_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package api_test +package testing import ( "bytes" @@ -34,7 +34,6 @@ import ( "k8s.io/apimachinery/pkg/runtime/serializer/protobuf" "k8s.io/apimachinery/pkg/util/diff" "k8s.io/kubernetes/pkg/api" - kapitesting "k8s.io/kubernetes/pkg/api/testing" _ "k8s.io/kubernetes/pkg/apis/extensions" _ "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" ) @@ -98,7 +97,7 @@ func fieldsHaveProtobufTags(obj reflect.Type) error { func TestProtobufRoundTrip(t *testing.T) { obj := &v1.Pod{} - fuzzer.FuzzerFor(kapitesting.FuzzerFuncs, rand.NewSource(benchmarkSeed), api.Codecs).Fuzz(obj) + fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(benchmarkSeed), api.Codecs).Fuzz(obj) // InitContainers are turned into annotations by conversion. obj.Spec.InitContainers = nil obj.Status.InitContainerStatuses = nil diff --git a/pkg/api/serialization_test.go b/pkg/api/testing/serialization_test.go similarity index 97% rename from pkg/api/serialization_test.go rename to pkg/api/testing/serialization_test.go index 609805a8a74..ab139c88f72 100644 --- a/pkg/api/serialization_test.go +++ b/pkg/api/testing/serialization_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package api_test +package testing import ( "bytes" @@ -45,7 +45,6 @@ import ( "k8s.io/apimachinery/pkg/watch" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" - kapitesting "k8s.io/kubernetes/pkg/api/testing" k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/apis/extensions" k8s_v1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" @@ -54,7 +53,7 @@ import ( // fuzzInternalObject fuzzes an arbitrary runtime object using the appropriate // fuzzer registered with the apitesting package. func fuzzInternalObject(t *testing.T, forVersion schema.GroupVersion, item runtime.Object, seed int64) runtime.Object { - fuzzer.FuzzerFor(kapitesting.FuzzerFuncs, rand.NewSource(seed), api.Codecs).Fuzz(item) + fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(seed), api.Codecs).Fuzz(item) j, err := meta.TypeAccessor(item) if err != nil { @@ -144,7 +143,7 @@ func TestSpecificKind(t *testing.T) { internalGVK := schema.GroupVersionKind{Group: "extensions", Version: runtime.APIVersionInternal, Kind: "DaemonSet"} seed := rand.Int63() - fuzzer := fuzzer.FuzzerFor(kapitesting.FuzzerFuncs, rand.NewSource(seed), api.Codecs) + fuzzer := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(seed), api.Codecs) roundtrip.RoundTripSpecificKind(t, internalGVK, api.Scheme, api.Codecs, fuzzer, nil) } @@ -205,7 +204,7 @@ func TestCommonKindsRegistered(t *testing.T) { // in all of the API groups registered for test in the testapi package. func TestRoundTripTypes(t *testing.T) { seed := rand.Int63() - fuzzer := fuzzer.FuzzerFor(kapitesting.FuzzerFuncs, rand.NewSource(seed), api.Codecs) + fuzzer := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(seed), api.Codecs) nonRoundTrippableTypes := map[schema.GroupVersionKind]bool{ {Group: "componentconfig", Version: runtime.APIVersionInternal, Kind: "KubeProxyConfiguration"}: true, @@ -300,7 +299,7 @@ func TestUnversionedTypes(t *testing.T) { // TestObjectWatchFraming establishes that a watch event can be encoded and // decoded correctly through each of the supported RFC2046 media types. func TestObjectWatchFraming(t *testing.T) { - f := fuzzer.FuzzerFor(kapitesting.FuzzerFuncs, rand.NewSource(benchmarkSeed), api.Codecs) + f := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(benchmarkSeed), api.Codecs) secret := &api.Secret{} f.Fuzz(secret) secret.Data["binary"] = []byte{0x00, 0x10, 0x30, 0x55, 0xff, 0x00} @@ -382,7 +381,7 @@ func TestObjectWatchFraming(t *testing.T) { const benchmarkSeed = 100 func benchmarkItems(b *testing.B) []v1.Pod { - apiObjectFuzzer := fuzzer.FuzzerFor(kapitesting.FuzzerFuncs, rand.NewSource(benchmarkSeed), api.Codecs) + apiObjectFuzzer := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(benchmarkSeed), api.Codecs) items := make([]v1.Pod, 10) for i := range items { var pod api.Pod diff --git a/pkg/api/unstructured_test.go b/pkg/api/testing/unstructured_test.go similarity index 97% rename from pkg/api/unstructured_test.go rename to pkg/api/testing/unstructured_test.go index 9616d822a7b..4b2f622885c 100644 --- a/pkg/api/unstructured_test.go +++ b/pkg/api/testing/unstructured_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package api_test +package testing import ( "math/rand" @@ -32,7 +32,6 @@ import ( "k8s.io/apimachinery/pkg/util/json" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" - kapitesting "k8s.io/kubernetes/pkg/api/testing" ) func doRoundTrip(t *testing.T, group testapi.TestGroup, kind string) { @@ -44,7 +43,7 @@ func doRoundTrip(t *testing.T, group testapi.TestGroup, kind string) { t.Fatalf("Couldn't create internal object %v: %v", kind, err) } seed := rand.Int63() - fuzzer.FuzzerFor(kapitesting.FuzzerFuncs, rand.NewSource(seed), api.Codecs). + fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(seed), api.Codecs). // We are explicitly overwriting custom fuzzing functions, to ensure // that InitContainers and their statuses are not generated. This is // because in thise test we are simply doing json operations, in which diff --git a/pkg/api/v1/BUILD b/pkg/api/v1/BUILD index a80efb82f56..1ce0ff86c9d 100644 --- a/pkg/api/v1/BUILD +++ b/pkg/api/v1/BUILD @@ -12,7 +12,6 @@ go_library( "conversion.go", "defaults.go", "doc.go", - "generate.go", "register.go", "zz_generated.conversion.go", "zz_generated.defaults.go", @@ -30,7 +29,6 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/rand:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], ) @@ -38,16 +36,13 @@ go_library( go_test( name = "go_default_xtest", srcs = [ - "backward_compatibility_test.go", "conversion_test.go", "defaults_test.go", ], deps = [ ":go_default_library", "//pkg/api:go_default_library", - "//pkg/api/install:go_default_library", - "//pkg/api/testing/compat:go_default_library", - "//pkg/api/validation:go_default_library", + "//pkg/api/testapi:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", @@ -55,7 +50,6 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], ) diff --git a/pkg/api/v1/conversion_test.go b/pkg/api/v1/conversion_test.go index f9401a61c58..961701b1755 100644 --- a/pkg/api/v1/conversion_test.go +++ b/pkg/api/v1/conversion_test.go @@ -30,6 +30,9 @@ import ( "k8s.io/apimachinery/pkg/util/diff" "k8s.io/kubernetes/pkg/api" k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + + // enforce that all types are installed + _ "k8s.io/kubernetes/pkg/api/testapi" ) func TestPodLogOptions(t *testing.T) { diff --git a/pkg/api/v1/defaults_test.go b/pkg/api/v1/defaults_test.go index 01fa05266e8..f5ad77dabac 100644 --- a/pkg/api/v1/defaults_test.go +++ b/pkg/api/v1/defaults_test.go @@ -28,6 +28,9 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/kubernetes/pkg/api" k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + + // enforce that all types are installed + _ "k8s.io/kubernetes/pkg/api/testapi" ) func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { diff --git a/pkg/api/v1/generate.go b/pkg/api/v1/generate.go deleted file mode 100644 index 5ebe9a0e516..00000000000 --- a/pkg/api/v1/generate.go +++ /dev/null @@ -1,65 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors. - -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 v1 - -import ( - "fmt" - "k8s.io/api/core/v1" - - utilrand "k8s.io/apimachinery/pkg/util/rand" -) - -// NameGenerator generates names for objects. Some backends may have more information -// available to guide selection of new names and this interface hides those details. -type NameGenerator interface { - // GenerateName generates a valid name from the base name, adding a random suffix to the - // the base. If base is valid, the returned name must also be valid. The generator is - // responsible for knowing the maximum valid name length. - GenerateName(base string) string -} - -// GenerateName will resolve the object name of the provided v1.ObjectMeta to a generated version if -// necessary. It expects that validation for v1.ObjectMeta has already completed (that Base is a -// valid name) and that the NameGenerator generates a name that is also valid. -func GenerateName(u NameGenerator, meta *v1.ObjectMeta) { - if len(meta.GenerateName) == 0 || len(meta.Name) != 0 { - return - } - meta.Name = u.GenerateName(meta.GenerateName) -} - -// simpleNameGenerator generates random names. -type simpleNameGenerator struct{} - -// SimpleNameGenerator is a generator that returns the name plus a random suffix of five alphanumerics -// when a name is requested. The string is guaranteed to not exceed the length of a standard Kubernetes -// name (63 characters) -var SimpleNameGenerator NameGenerator = simpleNameGenerator{} - -const ( - // TODO: make this flexible for non-core resources with alternate naming rules. - maxNameLength = 63 - randomLength = 5 - maxGeneratedNameLength = maxNameLength - randomLength -) - -func (simpleNameGenerator) GenerateName(base string) string { - if len(base) > maxGeneratedNameLength { - base = base[:maxGeneratedNameLength] - } - return fmt.Sprintf("%s%s", base, utilrand.String(randomLength)) -} diff --git a/pkg/controller/deployment/util/BUILD b/pkg/controller/deployment/util/BUILD index 9df7ea4fedd..2f09e4b44e7 100644 --- a/pkg/controller/deployment/util/BUILD +++ b/pkg/controller/deployment/util/BUILD @@ -46,7 +46,6 @@ go_test( ], library = ":go_default_library", deps = [ - "//pkg/api/v1:go_default_library", "//pkg/controller:go_default_library", "//pkg/util/hash:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -56,6 +55,7 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", + "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", "//vendor/k8s.io/client-go/testing:go_default_library", ], diff --git a/pkg/controller/deployment/util/deployment_util_test.go b/pkg/controller/deployment/util/deployment_util_test.go index 28e609570e3..c8ce876df55 100644 --- a/pkg/controller/deployment/util/deployment_util_test.go +++ b/pkg/controller/deployment/util/deployment_util_test.go @@ -32,9 +32,9 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" + "k8s.io/apiserver/pkg/storage/names" "k8s.io/client-go/kubernetes/fake" core "k8s.io/client-go/testing" - apiv1 "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/controller" ) @@ -88,7 +88,7 @@ func addUpdatePodsReactor(fakeClient *fake.Clientset) *fake.Clientset { func generateRSWithLabel(labels map[string]string, image string) extensions.ReplicaSet { return extensions.ReplicaSet{ ObjectMeta: metav1.ObjectMeta{ - Name: apiv1.SimpleNameGenerator.GenerateName("replicaset"), + Name: names.SimpleNameGenerator.GenerateName("replicaset"), Labels: labels, }, Spec: extensions.ReplicaSetSpec{ @@ -130,7 +130,7 @@ func generateRS(deployment extensions.Deployment) extensions.ReplicaSet { return extensions.ReplicaSet{ ObjectMeta: metav1.ObjectMeta{ UID: randomUID(), - Name: apiv1.SimpleNameGenerator.GenerateName("replicaset"), + Name: names.SimpleNameGenerator.GenerateName("replicaset"), Labels: template.Labels, OwnerReferences: []metav1.OwnerReference{*newDControllerRef(&deployment)}, },