Skip to content

Commit b688faf

Browse files
committed
fix: compare LastSyncedResourcesCount to send update event
1 parent 58c3175 commit b688faf

2 files changed

Lines changed: 17 additions & 3 deletions

File tree

kubewatch/pkg/resource/application/bean.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,10 @@ type applicationDetail struct {
2626
StatusTime time.Time `json:"statusTime"`
2727
ClusterId int `json:"clusterId"`
2828
}
29+
30+
func getApplicationLastSyncedResourcesCount(appObj *v1alpha1.Application) int {
31+
if appObj.Status.OperationState == nil || appObj.Status.OperationState.SyncResult == nil {
32+
return 0
33+
}
34+
return len(appObj.Status.OperationState.SyncResult.Resources)
35+
}

kubewatch/pkg/resource/application/handler.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,22 @@ func (impl *InformerImpl) GetSharedInformer(clusterLabels *informerBean.ClusterL
7171
newStatus := string(newApp.Status.Health.Status)
7272
newSyncStatus := string(newApp.Status.Sync.Status)
7373
oldSyncStatus := string(oldApp.Status.Sync.Status)
74-
if (oldRevision != newRevision) || (oldStatus != newStatus) || (newSyncStatus != oldSyncStatus) {
74+
oldAppLastSyncedResourcesCount := getApplicationLastSyncedResourcesCount(oldApp)
75+
newAppLastSyncedResourcesCount := getApplicationLastSyncedResourcesCount(newApp)
76+
if (oldRevision != newRevision) ||
77+
(oldStatus != newStatus) ||
78+
(newSyncStatus != oldSyncStatus) ||
79+
(oldAppLastSyncedResourcesCount != newAppLastSyncedResourcesCount) {
7580
impl.sendAppUpdate(clusterLabels.ClusterId, newApp, statusTime)
7681
impl.logger.Debugw("ARGO_CD_APPLICATION: send update event for application object", "appName", oldApp.Name, "oldRevision", oldRevision, "newRevision",
7782
newRevision, "oldStatus", oldStatus, "newStatus", newStatus,
78-
"newSyncStatus", newSyncStatus, "oldSyncStatus", oldSyncStatus)
83+
"newSyncStatus", newSyncStatus, "oldSyncStatus", oldSyncStatus,
84+
"oldAppLastSyncedResourcesCount", oldAppLastSyncedResourcesCount, "newAppLastSyncedResourcesCount", newAppLastSyncedResourcesCount)
7985
} else {
8086
impl.logger.Debugw("ARGO_CD_APPLICATION: skip updating event for application object", "appName", oldApp.Name, "oldRevision", oldRevision, "newRevision",
8187
newRevision, "oldStatus", oldStatus, "newStatus", newStatus,
82-
"newSyncStatus", newSyncStatus, "oldSyncStatus", oldSyncStatus)
88+
"newSyncStatus", newSyncStatus, "oldSyncStatus", oldSyncStatus,
89+
"oldAppLastSyncedResourcesCount", oldAppLastSyncedResourcesCount, "newAppLastSyncedResourcesCount", newAppLastSyncedResourcesCount)
8390
}
8491
}
8592
} else {

0 commit comments

Comments
 (0)