Skip to content

Commit

Permalink
Merge pull request #375 from wking/only-bump-lastTransitionTime-on-st…
Browse files Browse the repository at this point in the history
…atus-changes

OCPBUGS-18034: Only bump lastTransitionTime on 'status' changes
  • Loading branch information
openshift-merge-robot committed Aug 23, 2023
2 parents 3f0692c + 7c65c37 commit f5f12b7
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 11 deletions.
3 changes: 1 addition & 2 deletions pkg/operator/controller/dns_status.go
Expand Up @@ -265,8 +265,7 @@ func computeDNSUpgradeableCondition(oldCondition *operatorv1.OperatorCondition,
// setDNSLastTransitionTime sets LastTransitionTime for the given condition.
// If the condition has changed, it will assign a new timestamp otherwise keeps the old timestamp.
func setDNSLastTransitionTime(condition, oldCondition *operatorv1.OperatorCondition) operatorv1.OperatorCondition {
if oldCondition != nil && condition.Status == oldCondition.Status &&
condition.Reason == oldCondition.Reason && condition.Message == oldCondition.Message {
if oldCondition != nil && condition.Status == oldCondition.Status {
condition.LastTransitionTime = oldCondition.LastTransitionTime
} else {
condition.LastTransitionTime = metav1.Now()
Expand Down
14 changes: 5 additions & 9 deletions pkg/operator/controller/status/controller.go
Expand Up @@ -625,13 +625,13 @@ func mergeConditions(conditions []configv1.ClusterOperatorStatusCondition, updat
for j, cond := range conditions {
if cond.Type == update.Type {
add = false
if conditionChanged(cond, update) {
conditions[j].Status = update.Status
conditions[j].Reason = update.Reason
conditions[j].Message = update.Message
if conditions[j].Status != update.Status {
conditions[j].LastTransitionTime = now
break
}
conditions[j].Status = update.Status
conditions[j].Reason = update.Reason
conditions[j].Message = update.Message
break
}
}
if add {
Expand All @@ -643,10 +643,6 @@ func mergeConditions(conditions []configv1.ClusterOperatorStatusCondition, updat
return conditions
}

func conditionChanged(a, b configv1.ClusterOperatorStatusCondition) bool {
return a.Status != b.Status || a.Reason != b.Reason || a.Message != b.Message
}

// operatorStatusesEqual compares two ClusterOperatorStatus values. Returns true
// if the provided ClusterOperatorStatus values should be considered equal for the
// purpose of determining whether an update is necessary, false otherwise.
Expand Down

0 comments on commit f5f12b7

Please sign in to comment.