mirror of https://github.com/k3s-io/k3s
Merge pull request #16509 from miminar/namespace_field_conv
Add missing field label conversions for Namespacepull/6/head
commit
1ab41d5238
|
@ -0,0 +1,72 @@
|
||||||
|
/*
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package testing
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
|
)
|
||||||
|
|
||||||
|
// TestSelectableFieldLabelConversions verifies that given resource have field
|
||||||
|
// label conversion defined for each its selectable field.
|
||||||
|
// fields contains selectable fields of the resource.
|
||||||
|
// labelMap maps deprecated labels to their canonical names.
|
||||||
|
func TestSelectableFieldLabelConversionsOfKind(t *testing.T, apiVersion string, kind string, fields labels.Set, labelMap map[string]string) {
|
||||||
|
badFieldLabels := []string{
|
||||||
|
"name",
|
||||||
|
".name",
|
||||||
|
"bad",
|
||||||
|
"metadata",
|
||||||
|
"foo.bar",
|
||||||
|
}
|
||||||
|
|
||||||
|
value := "value"
|
||||||
|
|
||||||
|
if len(fields) == 0 {
|
||||||
|
t.Logf("no selectable fields for kind %q, skipping", kind)
|
||||||
|
}
|
||||||
|
for label := range fields {
|
||||||
|
if label == "name" {
|
||||||
|
t.Logf("FIXME: \"name\" is deprecated by \"metadata.name\", it should be removed from selectable fields of kind=%s", kind)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
newLabel, newValue, err := api.Scheme.ConvertFieldLabel(apiVersion, kind, label, value)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("kind=%s label=%s: got unexpected error: %v", kind, label, err)
|
||||||
|
} else {
|
||||||
|
expectedLabel := label
|
||||||
|
if l, exists := labelMap[label]; exists {
|
||||||
|
expectedLabel = l
|
||||||
|
}
|
||||||
|
if newLabel != expectedLabel {
|
||||||
|
t.Errorf("kind=%s label=%s: got unexpected label name (%q != %q)", kind, label, newLabel, expectedLabel)
|
||||||
|
}
|
||||||
|
if newValue != value {
|
||||||
|
t.Errorf("kind=%s label=%s: got unexpected new value (%q != %q)", kind, label, newValue, value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, label := range badFieldLabels {
|
||||||
|
_, _, err := api.Scheme.ConvertFieldLabel(apiVersion, kind, label, "value")
|
||||||
|
if err == nil {
|
||||||
|
t.Errorf("kind=%s label=%s: got unexpected non-error", kind, label)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -52,6 +52,30 @@ func addConversionFuncs(scheme *runtime.Scheme) {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add field label conversions for kinds having selectable nothing but ObjectMeta fields.
|
||||||
|
for _, kind := range []string{
|
||||||
|
"Endpoints",
|
||||||
|
"ResourceQuota",
|
||||||
|
"PersistentVolumeClaim",
|
||||||
|
"Service",
|
||||||
|
"ServiceAccount",
|
||||||
|
} {
|
||||||
|
err = api.Scheme.AddFieldLabelConversionFunc("v1", kind,
|
||||||
|
func(label, value string) (string, string, error) {
|
||||||
|
switch label {
|
||||||
|
case "metadata.namespace",
|
||||||
|
"metadata.name":
|
||||||
|
return label, value, nil
|
||||||
|
default:
|
||||||
|
return "", "", fmt.Errorf("field label %q not supported for %q", label, kind)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
// If one of the conversion functions is malformed, detect it immediately.
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Add field conversion funcs.
|
// Add field conversion funcs.
|
||||||
err = api.Scheme.AddFieldLabelConversionFunc("v1", "Pod",
|
err = api.Scheme.AddFieldLabelConversionFunc("v1", "Pod",
|
||||||
func(label, value string) (string, string, error) {
|
func(label, value string) (string, string, error) {
|
||||||
|
@ -143,6 +167,19 @@ func addConversionFuncs(scheme *runtime.Scheme) {
|
||||||
// If one of the conversion functions is malformed, detect it immediately.
|
// If one of the conversion functions is malformed, detect it immediately.
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
err = api.Scheme.AddFieldLabelConversionFunc("v1", "PersistentVolume",
|
||||||
|
func(label, value string) (string, string, error) {
|
||||||
|
switch label {
|
||||||
|
case "metadata.name":
|
||||||
|
return label, value, nil
|
||||||
|
default:
|
||||||
|
return "", "", fmt.Errorf("field label not supported: %s", label)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
// If one of the conversion functions is malformed, detect it immediately.
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
err = api.Scheme.AddFieldLabelConversionFunc("v1", "Secret",
|
err = api.Scheme.AddFieldLabelConversionFunc("v1", "Secret",
|
||||||
func(label, value string) (string, string, error) {
|
func(label, value string) (string, string, error) {
|
||||||
switch label {
|
switch label {
|
||||||
|
@ -158,48 +195,6 @@ func addConversionFuncs(scheme *runtime.Scheme) {
|
||||||
// If one of the conversion functions is malformed, detect it immediately.
|
// If one of the conversion functions is malformed, detect it immediately.
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
err = api.Scheme.AddFieldLabelConversionFunc("v1", "ServiceAccount",
|
|
||||||
func(label, value string) (string, string, error) {
|
|
||||||
switch label {
|
|
||||||
case "metadata.name",
|
|
||||||
"metadata.namespace":
|
|
||||||
return label, value, nil
|
|
||||||
default:
|
|
||||||
return "", "", fmt.Errorf("field label not supported: %s", label)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
// If one of the conversion functions is malformed, detect it immediately.
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
err = api.Scheme.AddFieldLabelConversionFunc("v1", "Endpoints",
|
|
||||||
func(label, value string) (string, string, error) {
|
|
||||||
switch label {
|
|
||||||
case "metadata.namespace",
|
|
||||||
"metadata.name":
|
|
||||||
return label, value, nil
|
|
||||||
default:
|
|
||||||
return "", "", fmt.Errorf("field label not supported: %s", label)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
// If one of the conversion functions is malformed, detect it immediately.
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
err = api.Scheme.AddFieldLabelConversionFunc("v1", "Service",
|
|
||||||
func(label, value string) (string, string, error) {
|
|
||||||
switch label {
|
|
||||||
case "metadata.namespace",
|
|
||||||
"metadata.name":
|
|
||||||
return label, value, nil
|
|
||||||
default:
|
|
||||||
return "", "", fmt.Errorf("field label not supported: %s", label)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
// If one of the conversion functions is malformed, detect it immediately.
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func Convert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec(in *api.ReplicationControllerSpec, out *ReplicationControllerSpec, s conversion.Scope) error {
|
func Convert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec(in *api.ReplicationControllerSpec, out *ReplicationControllerSpec, s conversion.Scope) error {
|
||||||
|
|
|
@ -17,6 +17,7 @@ limitations under the License.
|
||||||
package v1beta1
|
package v1beta1
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
|
@ -51,6 +52,37 @@ func addConversionFuncs(scheme *runtime.Scheme) {
|
||||||
// If one of the conversion functions is malformed, detect it immediately.
|
// If one of the conversion functions is malformed, detect it immediately.
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add field label conversions for kinds having selectable nothing but ObjectMeta fields.
|
||||||
|
for _, kind := range []string{"ConfigMap", "DaemonSet", "Deployment", "Ingress"} {
|
||||||
|
err = api.Scheme.AddFieldLabelConversionFunc("extensions/v1beta1", kind,
|
||||||
|
func(label, value string) (string, string, error) {
|
||||||
|
switch label {
|
||||||
|
case "metadata.name", "metadata.namespace":
|
||||||
|
return label, value, nil
|
||||||
|
default:
|
||||||
|
return "", "", fmt.Errorf("field label %q not supported for %q", label, kind)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
// If one of the conversion functions is malformed, detect it immediately.
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
err = api.Scheme.AddFieldLabelConversionFunc("extensions/v1beta1", "Job",
|
||||||
|
func(label, value string) (string, string, error) {
|
||||||
|
switch label {
|
||||||
|
case "metadata.name", "metadata.namespace", "status.successful":
|
||||||
|
return label, value, nil
|
||||||
|
default:
|
||||||
|
return "", "", fmt.Errorf("field label not supported: %s", label)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
// If one of the conversion functions is malformed, detect it immediately.
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// The following two PodSpec conversions functions where copied from pkg/api/conversion.go
|
// The following two PodSpec conversions functions where copied from pkg/api/conversion.go
|
||||||
|
|
|
@ -20,7 +20,10 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestConfigMapStrategy(t *testing.T) {
|
func TestConfigMapStrategy(t *testing.T) {
|
||||||
|
@ -67,3 +70,12 @@ func TestConfigMapStrategy(t *testing.T) {
|
||||||
t.Errorf("Expected a validation error")
|
t.Errorf("Expected a validation error")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Extensions.GroupVersion().String(),
|
||||||
|
"ConfigMap",
|
||||||
|
labels.Set(ConfigMapToSelectableFields(&extensions.ConfigMap{})),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -20,6 +20,9 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestControllerStrategy(t *testing.T) {
|
func TestControllerStrategy(t *testing.T) {
|
||||||
|
@ -138,3 +141,12 @@ func TestControllerStatusStrategy(t *testing.T) {
|
||||||
t.Errorf("Unexpected error %v", errs)
|
t.Errorf("Unexpected error %v", errs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Default.GroupVersion().String(),
|
||||||
|
"ReplicationController",
|
||||||
|
labels.Set(ControllerToSelectableFields(&api.ReplicationController{})),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
/*
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package daemonset
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
_ "k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Extensions.GroupVersion().String(),
|
||||||
|
"DaemonSet",
|
||||||
|
labels.Set(DaemonSetToSelectableFields(&extensions.DaemonSet{})),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
/*
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package deployment
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
_ "k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Extensions.GroupVersion().String(),
|
||||||
|
"Deployment",
|
||||||
|
labels.Set(DeploymentToSelectableFields(&extensions.Deployment{})),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
/*
|
||||||
|
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 endpoint
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
_, fieldsSet, err := EndpointsAttributes(&api.Endpoints{})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Default.GroupVersion().String(),
|
||||||
|
"Endpoints",
|
||||||
|
labels.Set(fieldsSet),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
|
@ -22,6 +22,7 @@ import (
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
"k8s.io/kubernetes/pkg/fields"
|
"k8s.io/kubernetes/pkg/fields"
|
||||||
"k8s.io/kubernetes/pkg/labels"
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
"k8s.io/kubernetes/pkg/util"
|
"k8s.io/kubernetes/pkg/util"
|
||||||
|
@ -84,3 +85,16 @@ func TestGetAttrs(t *testing.T) {
|
||||||
t.Errorf("diff: %s", util.ObjectDiff(e, a))
|
t.Errorf("diff: %s", util.ObjectDiff(e, a))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
_, fset, err := getAttrs(&api.Event{})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Unexpected error %v", err)
|
||||||
|
}
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Default.GroupVersion().String(),
|
||||||
|
"Event",
|
||||||
|
labels.Set(fset),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
/*
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package horizontalpodautoscaler
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
_ "k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Extensions.GroupVersion().String(),
|
||||||
|
"Autoscaler",
|
||||||
|
labels.Set(AutoscalerToSelectableFields(&extensions.HorizontalPodAutoscaler{})),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
|
@ -20,7 +20,10 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
"k8s.io/kubernetes/pkg/util/intstr"
|
"k8s.io/kubernetes/pkg/util/intstr"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -128,3 +131,12 @@ func TestIngressStatusStrategy(t *testing.T) {
|
||||||
t.Errorf("Unexpected error %v", errs)
|
t.Errorf("Unexpected error %v", errs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Extensions.GroupVersion().String(),
|
||||||
|
"Ingress",
|
||||||
|
labels.Set(IngressToSelectableFields(&extensions.Ingress{})),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -20,7 +20,10 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestJobStrategy(t *testing.T) {
|
func TestJobStrategy(t *testing.T) {
|
||||||
|
@ -158,3 +161,12 @@ func TestJobStatusStrategy(t *testing.T) {
|
||||||
t.Errorf("Incoming resource version on update should not be mutated")
|
t.Errorf("Incoming resource version on update should not be mutated")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Extensions.GroupVersion().String(),
|
||||||
|
"Job",
|
||||||
|
labels.Set(JobToSelectableFields(&extensions.Job{})),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
/*
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package limitrange
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Default.GroupVersion().String(),
|
||||||
|
"LimitRange",
|
||||||
|
labels.Set(LimitRangeToSelectableFields(&api.LimitRange{})),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
|
@ -20,6 +20,8 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -130,3 +132,12 @@ func TestNamespaceFinalizeStrategy(t *testing.T) {
|
||||||
t.Errorf("Incoming resource version on update should not be mutated")
|
t.Errorf("Incoming resource version on update should not be mutated")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Default.GroupVersion().String(),
|
||||||
|
"Namespace",
|
||||||
|
NamespaceToSelectableFields(&api.Namespace{}),
|
||||||
|
map[string]string{"name": "metadata.name"},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -19,6 +19,9 @@ package node
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
"k8s.io/kubernetes/pkg/fields"
|
"k8s.io/kubernetes/pkg/fields"
|
||||||
"k8s.io/kubernetes/pkg/labels"
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
)
|
)
|
||||||
|
@ -43,3 +46,12 @@ func TestMatchNode(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Default.GroupVersion().String(),
|
||||||
|
"Node",
|
||||||
|
labels.Set(NodeToSelectableFields(&api.Node{})),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
/*
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package persistentvolume
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Default.GroupVersion().String(),
|
||||||
|
"PersistentVolume",
|
||||||
|
PersistentVolumeToSelectableFields(&api.PersistentVolume{}),
|
||||||
|
map[string]string{"name": "metadata.name"},
|
||||||
|
)
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
/*
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package persistentvolumeclaim
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Default.GroupVersion().String(),
|
||||||
|
"PersistentVolumeClaim",
|
||||||
|
PersistentVolumeClaimToSelectableFields(&api.PersistentVolumeClaim{}),
|
||||||
|
map[string]string{"name": "metadata.name"},
|
||||||
|
)
|
||||||
|
}
|
|
@ -22,6 +22,9 @@ import (
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/errors"
|
"k8s.io/kubernetes/pkg/api/errors"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -167,3 +170,12 @@ func TestCheckLogLocation(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Default.GroupVersion().String(),
|
||||||
|
"Pod",
|
||||||
|
labels.Set(PodToSelectableFields(&api.Pod{})),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
/*
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package podtemplate
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Default.GroupVersion().String(),
|
||||||
|
"PodTemplate",
|
||||||
|
labels.Set(PodTemplateToSelectableFields(&api.PodTemplate{})),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
|
@ -21,6 +21,8 @@ import (
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/resource"
|
"k8s.io/kubernetes/pkg/api/resource"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestResourceQuotaStrategy(t *testing.T) {
|
func TestResourceQuotaStrategy(t *testing.T) {
|
||||||
|
@ -56,3 +58,12 @@ func TestResourceQuotaStrategy(t *testing.T) {
|
||||||
t.Errorf("ResourceQuota does not allow setting status on create")
|
t.Errorf("ResourceQuota does not allow setting status on create")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Default.GroupVersion().String(),
|
||||||
|
"ResourceQuota",
|
||||||
|
ResourceQuotaToSelectableFields(&api.ResourceQuota{}),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -107,7 +107,9 @@ func Matcher(label labels.Selector, field fields.Selector) generic.Matcher {
|
||||||
|
|
||||||
// SelectableFields returns a label set that can be used for filter selection
|
// SelectableFields returns a label set that can be used for filter selection
|
||||||
func SelectableFields(obj *api.Secret) labels.Set {
|
func SelectableFields(obj *api.Secret) labels.Set {
|
||||||
return labels.Set{
|
objectMetaFieldsSet := generic.ObjectMetaFieldsSet(obj.ObjectMeta, true)
|
||||||
|
secretSpecificFieldsSet := fields.Set{
|
||||||
"type": string(obj.Type),
|
"type": string(obj.Type),
|
||||||
}
|
}
|
||||||
|
return labels.Set(generic.MergeFieldsSets(objectMetaFieldsSet, secretSpecificFieldsSet))
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,8 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -97,3 +99,12 @@ func TestExportSecret(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Default.GroupVersion().String(),
|
||||||
|
"Secret",
|
||||||
|
SelectableFields(&api.Secret{}),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -23,6 +23,9 @@ import (
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/errors"
|
"k8s.io/kubernetes/pkg/api/errors"
|
||||||
"k8s.io/kubernetes/pkg/api/rest"
|
"k8s.io/kubernetes/pkg/api/rest"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
"k8s.io/kubernetes/pkg/util/intstr"
|
"k8s.io/kubernetes/pkg/util/intstr"
|
||||||
)
|
)
|
||||||
|
@ -205,3 +208,12 @@ func TestBeforeUpdate(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Default.GroupVersion().String(),
|
||||||
|
"Service",
|
||||||
|
labels.Set(ServiceToSelectableFields(&api.Service{})),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
/*
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package serviceaccount
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Default.GroupVersion().String(),
|
||||||
|
"ServiceAccount",
|
||||||
|
SelectableFields(&api.ServiceAccount{}),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
/*
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package thirdpartyresource
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
_ "k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Extensions.GroupVersion().String(),
|
||||||
|
"ThirdPartyResource",
|
||||||
|
SelectableFields(&extensions.ThirdPartyResource{}),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
/*
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package thirdpartyresourcedata
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
_ "k8s.io/kubernetes/pkg/api"
|
||||||
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||||
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSelectableFieldLabelConversions(t *testing.T) {
|
||||||
|
apitesting.TestSelectableFieldLabelConversionsOfKind(t,
|
||||||
|
testapi.Extensions.GroupVersion().String(),
|
||||||
|
"ThirdPartyResourceData",
|
||||||
|
SelectableFields(&extensions.ThirdPartyResourceData{}),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
}
|
Loading…
Reference in New Issue