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
}