Skip to content

Commit 0b76f83

Browse files
committed
fix: anomolies in deployment status timeline
1 parent 31b1e79 commit 0b76f83

File tree

3 files changed

+20
-9
lines changed

3 files changed

+20
-9
lines changed

pkg/app/AppService.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -610,6 +610,7 @@ func (impl *AppServiceImpl) UpdatePipelineStatusTimelineForApplicationChanges(ap
610610
haveNewTimeline = true
611611
timeline.Status = timelineStatus.TIMELINE_STATUS_APP_HEALTHY
612612
timeline.StatusDetail = "App status is Healthy."
613+
timeline.StatusTime = statusTime
613614
}
614615
if haveNewTimeline {
615616
// not checking if this status is already present or not because already checked for terminal status existence earlier

pkg/app/status/PipelineStatusTimelineResourcesService.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,18 +92,24 @@ func (impl *PipelineStatusTimelineResourcesServiceImpl) SaveOrUpdatePipelineTime
9292
if application != nil && application.Status.OperationState != nil && application.Status.OperationState.SyncResult != nil {
9393
for _, resource := range application.Status.OperationState.SyncResult.Resources {
9494
if resource != nil {
95+
resourceStatus := string(resource.HookPhase)
96+
if len(resourceStatus) == 0 {
97+
resourceStatus = string(resource.Status)
98+
}
99+
//if resource is already present in the timelineResources, then update it
95100
if index, ok := oldTimelineResourceMap[resource.Name]; ok {
96-
timelineResources[index].ResourceStatus = string(resource.HookPhase)
101+
timelineResources[index].ResourceStatus = resourceStatus
97102
timelineResources[index].StatusMessage = resource.Message
98103
timelineResources[index].UpdatedBy = userId
99104
timelineResources[index].UpdatedOn = time.Now()
100105
timelineResourcesToBeUpdated = append(timelineResourcesToBeUpdated, timelineResources[index])
101106
} else {
107+
//if resource is not present in the timelineResources, then create a new one
102108
newTimelineResource := &pipelineConfig.PipelineStatusTimelineResources{
103109
ResourceName: resource.Name,
104110
ResourceKind: resource.Kind,
105111
ResourceGroup: resource.Group,
106-
ResourceStatus: string(resource.HookPhase),
112+
ResourceStatus: resourceStatus,
107113
StatusMessage: resource.Message,
108114
AuditLog: sql.AuditLog{
109115
CreatedBy: userId,

pkg/argoApplication/helper/deploymentStatusHelper.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,14 @@ import (
1010
func GetSyncStartTime(app *v1alpha1.Application, defaultStartTime time.Time) time.Time {
1111
startTime := metav1.NewTime(defaultStartTime)
1212
gitHash := app.Status.Sync.Revision
13-
if app.Status.OperationState != nil {
13+
if app.Status.OperationState != nil &&
14+
app.Status.OperationState.Operation.Sync != nil &&
15+
app.Status.OperationState.Operation.Sync.Revision == gitHash {
1416
startTime = app.Status.OperationState.StartedAt
15-
} else if app.Status.History != nil {
16-
for _, history := range app.Status.History {
17-
if history.Revision == gitHash {
18-
startTime = *history.DeployStartedAt
19-
}
17+
} else if len(app.Status.History) != 0 {
18+
if app.Status.History.LastRevisionHistory().Revision == gitHash &&
19+
app.Status.History.LastRevisionHistory().DeployStartedAt != nil {
20+
startTime = *app.Status.History.LastRevisionHistory().DeployStartedAt
2021
}
2122
}
2223
return startTime.Time
@@ -26,7 +27,10 @@ func GetSyncStartTime(app *v1alpha1.Application, defaultStartTime time.Time) tim
2627
func GetSyncFinishTime(app *v1alpha1.Application, defaultEndTime time.Time) time.Time {
2728
finishTime := metav1.NewTime(defaultEndTime)
2829
gitHash := app.Status.Sync.Revision
29-
if app.Status.OperationState != nil && app.Status.OperationState.FinishedAt != nil {
30+
if app.Status.OperationState != nil &&
31+
app.Status.OperationState.Operation.Sync != nil &&
32+
app.Status.OperationState.Operation.Sync.Revision == gitHash &&
33+
app.Status.OperationState.FinishedAt != nil {
3034
finishTime = *app.Status.OperationState.FinishedAt
3135
} else if app.Status.History != nil {
3236
for _, history := range app.Status.History {

0 commit comments

Comments
 (0)