MCPcopy
hub / github.com/cortexlabs/cortex / ValidateStringVal

Function ValidateStringVal

pkg/lib/configreader/string.go:230–394  ·  view source on GitHub ↗
(val string, v *StringValidation)

Source from the content-addressed store, hash-verified

228}
229
230func ValidateStringVal(val string, v *StringValidation) error {
231 if v.RequireCortexResources {
232 if err := checkOnlyCortexResources(val); err != nil {
233 return err
234 }
235 } else if !v.AllowCortexResources {
236 if err := checkNoCortexResources(val); err != nil {
237 return err
238 }
239 }
240
241 if !v.AllowEmpty {
242 if len(val) == 0 {
243 return ErrorCannotBeEmpty()
244 }
245 }
246
247 if len(v.AllowedValues) > 0 {
248 if !slices.HasString(append(v.AllowedValues, v.HiddenAllowedValues...), val) {
249 return ErrorInvalidStr(val, v.AllowedValues[0], v.AllowedValues[1:]...)
250 }
251 }
252
253 if len(v.DisallowedValues) > 0 {
254 if slices.HasString(v.DisallowedValues, val) {
255 return ErrorDisallowedValue(val)
256 }
257 }
258
259 if v.MaxLength > 0 && len(val) > v.MaxLength {
260 return ErrorTooLong(val, v.MaxLength)
261 }
262
263 if v.MinLength > 0 && len(val) < v.MinLength {
264 return ErrorTooShort(val, v.MinLength)
265 }
266
267 if v.Prefix != "" {
268 if !strings.HasPrefix(val, v.Prefix) {
269 return ErrorMustHavePrefix(val, v.Prefix)
270 }
271 }
272
273 if v.Suffix != "" {
274 if !strings.HasSuffix(val, v.Suffix) {
275 return ErrorMustHaveSuffix(val, v.Suffix)
276 }
277 }
278
279 for _, invalidPrefix := range v.InvalidPrefixes {
280 if strings.HasPrefix(val, invalidPrefix) {
281 return ErrorCantHavePrefix(val, invalidPrefix)
282 }
283 }
284
285 for _, invalidSuffix := range v.InvalidSuffixes {
286 if strings.HasSuffix(val, invalidSuffix) {
287 return ErrorCantHaveSuffix(val, invalidSuffix)

Callers 4

validateStringPtrFunction · 0.85
validateStringFunction · 0.85
validateStringMapFunction · 0.85
validateStringListFunction · 0.85

Calls 15

HasStringFunction · 0.92
HasLeadingWhitespaceFunction · 0.92
HasTrailingWhitespaceFunction · 0.92
IsAlphaNumericDashFunction · 0.92
IsValidAWSTagFunction · 0.92
IsValidDockerImageFunction · 0.92
CheckDNS1035Function · 0.92
CheckDNS1123Function · 0.92
checkOnlyCortexResourcesFunction · 0.85

Tested by

no test coverage detected