func validateResponsibilitiesOfAllNodes()

in api/v1beta1/teamcity_webhook.go [188:209]


func validateResponsibilitiesOfAllNodes(teamcity *TeamCity) (warning string, err error) {
	//it is allowed to have empty responsibilities for all nodes
	if allNodesHaveEmptyResponsibility(teamcity.Spec.MainNode, teamcity.Spec.SecondaryNodes) {
		return "", nil
	}

	//if responsibilities are specified for at least one node, we need to check all of them
	if err = validateMainNodeResponsibilities("teamcity.spec.mainNode", teamcity.Spec.MainNode, validMainNodeResponsibilities, minimumRequiredMainNodeResponsibilities); err != nil {
		return "", err
	}
	for idx, secondaryNode := range teamcity.Spec.SecondaryNodes {
		if err = validateNodeResponsibilities(fmt.Sprintf("teamcity.spec.secondaryNode[%d]", idx), secondaryNode, validSecondaryNodeResponsibilities); err != nil {
			return "", err
		}
	}

	//make sure that all responsibilities are assigned
	if warning := validatePresenceOfAllResponsibilities(allTeamCityResponsibilities, teamcity.Spec.MainNode, teamcity.Spec.SecondaryNodes); warning != "" {
		return warning, err
	}
	return "", nil
}