mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 05:57:25 +00:00
Make IsDNS952Label return error strings
This commit is contained in:
parent
5862a60ae7
commit
54a3efb364
@ -58,7 +58,6 @@ func InclusiveRangeErrorMsg(lo, hi int) string {
|
|||||||
return fmt.Sprintf(`must be between %d and %d, inclusive`, lo, hi)
|
return fmt.Sprintf(`must be between %d and %d, inclusive`, lo, hi)
|
||||||
}
|
}
|
||||||
|
|
||||||
var DNS952LabelErrorMsg string = fmt.Sprintf(`must be a DNS 952 label (at most %d characters, matching regex %s): e.g. "my-name"`, validation.DNS952LabelMaxLength, validation.DNS952LabelFmt)
|
|
||||||
var pdPartitionErrorMsg string = InclusiveRangeErrorMsg(1, 255)
|
var pdPartitionErrorMsg string = InclusiveRangeErrorMsg(1, 255)
|
||||||
var PortRangeErrorMsg string = InclusiveRangeErrorMsg(1, 65535)
|
var PortRangeErrorMsg string = InclusiveRangeErrorMsg(1, 65535)
|
||||||
var IdRangeErrorMsg string = InclusiveRangeErrorMsg(0, math.MaxInt32)
|
var IdRangeErrorMsg string = InclusiveRangeErrorMsg(0, math.MaxInt32)
|
||||||
@ -256,10 +255,7 @@ func NameIsDNS952Label(name string, prefix bool) []string {
|
|||||||
if prefix {
|
if prefix {
|
||||||
name = maskTrailingDash(name)
|
name = maskTrailingDash(name)
|
||||||
}
|
}
|
||||||
if validation.IsDNS952Label(name) {
|
return validation.IsDNS952Label(name)
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return []string{DNS952LabelErrorMsg}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validates that given value is not negative.
|
// Validates that given value is not negative.
|
||||||
|
@ -260,8 +260,10 @@ func validateContext(contextName string, context clientcmdapi.Context, config cl
|
|||||||
validationErrors = append(validationErrors, fmt.Errorf("cluster %q was not found for context %q", context.Cluster, contextName))
|
validationErrors = append(validationErrors, fmt.Errorf("cluster %q was not found for context %q", context.Cluster, contextName))
|
||||||
}
|
}
|
||||||
|
|
||||||
if (len(context.Namespace) != 0) && !validation.IsDNS952Label(context.Namespace) {
|
if len(context.Namespace) != 0 {
|
||||||
validationErrors = append(validationErrors, fmt.Errorf("namespace %q for context %q does not conform to the kubernetes DNS952 rules", context.Namespace, contextName))
|
if len(validation.IsDNS1123Label(context.Namespace)) != 0 {
|
||||||
|
validationErrors = append(validationErrors, fmt.Errorf("namespace %q for context %q does not conform to the kubernetes DNS_LABEL rules", context.Namespace, contextName))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return validationErrors
|
return validationErrors
|
||||||
|
@ -128,8 +128,15 @@ var dns952LabelRegexp = regexp.MustCompile("^" + DNS952LabelFmt + "$")
|
|||||||
|
|
||||||
// IsDNS952Label tests for a string that conforms to the definition of a label in
|
// IsDNS952Label tests for a string that conforms to the definition of a label in
|
||||||
// DNS (RFC 952).
|
// DNS (RFC 952).
|
||||||
func IsDNS952Label(value string) bool {
|
func IsDNS952Label(value string) []string {
|
||||||
return len(value) <= DNS952LabelMaxLength && dns952LabelRegexp.MatchString(value)
|
var errs []string
|
||||||
|
if len(value) > DNS952LabelMaxLength {
|
||||||
|
errs = append(errs, MaxLenError(DNS952LabelMaxLength))
|
||||||
|
}
|
||||||
|
if !dns952LabelRegexp.MatchString(value) {
|
||||||
|
errs = append(errs, RegexError(DNS952LabelFmt, "my-name", "abc-123"))
|
||||||
|
}
|
||||||
|
return errs
|
||||||
}
|
}
|
||||||
|
|
||||||
const CIdentifierFmt string = "[A-Za-z_][A-Za-z0-9_]*"
|
const CIdentifierFmt string = "[A-Za-z_][A-Za-z0-9_]*"
|
||||||
|
@ -92,8 +92,8 @@ func TestIsDNS952Label(t *testing.T) {
|
|||||||
strings.Repeat("a", 24),
|
strings.Repeat("a", 24),
|
||||||
}
|
}
|
||||||
for _, val := range goodValues {
|
for _, val := range goodValues {
|
||||||
if !IsDNS952Label(val) {
|
if msgs := IsDNS952Label(val); len(msgs) != 0 {
|
||||||
t.Errorf("expected true for '%s'", val)
|
t.Errorf("expected true for '%s': %v", val, msgs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,7 +107,7 @@ func TestIsDNS952Label(t *testing.T) {
|
|||||||
strings.Repeat("a", 25),
|
strings.Repeat("a", 25),
|
||||||
}
|
}
|
||||||
for _, val := range badValues {
|
for _, val := range badValues {
|
||||||
if IsDNS952Label(val) {
|
if msgs := IsDNS952Label(val); len(msgs) == 0 {
|
||||||
t.Errorf("expected false for '%s'", val)
|
t.Errorf("expected false for '%s'", val)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user