Skip to content
This repository was archived by the owner on Feb 8, 2021. It is now read-only.

Commit 87a3504

Browse files
committed
Move FieldPath and errors to a sub-package
This makes the naming and reading a lot simpler.
1 parent b9aa710 commit 87a3504

File tree

45 files changed

+1032
-1052
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+1032
-1052
lines changed

examples/examples_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@ import (
3333
expvalidation "k8s.io/kubernetes/pkg/apis/extensions/validation"
3434
"k8s.io/kubernetes/pkg/capabilities"
3535
"k8s.io/kubernetes/pkg/runtime"
36-
utilvalidation "k8s.io/kubernetes/pkg/util/validation"
36+
"k8s.io/kubernetes/pkg/util/validation/field"
3737
"k8s.io/kubernetes/pkg/util/yaml"
3838
schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api"
3939
schedulerapilatest "k8s.io/kubernetes/plugin/pkg/scheduler/api/latest"
4040
)
4141

42-
func validateObject(obj runtime.Object) (errors utilvalidation.ErrorList) {
42+
func validateObject(obj runtime.Object) (errors field.ErrorList) {
4343
switch t := obj.(type) {
4444
case *api.ReplicationController:
4545
if t.Namespace == "" {
@@ -123,7 +123,7 @@ func validateObject(obj runtime.Object) (errors utilvalidation.ErrorList) {
123123
}
124124
errors = expvalidation.ValidateDaemonSet(t)
125125
default:
126-
return utilvalidation.ErrorList{utilvalidation.NewInternalError(utilvalidation.NewFieldPath(""), fmt.Errorf("no validation defined for %#v", obj))}
126+
return field.ErrorList{field.NewInternalError(field.NewPath(""), fmt.Errorf("no validation defined for %#v", obj))}
127127
}
128128
return errors
129129
}

pkg/api/errors/errors.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424

2525
"k8s.io/kubernetes/pkg/api/unversioned"
2626
"k8s.io/kubernetes/pkg/runtime"
27-
"k8s.io/kubernetes/pkg/util/validation"
27+
"k8s.io/kubernetes/pkg/util/validation/field"
2828
)
2929

3030
// HTTP Status codes not in the golang http package.
@@ -168,7 +168,7 @@ func NewGone(message string) error {
168168
}
169169

170170
// NewInvalid returns an error indicating the item is invalid and cannot be processed.
171-
func NewInvalid(kind, name string, errs validation.ErrorList) error {
171+
func NewInvalid(kind, name string, errs field.ErrorList) error {
172172
causes := make([]unversioned.StatusCause, 0, len(errs))
173173
for i := range errs {
174174
err := errs[i]

pkg/api/errors/errors_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424

2525
"k8s.io/kubernetes/pkg/api/unversioned"
2626
"k8s.io/kubernetes/pkg/runtime"
27-
"k8s.io/kubernetes/pkg/util/validation"
27+
"k8s.io/kubernetes/pkg/util/validation/field"
2828
)
2929

3030
func TestErrorNew(t *testing.T) {
@@ -88,11 +88,11 @@ func TestErrorNew(t *testing.T) {
8888

8989
func TestNewInvalid(t *testing.T) {
9090
testCases := []struct {
91-
Err *validation.Error
91+
Err *field.Error
9292
Details *unversioned.StatusDetails
9393
}{
9494
{
95-
validation.NewDuplicateError(validation.NewFieldPath("field[0].name"), "bar"),
95+
field.NewDuplicateError(field.NewPath("field[0].name"), "bar"),
9696
&unversioned.StatusDetails{
9797
Kind: "kind",
9898
Name: "name",
@@ -103,7 +103,7 @@ func TestNewInvalid(t *testing.T) {
103103
},
104104
},
105105
{
106-
validation.NewInvalidError(validation.NewFieldPath("field[0].name"), "bar", "detail"),
106+
field.NewInvalidError(field.NewPath("field[0].name"), "bar", "detail"),
107107
&unversioned.StatusDetails{
108108
Kind: "kind",
109109
Name: "name",
@@ -114,7 +114,7 @@ func TestNewInvalid(t *testing.T) {
114114
},
115115
},
116116
{
117-
validation.NewNotFoundError(validation.NewFieldPath("field[0].name"), "bar"),
117+
field.NewNotFoundError(field.NewPath("field[0].name"), "bar"),
118118
&unversioned.StatusDetails{
119119
Kind: "kind",
120120
Name: "name",
@@ -125,7 +125,7 @@ func TestNewInvalid(t *testing.T) {
125125
},
126126
},
127127
{
128-
validation.NewNotSupportedError(validation.NewFieldPath("field[0].name"), "bar", nil),
128+
field.NewNotSupportedError(field.NewPath("field[0].name"), "bar", nil),
129129
&unversioned.StatusDetails{
130130
Kind: "kind",
131131
Name: "name",
@@ -136,7 +136,7 @@ func TestNewInvalid(t *testing.T) {
136136
},
137137
},
138138
{
139-
validation.NewRequiredError(validation.NewFieldPath("field[0].name")),
139+
field.NewRequiredError(field.NewPath("field[0].name")),
140140
&unversioned.StatusDetails{
141141
Kind: "kind",
142142
Name: "name",
@@ -150,7 +150,7 @@ func TestNewInvalid(t *testing.T) {
150150
for i, testCase := range testCases {
151151
vErr, expected := testCase.Err, testCase.Details
152152
expected.Causes[0].Message = vErr.ErrorBody()
153-
err := NewInvalid("kind", "name", validation.ErrorList{vErr})
153+
err := NewInvalid("kind", "name", field.ErrorList{vErr})
154154
status := err.(*StatusError).ErrStatus
155155
if status.Code != 422 || status.Reason != unversioned.StatusReasonInvalid {
156156
t.Errorf("%d: unexpected status: %#v", i, status)

pkg/api/rest/create.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
"k8s.io/kubernetes/pkg/api/errors"
2222
"k8s.io/kubernetes/pkg/api/validation"
2323
"k8s.io/kubernetes/pkg/runtime"
24-
utilvalidation "k8s.io/kubernetes/pkg/util/validation"
24+
"k8s.io/kubernetes/pkg/util/validation/field"
2525
)
2626

2727
// RESTCreateStrategy defines the minimum validation, accepted input, and
@@ -42,7 +42,7 @@ type RESTCreateStrategy interface {
4242
PrepareForCreate(obj runtime.Object)
4343
// Validate is invoked after default fields in the object have been filled in before
4444
// the object is persisted. This method should not mutate the object.
45-
Validate(ctx api.Context, obj runtime.Object) utilvalidation.ErrorList
45+
Validate(ctx api.Context, obj runtime.Object) field.ErrorList
4646
// Canonicalize is invoked after validation has succeeded but before the
4747
// object has been persisted. This method may mutate the object.
4848
Canonicalize(obj runtime.Object)
@@ -77,7 +77,7 @@ func BeforeCreate(strategy RESTCreateStrategy, ctx api.Context, obj runtime.Obje
7777
// Custom validation (including name validation) passed
7878
// Now run common validation on object meta
7979
// Do this *after* custom validation so that specific error messages are shown whenever possible
80-
if errs := validation.ValidateObjectMeta(objectMeta, strategy.NamespaceScoped(), validation.ValidatePathSegmentName, utilvalidation.NewFieldPath("metadata")); len(errs) > 0 {
80+
if errs := validation.ValidateObjectMeta(objectMeta, strategy.NamespaceScoped(), validation.ValidatePathSegmentName, field.NewPath("metadata")); len(errs) > 0 {
8181
return errors.NewInvalid(kind, objectMeta.Name, errs)
8282
}
8383

pkg/api/rest/update.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
"k8s.io/kubernetes/pkg/api/errors"
2222
"k8s.io/kubernetes/pkg/api/validation"
2323
"k8s.io/kubernetes/pkg/runtime"
24-
utilvalidation "k8s.io/kubernetes/pkg/util/validation"
24+
"k8s.io/kubernetes/pkg/util/validation/field"
2525
)
2626

2727
// RESTUpdateStrategy defines the minimum validation, accepted input, and
@@ -42,7 +42,7 @@ type RESTUpdateStrategy interface {
4242
// ValidateUpdate is invoked after default fields in the object have been
4343
// filled in before the object is persisted. This method should not mutate
4444
// the object.
45-
ValidateUpdate(ctx api.Context, obj, old runtime.Object) utilvalidation.ErrorList
45+
ValidateUpdate(ctx api.Context, obj, old runtime.Object) field.ErrorList
4646
// Canonicalize is invoked after validation has succeeded but before the
4747
// object has been persisted. This method may mutate the object.
4848
Canonicalize(obj runtime.Object)
@@ -53,17 +53,17 @@ type RESTUpdateStrategy interface {
5353
}
5454

5555
// TODO: add other common fields that require global validation.
56-
func validateCommonFields(obj, old runtime.Object) utilvalidation.ErrorList {
57-
allErrs := utilvalidation.ErrorList{}
56+
func validateCommonFields(obj, old runtime.Object) field.ErrorList {
57+
allErrs := field.ErrorList{}
5858
objectMeta, err := api.ObjectMetaFor(obj)
5959
if err != nil {
60-
return append(allErrs, utilvalidation.NewInternalError(utilvalidation.NewFieldPath("metadata"), err))
60+
return append(allErrs, field.NewInternalError(field.NewPath("metadata"), err))
6161
}
6262
oldObjectMeta, err := api.ObjectMetaFor(old)
6363
if err != nil {
64-
return append(allErrs, utilvalidation.NewInternalError(utilvalidation.NewFieldPath("metadata"), err))
64+
return append(allErrs, field.NewInternalError(field.NewPath("metadata"), err))
6565
}
66-
allErrs = append(allErrs, validation.ValidateObjectMetaUpdate(objectMeta, oldObjectMeta, utilvalidation.NewFieldPath("metadata"))...)
66+
allErrs = append(allErrs, validation.ValidateObjectMetaUpdate(objectMeta, oldObjectMeta, field.NewPath("metadata"))...)
6767

6868
return allErrs
6969
}

pkg/api/testing/compat/compatibility_tester.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,9 @@ import (
2727
"testing"
2828

2929
"k8s.io/kubernetes/pkg/api"
30-
"k8s.io/kubernetes/pkg/runtime"
31-
"k8s.io/kubernetes/pkg/util/validation"
32-
3330
"k8s.io/kubernetes/pkg/kubectl"
31+
"k8s.io/kubernetes/pkg/runtime"
32+
"k8s.io/kubernetes/pkg/util/validation/field"
3433
)
3534

3635
// Based on: https://github.com/openshift/origin/blob/master/pkg/api/compatibility_test.go
@@ -42,7 +41,7 @@ func TestCompatibility(
4241
t *testing.T,
4342
version string,
4443
input []byte,
45-
validator func(obj runtime.Object) validation.ErrorList,
44+
validator func(obj runtime.Object) field.ErrorList,
4645
expectedKeys map[string]string,
4746
absentKeys []string,
4847
) {

pkg/api/v1/backward_compatibility_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
"k8s.io/kubernetes/pkg/api/testing/compat"
2424
"k8s.io/kubernetes/pkg/api/validation"
2525
"k8s.io/kubernetes/pkg/runtime"
26-
utilvalidation "k8s.io/kubernetes/pkg/util/validation"
26+
"k8s.io/kubernetes/pkg/util/validation/field"
2727
)
2828

2929
func TestCompatibility_v1_PodSecurityContext(t *testing.T) {
@@ -217,8 +217,8 @@ func TestCompatibility_v1_PodSecurityContext(t *testing.T) {
217217
},
218218
}
219219

220-
validator := func(obj runtime.Object) utilvalidation.ErrorList {
221-
return validation.ValidatePodSpec(&(obj.(*api.Pod).Spec), utilvalidation.NewFieldPath("spec"))
220+
validator := func(obj runtime.Object) field.ErrorList {
221+
return validation.ValidatePodSpec(&(obj.(*api.Pod).Spec), field.NewPath("spec"))
222222
}
223223

224224
for _, tc := range cases {

pkg/api/validation/events.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,23 @@ package validation
1919
import (
2020
"k8s.io/kubernetes/pkg/api"
2121
"k8s.io/kubernetes/pkg/util/validation"
22+
"k8s.io/kubernetes/pkg/util/validation/field"
2223
)
2324

2425
// ValidateEvent makes sure that the event makes sense.
25-
func ValidateEvent(event *api.Event) validation.ErrorList {
26-
allErrs := validation.ErrorList{}
26+
func ValidateEvent(event *api.Event) field.ErrorList {
27+
allErrs := field.ErrorList{}
2728
// There is no namespace required for node.
2829
if event.InvolvedObject.Kind == "Node" &&
2930
event.Namespace != "" {
30-
allErrs = append(allErrs, validation.NewInvalidError(validation.NewFieldPath("involvedObject", "namespace"), event.InvolvedObject.Namespace, "namespace is not required for node"))
31+
allErrs = append(allErrs, field.NewInvalidError(field.NewPath("involvedObject", "namespace"), event.InvolvedObject.Namespace, "not required for node"))
3132
}
3233
if event.InvolvedObject.Kind != "Node" &&
3334
event.Namespace != event.InvolvedObject.Namespace {
34-
allErrs = append(allErrs, validation.NewInvalidError(validation.NewFieldPath("involvedObject", "namespace"), event.InvolvedObject.Namespace, "does not match involvedObject"))
35+
allErrs = append(allErrs, field.NewInvalidError(field.NewPath("involvedObject", "namespace"), event.InvolvedObject.Namespace, "does not match involvedObject"))
3536
}
3637
if !validation.IsDNS1123Subdomain(event.Namespace) {
37-
allErrs = append(allErrs, validation.NewInvalidError(validation.NewFieldPath("namespace"), event.Namespace, ""))
38+
allErrs = append(allErrs, field.NewInvalidError(field.NewPath("namespace"), event.Namespace, ""))
3839
}
3940
return allErrs
4041
}

0 commit comments

Comments
 (0)