Skip to content

Commit

Permalink
Merge pull request #4226 from ctripcloud/fix-binding-status
Browse files Browse the repository at this point in the history
only update necessary part of binding status
  • Loading branch information
karmada-bot authored Nov 13, 2023
2 parents 67e45cd + e2fac02 commit 954f807
Showing 1 changed file with 8 additions and 12 deletions.
20 changes: 8 additions & 12 deletions pkg/util/helper/workstatus.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,6 @@ func AggregateResourceBindingWorkStatus(
resourceTemplate *unstructured.Unstructured,
eventRecorder record.EventRecorder,
) error {
binding.GetName()

workList, err := GetWorksByBindingNamespaceName(c, binding.Namespace, binding.Name)
if err != nil {
return err
Expand All @@ -59,19 +57,18 @@ func AggregateResourceBindingWorkStatus(

fullyAppliedCondition := generateFullyAppliedCondition(binding.Spec, aggregatedStatuses)

currentBindingStatus := binding.Status.DeepCopy()
currentBindingStatus.AggregatedStatus = aggregatedStatuses
err = retry.RetryOnConflict(retry.DefaultRetry, func() (err error) {
currentBindingStatus := binding.Status.DeepCopy()

binding.Status.AggregatedStatus = aggregatedStatuses
// set binding status with the newest condition
currentBindingStatus.Conditions = binding.Status.Conditions
meta.SetStatusCondition(&currentBindingStatus.Conditions, fullyAppliedCondition)
meta.SetStatusCondition(&binding.Status.Conditions, fullyAppliedCondition)
if reflect.DeepEqual(binding.Status, *currentBindingStatus) {
klog.V(4).Infof("New aggregatedStatuses are equal with old resourceBinding(%s/%s) AggregatedStatus, no update required.",
binding.Namespace, binding.Name)
return nil
}

binding.Status = *currentBindingStatus
updateErr := c.Status().Update(context.TODO(), binding)
if updateErr == nil {
return nil
Expand Down Expand Up @@ -118,18 +115,17 @@ func AggregateClusterResourceBindingWorkStatus(

fullyAppliedCondition := generateFullyAppliedCondition(binding.Spec, aggregatedStatuses)

currentBindingStatus := binding.Status.DeepCopy()
currentBindingStatus.AggregatedStatus = aggregatedStatuses
err = retry.RetryOnConflict(retry.DefaultRetry, func() (err error) {
currentBindingStatus := binding.Status.DeepCopy()

binding.Status.AggregatedStatus = aggregatedStatuses
// set binding status with the newest condition
currentBindingStatus.Conditions = binding.Status.Conditions
meta.SetStatusCondition(&currentBindingStatus.Conditions, fullyAppliedCondition)
meta.SetStatusCondition(&binding.Status.Conditions, fullyAppliedCondition)
if reflect.DeepEqual(binding.Status, *currentBindingStatus) {
klog.Infof("New aggregatedStatuses are equal with old clusterResourceBinding(%s) AggregatedStatus, no update required.", binding.Name)
return nil
}

binding.Status = *currentBindingStatus
updateErr := c.Status().Update(context.TODO(), binding)
if updateErr == nil {
return nil
Expand Down

0 comments on commit 954f807

Please sign in to comment.