Skip to content

Commit

Permalink
vrg: better logging for conditions
Browse files Browse the repository at this point in the history
Signed-off-by: Raghavendra Talur <[email protected]>
  • Loading branch information
raghavendra-talur authored and BenamarMk committed Feb 13, 2025
1 parent 074d4f3 commit ca44e13
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 9 deletions.
6 changes: 4 additions & 2 deletions internal/controller/status.go
Original file line number Diff line number Diff line change
Expand Up @@ -423,7 +423,7 @@ func setStatusConditionIfNotFound(existingConditions *[]metav1.Condition, newCon
}
}

func setStatusCondition(existingConditions *[]metav1.Condition, newCondition metav1.Condition) {
func setStatusCondition(existingConditions *[]metav1.Condition, newCondition metav1.Condition) metav1.Condition {
if existingConditions == nil {
existingConditions = &[]metav1.Condition{}
}
Expand All @@ -433,7 +433,7 @@ func setStatusCondition(existingConditions *[]metav1.Condition, newCondition met
newCondition.LastTransitionTime = metav1.NewTime(time.Now())
*existingConditions = append(*existingConditions, newCondition)

return
return newCondition
}

if existingCondition.Status != newCondition.Status {
Expand All @@ -458,6 +458,8 @@ func setStatusCondition(existingConditions *[]metav1.Condition, newCondition met
existingCondition.ObservedGeneration = newCondition.ObservedGeneration
existingCondition.LastTransitionTime = metav1.NewTime(time.Now())
}

return *existingCondition
}

func findCondition(existingConditions []metav1.Condition, conditionType string) *metav1.Condition {
Expand Down
14 changes: 9 additions & 5 deletions internal/controller/util/conditions.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,11 +90,11 @@ func ConditionAppend(

// MergeConditions merges VRG conditions of the same type to generate a single condition for the Type
func MergeConditions(
conditionSet func(*[]metav1.Condition, metav1.Condition),
conditionSet func(*[]metav1.Condition, metav1.Condition) metav1.Condition,
conditions *[]metav1.Condition,
ignoreReasons []string,
subConditions ...*metav1.Condition,
) {
) metav1.Condition {
trueSubConditions := []*metav1.Condition{}
falseSubConditions := []*metav1.Condition{}
unknownSubConditions := []*metav1.Condition{}
Expand All @@ -114,14 +114,18 @@ func MergeConditions(
}
}

var finalCondition metav1.Condition

switch {
case len(falseSubConditions) != 0:
conditionSet(conditions, mergedCondition(falseSubConditions, ignoreReasons))
finalCondition = conditionSet(conditions, mergedCondition(falseSubConditions, ignoreReasons))
case len(unknownSubConditions) != 0:
conditionSet(conditions, mergedCondition(unknownSubConditions, ignoreReasons))
finalCondition = conditionSet(conditions, mergedCondition(unknownSubConditions, ignoreReasons))
case len(trueSubConditions) != 0:
conditionSet(conditions, mergedCondition(trueSubConditions, ignoreReasons))
finalCondition = conditionSet(conditions, mergedCondition(trueSubConditions, ignoreReasons))
}

return finalCondition
}

// oldestConditions returns a list of conditions that are the same generation and the oldest among newCondition and
Expand Down
7 changes: 5 additions & 2 deletions internal/controller/volumereplicationgroup_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -1559,11 +1559,14 @@ func getStatusStateFromSpecState(state ramendrv1alpha1.ReplicationState) ramendr
// condition and is updated elsewhere.
func (v *VRGInstance) updateVRGConditions() {
logAndSet := func(conditionName string, subconditions ...*metav1.Condition) {
v.log.Info(conditionName, "subconditions", subconditions)
util.MergeConditions(setStatusCondition,
msg := fmt.Sprintf("merging %s condition", conditionName)
v.log.Info(msg, "subconditions", subconditions)
finalCondition := util.MergeConditions(setStatusCondition,
&v.instance.Status.Conditions,
[]string{VRGConditionReasonUnused},
subconditions...)
msg = fmt.Sprintf("updated %s status to %s", conditionName, finalCondition.Status)
v.log.Info(msg, "finalCondition", finalCondition)
}

var volSyncDataReady, volSyncDataProtected, volSyncClusterDataProtected *metav1.Condition
Expand Down

0 comments on commit ca44e13

Please sign in to comment.