Skip to content

Commit 38e6fba

Browse files
author
OpenShift Bot
authored
Merge pull request #12016 from liggitt/path-name-validation
Merged by openshift-bot
2 parents ab362f6 + c4d42d0 commit 38e6fba

File tree

10 files changed

+40
-68
lines changed

10 files changed

+40
-68
lines changed

pkg/api/helpers.go

+1-21
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,14 @@ package api
22

33
import (
44
"fmt"
5-
"strings"
65

76
"k8s.io/kubernetes/pkg/api/validation"
87
)
98

10-
var NameMayNotBe = []string{".", ".."}
11-
var NameMayNotContain = []string{"/", "%"}
12-
13-
func MinimalNameRequirements(name string, prefix bool) []string {
14-
for _, illegalName := range NameMayNotBe {
15-
if name == illegalName {
16-
return []string{fmt.Sprintf(`name may not be %q`, illegalName)}
17-
}
18-
}
19-
20-
for _, illegalContent := range NameMayNotContain {
21-
if strings.Contains(name, illegalContent) {
22-
return []string{fmt.Sprintf(`name may not contain %q`, illegalContent)}
23-
}
24-
}
25-
26-
return nil
27-
}
28-
299
// GetNameValidationFunc returns a name validation function that includes the standard restrictions we want for all types
3010
func GetNameValidationFunc(nameFunc validation.ValidateNameFunc) validation.ValidateNameFunc {
3111
return func(name string, prefix bool) []string {
32-
if reasons := MinimalNameRequirements(name, prefix); len(reasons) != 0 {
12+
if reasons := validation.ValidatePathSegmentName(name, prefix); len(reasons) != 0 {
3313
return reasons
3414
}
3515

pkg/api/validation/validation_test.go

+11-12
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212
ktypes "k8s.io/kubernetes/pkg/types"
1313
"k8s.io/kubernetes/pkg/util/validation/field"
1414

15-
"github.com/openshift/origin/pkg/api"
1615
authorizationapi "github.com/openshift/origin/pkg/authorization/api"
1716
)
1817

@@ -51,15 +50,15 @@ func TestNameFunc(t *testing.T) {
5150
apiObjectMeta := apiValue.Elem().FieldByName("ObjectMeta")
5251

5352
// check for illegal names
54-
for _, illegalName := range api.NameMayNotBe {
53+
for _, illegalName := range []string{".", ".."} {
5554
apiObjectMeta.Set(reflect.ValueOf(kapi.ObjectMeta{Name: illegalName}))
5655

5756
errList := validationInfo.Validator.Validate(apiValue.Interface().(runtime.Object))
58-
reasons := api.MinimalNameRequirements(illegalName, false)
57+
reasons := validation.ValidatePathSegmentName(illegalName, false)
5958
requiredMessage := strings.Join(reasons, ", ")
6059

6160
if len(errList) == 0 {
62-
t.Errorf("expected error for %v in %v not found amongst %v. You probably need to add api.MinimalNameRequirements to your name validator..", illegalName, apiType.Elem(), errList)
61+
t.Errorf("expected error for %v in %v not found amongst %v. You probably need to add validation.ValidatePathSegmentName to your name validator..", illegalName, apiType.Elem(), errList)
6362
continue
6463
}
6564

@@ -73,30 +72,30 @@ func TestNameFunc(t *testing.T) {
7372
foundExpectedError = true
7473
break
7574
}
76-
// this message is from a stock name validation method in kube that covers our requirements in MinimalNameRequirements
75+
// this message is from a stock name validation method in kube that covers our requirements in ValidatePathSegmentName
7776
if validationError.Detail == nameRulesMessage {
7877
foundExpectedError = true
7978
break
8079
}
8180
}
8281

8382
if !foundExpectedError {
84-
t.Errorf("expected error for %v in %v not found amongst %v. You probably need to add api.MinimalNameRequirements to your name validator.", illegalName, apiType.Elem(), errList)
83+
t.Errorf("expected error for %v in %v not found amongst %v. You probably need to add validation.ValidatePathSegmentName to your name validator.", illegalName, apiType.Elem(), errList)
8584
}
8685
}
8786

8887
// check for illegal contents
89-
for _, illegalContent := range api.NameMayNotContain {
88+
for _, illegalContent := range []string{"/", "%"} {
9089
illegalName := "a" + illegalContent + "b"
9190

9291
apiObjectMeta.Set(reflect.ValueOf(kapi.ObjectMeta{Name: illegalName}))
9392

9493
errList := validationInfo.Validator.Validate(apiValue.Interface().(runtime.Object))
95-
reasons := api.MinimalNameRequirements(illegalName, false)
94+
reasons := validation.ValidatePathSegmentName(illegalName, false)
9695
requiredMessage := strings.Join(reasons, ", ")
9796

9897
if len(errList) == 0 {
99-
t.Errorf("expected error for %v in %v not found amongst %v. You probably need to add api.MinimalNameRequirements to your name validator.", illegalName, apiType.Elem(), errList)
98+
t.Errorf("expected error for %v in %v not found amongst %v. You probably need to add validation.ValidatePathSegmentName to your name validator.", illegalName, apiType.Elem(), errList)
10099
continue
101100
}
102101

@@ -111,15 +110,15 @@ func TestNameFunc(t *testing.T) {
111110
foundExpectedError = true
112111
break
113112
}
114-
// this message is from a stock name validation method in kube that covers our requirements in MinimalNameRequirements
113+
// this message is from a stock name validation method in kube that covers our requirements in ValidatePathSegmentName
115114
if validationError.Detail == nameRulesMessage {
116115
foundExpectedError = true
117116
break
118117
}
119118
}
120119

121120
if !foundExpectedError {
122-
t.Errorf("expected error for %v in %v not found amongst %v. You probably need to add api.MinimalNameRequirements to your name validator.", illegalName, apiType.Elem(), errList)
121+
t.Errorf("expected error for %v in %v not found amongst %v. You probably need to add validation.ValidatePathSegmentName to your name validator.", illegalName, apiType.Elem(), errList)
123122
}
124123
}
125124
}
@@ -141,7 +140,7 @@ func TestObjectMeta(t *testing.T) {
141140
}
142141

143142
errList := validationInfo.Validator.Validate(apiValue.Interface().(runtime.Object))
144-
requiredErrors := validation.ValidateObjectMeta(apiObjectMeta.Addr().Interface().(*kapi.ObjectMeta), validationInfo.IsNamespaced, api.MinimalNameRequirements, field.NewPath("metadata"))
143+
requiredErrors := validation.ValidateObjectMeta(apiObjectMeta.Addr().Interface().(*kapi.ObjectMeta), validationInfo.IsNamespaced, validation.ValidatePathSegmentName, field.NewPath("metadata"))
145144

146145
if len(errList) == 0 {
147146
t.Errorf("expected errors %v in %v not found amongst %v. You probably need to call kube/validation.ValidateObjectMeta in your validator.", requiredErrors, apiType.Elem(), errList)

pkg/authorization/api/validation/validation.go

+5-6
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
kvalidation "k8s.io/kubernetes/pkg/util/validation"
1010
"k8s.io/kubernetes/pkg/util/validation/field"
1111

12-
oapi "github.com/openshift/origin/pkg/api"
1312
authorizationapi "github.com/openshift/origin/pkg/authorization/api"
1413
uservalidation "github.com/openshift/origin/pkg/user/api/validation"
1514
)
@@ -81,7 +80,7 @@ func ValidateLocalResourceAccessReview(review *authorizationapi.LocalResourceAcc
8180
}
8281

8382
func ValidatePolicyName(name string, prefix bool) []string {
84-
if reasons := oapi.MinimalNameRequirements(name, prefix); len(reasons) != 0 {
83+
if reasons := validation.ValidatePathSegmentName(name, prefix); len(reasons) != 0 {
8584
return reasons
8685
}
8786

@@ -137,7 +136,7 @@ func ValidatePolicyUpdate(policy *authorizationapi.Policy, oldPolicy *authorizat
137136

138137
func PolicyBindingNameValidator(policyRefNamespace string) validation.ValidateNameFunc {
139138
return func(name string, prefix bool) []string {
140-
if reasons := oapi.MinimalNameRequirements(name, prefix); len(reasons) != 0 {
139+
if reasons := validation.ValidatePathSegmentName(name, prefix); len(reasons) != 0 {
141140
return reasons
142141
}
143142

@@ -227,7 +226,7 @@ func ValidateRole(role *authorizationapi.Role, isNamespaced bool) field.ErrorLis
227226
}
228227

229228
func validateRole(role *authorizationapi.Role, isNamespaced bool, fldPath *field.Path) field.ErrorList {
230-
return validation.ValidateObjectMeta(&role.ObjectMeta, isNamespaced, oapi.MinimalNameRequirements, fldPath.Child("metadata"))
229+
return validation.ValidateObjectMeta(&role.ObjectMeta, isNamespaced, validation.ValidatePathSegmentName, fldPath.Child("metadata"))
231230
}
232231

233232
func ValidateRoleUpdate(role *authorizationapi.Role, oldRole *authorizationapi.Role, isNamespaced bool) field.ErrorList {
@@ -259,7 +258,7 @@ func ValidateRoleBinding(roleBinding *authorizationapi.RoleBinding, isNamespaced
259258

260259
func validateRoleBinding(roleBinding *authorizationapi.RoleBinding, isNamespaced bool, fldPath *field.Path) field.ErrorList {
261260
allErrs := field.ErrorList{}
262-
allErrs = append(allErrs, validation.ValidateObjectMeta(&roleBinding.ObjectMeta, isNamespaced, oapi.MinimalNameRequirements, fldPath.Child("metadata"))...)
261+
allErrs = append(allErrs, validation.ValidateObjectMeta(&roleBinding.ObjectMeta, isNamespaced, validation.ValidatePathSegmentName, fldPath.Child("metadata"))...)
263262

264263
// roleRef namespace is empty when referring to global policy.
265264
if (len(roleBinding.RoleRef.Namespace) > 0) && len(kvalidation.IsDNS1123Subdomain(roleBinding.RoleRef.Namespace)) != 0 {
@@ -269,7 +268,7 @@ func validateRoleBinding(roleBinding *authorizationapi.RoleBinding, isNamespaced
269268
if len(roleBinding.RoleRef.Name) == 0 {
270269
allErrs = append(allErrs, field.Required(fldPath.Child("roleRef", "name"), ""))
271270
} else {
272-
if reasons := oapi.MinimalNameRequirements(roleBinding.RoleRef.Name, false); len(reasons) != 0 {
271+
if reasons := validation.ValidatePathSegmentName(roleBinding.RoleRef.Name, false); len(reasons) != 0 {
273272
allErrs = append(allErrs, field.Invalid(fldPath.Child("roleRef", "name"), roleBinding.RoleRef.Name, strings.Join(reasons, ", ")))
274273
}
275274
}

pkg/build/api/validation/validation.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import (
1717
kvalidation "k8s.io/kubernetes/pkg/util/validation"
1818
"k8s.io/kubernetes/pkg/util/validation/field"
1919

20-
oapi "github.com/openshift/origin/pkg/api"
2120
buildapi "github.com/openshift/origin/pkg/build/api"
2221
"github.com/openshift/origin/pkg/build/api/v1"
2322
buildutil "github.com/openshift/origin/pkg/build/util"
@@ -162,7 +161,7 @@ func ValidateBuildConfigUpdate(config *buildapi.BuildConfig, older *buildapi.Bui
162161

163162
// ValidateBuildRequest validates a BuildRequest object
164163
func ValidateBuildRequest(request *buildapi.BuildRequest) field.ErrorList {
165-
return validation.ValidateObjectMeta(&request.ObjectMeta, true, oapi.MinimalNameRequirements, field.NewPath("metadata"))
164+
return validation.ValidateObjectMeta(&request.ObjectMeta, true, validation.ValidatePathSegmentName, field.NewPath("metadata"))
166165
}
167166

168167
func validateCommonSpec(spec *buildapi.CommonSpec, fldPath *field.Path) field.ErrorList {

pkg/image/api/validation/validation.go

+5-6
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414
"k8s.io/kubernetes/pkg/util/diff"
1515
"k8s.io/kubernetes/pkg/util/validation/field"
1616

17-
oapi "github.com/openshift/origin/pkg/api"
1817
"github.com/openshift/origin/pkg/image/api"
1918
)
2019

@@ -35,7 +34,7 @@ var RepositoryNameComponentAnchoredRegexp = regexp.MustCompile(`^` + RepositoryN
3534
var RepositoryNameRegexp = regexp.MustCompile(`(?:` + RepositoryNameComponentRegexp.String() + `/)*` + RepositoryNameComponentRegexp.String())
3635

3736
func ValidateImageStreamName(name string, prefix bool) []string {
38-
if reasons := oapi.MinimalNameRequirements(name, prefix); len(reasons) != 0 {
37+
if reasons := validation.ValidatePathSegmentName(name, prefix); len(reasons) != 0 {
3938
return reasons
4039
}
4140

@@ -51,7 +50,7 @@ func ValidateImage(image *api.Image) field.ErrorList {
5150
}
5251

5352
func validateImage(image *api.Image, fldPath *field.Path) field.ErrorList {
54-
result := validation.ValidateObjectMeta(&image.ObjectMeta, false, oapi.MinimalNameRequirements, fldPath.Child("metadata"))
53+
result := validation.ValidateObjectMeta(&image.ObjectMeta, false, validation.ValidatePathSegmentName, fldPath.Child("metadata"))
5554

5655
if len(image.DockerImageReference) == 0 {
5756
result = append(result, field.Required(fldPath.Child("dockerImageReference"), ""))
@@ -81,7 +80,7 @@ func ValidateImageSignature(signature *api.ImageSignature) field.ErrorList {
8180
}
8281

8382
func validateImageSignature(signature *api.ImageSignature, fldPath *field.Path) field.ErrorList {
84-
allErrs := validation.ValidateObjectMeta(&signature.ObjectMeta, false, oapi.MinimalNameRequirements, fldPath.Child("metadata"))
83+
allErrs := validation.ValidateObjectMeta(&signature.ObjectMeta, false, validation.ValidatePathSegmentName, fldPath.Child("metadata"))
8584
if len(signature.Labels) > 0 {
8685
allErrs = append(allErrs, field.Forbidden(fldPath.Child("metadata").Child("labels"), "signature labels cannot be set"))
8786
}
@@ -227,7 +226,7 @@ func ValidateImageStreamStatusUpdate(newStream, oldStream *api.ImageStream) fiel
227226

228227
// ValidateImageStreamMapping tests required fields for an ImageStreamMapping.
229228
func ValidateImageStreamMapping(mapping *api.ImageStreamMapping) field.ErrorList {
230-
result := validation.ValidateObjectMeta(&mapping.ObjectMeta, true, oapi.MinimalNameRequirements, field.NewPath("metadata"))
229+
result := validation.ValidateObjectMeta(&mapping.ObjectMeta, true, validation.ValidatePathSegmentName, field.NewPath("metadata"))
231230

232231
hasRepository := len(mapping.DockerImageRepository) != 0
233232
hasName := len(mapping.Name) != 0
@@ -256,7 +255,7 @@ func ValidateImageStreamMapping(mapping *api.ImageStreamMapping) field.ErrorList
256255

257256
// ValidateImageStreamTag validates a mutation of an image stream tag, which can happen on PUT
258257
func ValidateImageStreamTag(ist *api.ImageStreamTag) field.ErrorList {
259-
result := validation.ValidateObjectMeta(&ist.ObjectMeta, true, oapi.MinimalNameRequirements, field.NewPath("metadata"))
258+
result := validation.ValidateObjectMeta(&ist.ObjectMeta, true, validation.ValidatePathSegmentName, field.NewPath("metadata"))
260259
if ist.Tag != nil {
261260
result = append(result, ValidateImageStreamTagReference(*ist.Tag, field.NewPath("tag"))...)
262261
if ist.Tag.Annotations != nil && !kapi.Semantic.DeepEqual(ist.Tag.Annotations, ist.ObjectMeta.Annotations) {

pkg/image/api/validation/validation_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -380,14 +380,14 @@ func TestValidateImageStream(t *testing.T) {
380380
namespace: "foo",
381381
name: "foo/bar",
382382
expected: field.ErrorList{
383-
field.Invalid(field.NewPath("metadata", "name"), "foo/bar", `name may not contain "/"`),
383+
field.Invalid(field.NewPath("metadata", "name"), "foo/bar", `may not contain '/'`),
384384
},
385385
},
386386
"no percent in Name": {
387387
namespace: "foo",
388388
name: "foo%%bar",
389389
expected: field.ErrorList{
390-
field.Invalid(field.NewPath("metadata", "name"), "foo%%bar", `name may not contain "%"`),
390+
field.Invalid(field.NewPath("metadata", "name"), "foo%%bar", `may not contain '%'`),
391391
},
392392
},
393393
"other invalid name": {
@@ -689,13 +689,13 @@ func TestValidateImageStreamImport(t *testing.T) {
689689
"no slash in Name": {
690690
isi: &api.ImageStreamImport{ObjectMeta: kapi.ObjectMeta{Namespace: "foo", Name: "foo/bar"}, Spec: validSpec},
691691
expected: field.ErrorList{
692-
field.Invalid(field.NewPath("metadata", "name"), "foo/bar", `name may not contain "/"`),
692+
field.Invalid(field.NewPath("metadata", "name"), "foo/bar", `may not contain '/'`),
693693
},
694694
},
695695
"no percent in Name": {
696696
isi: &api.ImageStreamImport{ObjectMeta: kapi.ObjectMeta{Namespace: "foo", Name: "foo%%bar"}, Spec: validSpec},
697697
expected: field.ErrorList{
698-
field.Invalid(field.NewPath("metadata", "name"), "foo%%bar", `name may not contain "%"`),
698+
field.Invalid(field.NewPath("metadata", "name"), "foo%%bar", `may not contain '%'`),
699699
},
700700
},
701701
"other invalid name": {

pkg/oauth/api/validation/validation.go

+4-5
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
"k8s.io/kubernetes/pkg/serviceaccount"
1111
"k8s.io/kubernetes/pkg/util/validation/field"
1212

13-
oapi "github.com/openshift/origin/pkg/api"
1413
authorizerscopes "github.com/openshift/origin/pkg/authorization/authorizer/scope"
1514
"github.com/openshift/origin/pkg/oauth/api"
1615
uservalidation "github.com/openshift/origin/pkg/user/api/validation"
@@ -28,7 +27,7 @@ const (
2827
var CodeChallengeMethodsSupported = []string{codeChallengeMethodPlain, codeChallengeMethodSHA256}
2928

3029
func ValidateTokenName(name string, prefix bool) []string {
31-
if reasons := oapi.MinimalNameRequirements(name, prefix); len(reasons) != 0 {
30+
if reasons := validation.ValidatePathSegmentName(name, prefix); len(reasons) != 0 {
3231
return reasons
3332
}
3433

@@ -187,7 +186,7 @@ func ValidateClientUpdate(client *api.OAuthClient, oldClient *api.OAuthClient) f
187186
}
188187

189188
func ValidateClientAuthorizationName(name string, prefix bool) []string {
190-
if reasons := oapi.MinimalNameRequirements(name, prefix); len(reasons) != 0 {
189+
if reasons := validation.ValidatePathSegmentName(name, prefix); len(reasons) != 0 {
191190
return reasons
192191
}
193192

@@ -305,7 +304,7 @@ func ValidateScopes(scopes []string, fldPath *field.Path) field.ErrorList {
305304
}
306305

307306
func ValidateOAuthRedirectReference(sref *api.OAuthRedirectReference) field.ErrorList {
308-
allErrs := validation.ValidateObjectMeta(&sref.ObjectMeta, true, oapi.MinimalNameRequirements, field.NewPath("metadata"))
307+
allErrs := validation.ValidateObjectMeta(&sref.ObjectMeta, true, validation.ValidatePathSegmentName, field.NewPath("metadata"))
309308
return append(allErrs, validateRedirectReference(&sref.Reference)...)
310309
}
311310

@@ -314,7 +313,7 @@ func validateRedirectReference(ref *api.RedirectReference) field.ErrorList {
314313
if len(ref.Name) == 0 {
315314
allErrs = append(allErrs, field.Required(field.NewPath("name"), "may not be empty"))
316315
} else {
317-
for _, msg := range oapi.MinimalNameRequirements(ref.Name, false) {
316+
for _, msg := range validation.ValidatePathSegmentName(ref.Name, false) {
318317
allErrs = append(allErrs, field.Invalid(field.NewPath("name"), ref.Name, msg))
319318
}
320319
}

pkg/project/api/validation/validation.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,13 @@ import (
77
"k8s.io/kubernetes/pkg/api/validation"
88
"k8s.io/kubernetes/pkg/util/validation/field"
99

10-
oapi "github.com/openshift/origin/pkg/api"
1110
"github.com/openshift/origin/pkg/project/api"
1211
projectapi "github.com/openshift/origin/pkg/project/api"
1312
"github.com/openshift/origin/pkg/util/labelselector"
1413
)
1514

1615
func ValidateProjectName(name string, prefix bool) []string {
17-
if reasons := oapi.MinimalNameRequirements(name, prefix); len(reasons) != 0 {
16+
if reasons := validation.ValidatePathSegmentName(name, prefix); len(reasons) != 0 {
1817
return reasons
1918
}
2019

pkg/sdn/api/validation/validation.go

+4-5
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@ import (
66
"k8s.io/kubernetes/pkg/api/validation"
77
"k8s.io/kubernetes/pkg/util/validation/field"
88

9-
oapi "github.com/openshift/origin/pkg/api"
109
sdnapi "github.com/openshift/origin/pkg/sdn/api"
1110
)
1211

1312
// ValidateClusterNetwork tests if required fields in the ClusterNetwork are set.
1413
func ValidateClusterNetwork(clusterNet *sdnapi.ClusterNetwork) field.ErrorList {
15-
allErrs := validation.ValidateObjectMeta(&clusterNet.ObjectMeta, false, oapi.MinimalNameRequirements, field.NewPath("metadata"))
14+
allErrs := validation.ValidateObjectMeta(&clusterNet.ObjectMeta, false, validation.ValidatePathSegmentName, field.NewPath("metadata"))
1615

1716
clusterIP, clusterIPNet, err := net.ParseCIDR(clusterNet.Network)
1817
if err != nil {
@@ -83,7 +82,7 @@ func ValidateClusterNetworkUpdate(obj *sdnapi.ClusterNetwork, old *sdnapi.Cluste
8382
// ValidateHostSubnet tests fields for the host subnet, the host should be a network resolvable string,
8483
// and subnet should be a valid CIDR
8584
func ValidateHostSubnet(hs *sdnapi.HostSubnet) field.ErrorList {
86-
allErrs := validation.ValidateObjectMeta(&hs.ObjectMeta, false, oapi.MinimalNameRequirements, field.NewPath("metadata"))
85+
allErrs := validation.ValidateObjectMeta(&hs.ObjectMeta, false, validation.ValidatePathSegmentName, field.NewPath("metadata"))
8786

8887
if hs.Subnet == "" {
8988
// check if annotation exists, then let the Subnet field be empty
@@ -115,7 +114,7 @@ func ValidateHostSubnetUpdate(obj *sdnapi.HostSubnet, old *sdnapi.HostSubnet) fi
115114

116115
// ValidateNetNamespace tests fields for a greater-than-zero NetID
117116
func ValidateNetNamespace(netnamespace *sdnapi.NetNamespace) field.ErrorList {
118-
allErrs := validation.ValidateObjectMeta(&netnamespace.ObjectMeta, false, oapi.MinimalNameRequirements, field.NewPath("metadata"))
117+
allErrs := validation.ValidateObjectMeta(&netnamespace.ObjectMeta, false, validation.ValidatePathSegmentName, field.NewPath("metadata"))
119118

120119
if err := sdnapi.ValidVNID(netnamespace.NetID); err != nil {
121120
allErrs = append(allErrs, field.Invalid(field.NewPath("netID"), netnamespace.NetID, err.Error()))
@@ -131,7 +130,7 @@ func ValidateNetNamespaceUpdate(obj *sdnapi.NetNamespace, old *sdnapi.NetNamespa
131130

132131
// ValidateEgressNetworkPolicy tests if required fields in the EgressNetworkPolicy are set.
133132
func ValidateEgressNetworkPolicy(policy *sdnapi.EgressNetworkPolicy) field.ErrorList {
134-
allErrs := validation.ValidateObjectMeta(&policy.ObjectMeta, true, oapi.MinimalNameRequirements, field.NewPath("metadata"))
133+
allErrs := validation.ValidateObjectMeta(&policy.ObjectMeta, true, validation.ValidatePathSegmentName, field.NewPath("metadata"))
135134

136135
for i, rule := range policy.Spec.Egress {
137136
if rule.Type != sdnapi.EgressNetworkPolicyRuleAllow && rule.Type != sdnapi.EgressNetworkPolicyRuleDeny {

0 commit comments

Comments
 (0)