func()

in internal/utils/controller/requirement_helper.go [32:61]


func (rh RequirementHelper) UpdateCondition(r *v1alpha1.Requirement, conditionType string, conditionStatus metav1.ConditionStatus, reason, message string) bool {
	condition := &metav1.Condition{
		Type:               conditionType,
		Status:             conditionStatus,
		LastTransitionTime: metav1.Now(),
		Reason:             reason,
		Message:            message,
	}
	// Try to find this pod condition.
	idx, oldCondition := rh.getCondition(r, condition.Type)

	if oldCondition == nil {
		// We are adding new pod condition.
		r.Status.Conditions = append(r.Status.Conditions, *condition)
		return true
	}
	// We are updating an existing condition, so we need to check if it has changed.
	if condition.Status == oldCondition.Status {
		condition.LastTransitionTime = oldCondition.LastTransitionTime
	}

	isEqual := condition.Status == oldCondition.Status &&
		condition.Reason == oldCondition.Reason &&
		condition.Message == oldCondition.Message &&
		condition.LastTransitionTime.Equal(&oldCondition.LastTransitionTime)

	r.Status.Conditions[idx] = *condition
	// Return true if one of the fields have changed.
	return !isEqual
}