Skip to content

Commit

Permalink
Sort status conditions for better readability (#290)
Browse files Browse the repository at this point in the history
Group by status (True, False, Unknown) then order by last transition time.
  • Loading branch information
koct9i authored Jun 20, 2024
1 parent b636bb1 commit 48e2b11
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions pkg/apiproxy/ytsaurus.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package apiproxy

import (
"cmp"
"context"
"fmt"
"slices"

"k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
Expand Down Expand Up @@ -70,6 +72,7 @@ func (c *Ytsaurus) SetUpdateStatusCondition(ctx context.Context, condition metav
logger := log.FromContext(ctx)
logger.Info("Setting update status condition", "condition", condition)
meta.SetStatusCondition(&c.ytsaurus.Status.UpdateStatus.Conditions, condition)
sortConditions(c.ytsaurus.Status.UpdateStatus.Conditions)
}

func (c *Ytsaurus) ClearUpdateStatus(ctx context.Context) error {
Expand Down Expand Up @@ -124,6 +127,7 @@ func (c *Ytsaurus) SaveUpdateState(ctx context.Context, updateState ytv1.UpdateS

func (c *Ytsaurus) SetStatusCondition(condition metav1.Condition) {
meta.SetStatusCondition(&c.ytsaurus.Status.Conditions, condition)
sortConditions(c.ytsaurus.Status.Conditions)
}

func (c *Ytsaurus) IsStatusConditionTrue(conditionType string) bool {
Expand All @@ -133,3 +137,13 @@ func (c *Ytsaurus) IsStatusConditionTrue(conditionType string) bool {
func (c *Ytsaurus) IsStatusConditionFalse(conditionType string) bool {
return meta.IsStatusConditionFalse(c.ytsaurus.Status.Conditions, conditionType)
}

func sortConditions(conditions []metav1.Condition) {
slices.SortStableFunc(conditions, func(a, b metav1.Condition) int {
statusOrder := []metav1.ConditionStatus{metav1.ConditionTrue, metav1.ConditionFalse, metav1.ConditionUnknown}
if diff := cmp.Compare(slices.Index(statusOrder, a.Status), slices.Index(statusOrder, b.Status)); diff != 0 {
return diff
}
return a.LastTransitionTime.Compare(b.LastTransitionTime.Time)
})
}

0 comments on commit 48e2b11

Please sign in to comment.