in api/v1beta1/teamcity_webhook.go [232:254]
func validateMainNodeResponsibilities(objectPath string, node Node, validResponsibilities []string, requiredResponsibilities []string) error {
responsibilities := node.Spec.Responsibilities
if len(responsibilities) < 1 {
return typed.ValidationError{
Path: fmt.Sprintf("%s.%s", objectPath, "responsibilities"),
ErrorMessage: fmt.Sprintf("Main node cannot have empty responsibilities. Minimum required values are: %s. Valid values are: %s.", strings.Join(requiredResponsibilities, ", "), strings.Join(validResponsibilities, ", ")),
}
}
if !areAllElementsAllowed(responsibilities, validResponsibilities) {
return typed.ValidationError{
Path: fmt.Sprintf("%s.%s", objectPath, "responsibilities"),
ErrorMessage: fmt.Sprintf("Main node does not have valid responsibilities. Minimum required values are: %s. Valid values are: %s", strings.Join(requiredResponsibilities, ", "), strings.Join(validResponsibilities, ", ")),
}
}
if !allElementsInOtherSlice(requiredResponsibilities, responsibilities) {
return typed.ValidationError{
Path: fmt.Sprintf("%s.%s", objectPath, "responsibilities"),
ErrorMessage: fmt.Sprintf("Main node does not have required responsibilities. Minimum required values are: %s", strings.Join(requiredResponsibilities, ", ")),
}
}
return nil
}