func validateMainNodeResponsibilities()

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
}