diff --git a/internal/orchestrator/tasks/taskbackup.go b/internal/orchestrator/tasks/taskbackup.go index 0e0eeffd..9ba4971d 100644 --- a/internal/orchestrator/tasks/taskbackup.go +++ b/internal/orchestrator/tasks/taskbackup.go @@ -76,7 +76,7 @@ func (t *BackupTask) Next(now time.Time, runner TaskRunner) (ScheduledTask, erro if op.Status == v1.OperationStatus_STATUS_PENDING || op.Status == v1.OperationStatus_STATUS_SYSTEM_CANCELLED { return nil } - if _, ok := op.Op.(*v1.Operation_OperationBackup); ok { + if _, ok := op.Op.(*v1.Operation_OperationBackup); ok && op.UnixTimeEndMs != 0 { lastRan = time.Unix(0, op.UnixTimeEndMs*int64(time.Millisecond)) return oplog.ErrStopIteration } diff --git a/internal/orchestrator/tasks/taskcheck.go b/internal/orchestrator/tasks/taskcheck.go index ac94328f..06bddcc5 100644 --- a/internal/orchestrator/tasks/taskcheck.go +++ b/internal/orchestrator/tasks/taskcheck.go @@ -63,7 +63,7 @@ func (t *CheckTask) Next(now time.Time, runner TaskRunner) (ScheduledTask, error if op.Status == v1.OperationStatus_STATUS_PENDING || op.Status == v1.OperationStatus_STATUS_SYSTEM_CANCELLED { return nil } - if _, ok := op.Op.(*v1.Operation_OperationCheck); ok { + if _, ok := op.Op.(*v1.Operation_OperationCheck); ok && op.UnixTimeEndMs != 0 { lastRan = time.Unix(0, op.UnixTimeEndMs*int64(time.Millisecond)) return oplog.ErrStopIteration } diff --git a/internal/orchestrator/tasks/taskprune.go b/internal/orchestrator/tasks/taskprune.go index 55fe4fd6..5d07604f 100644 --- a/internal/orchestrator/tasks/taskprune.go +++ b/internal/orchestrator/tasks/taskprune.go @@ -62,7 +62,7 @@ func (t *PruneTask) Next(now time.Time, runner TaskRunner) (ScheduledTask, error if op.Status == v1.OperationStatus_STATUS_PENDING || op.Status == v1.OperationStatus_STATUS_SYSTEM_CANCELLED { return nil } - if _, ok := op.Op.(*v1.Operation_OperationPrune); ok { + if _, ok := op.Op.(*v1.Operation_OperationPrune); ok && op.UnixTimeEndMs != 0 { lastRan = time.Unix(0, op.UnixTimeEndMs*int64(time.Millisecond)) return oplog.ErrStopIteration } diff --git a/webui/src/state/flowdisplayaggregator.ts b/webui/src/state/flowdisplayaggregator.ts index 58df265a..a3393743 100644 --- a/webui/src/state/flowdisplayaggregator.ts +++ b/webui/src/state/flowdisplayaggregator.ts @@ -47,6 +47,10 @@ export const displayInfoForFlow = (ops: Operation[]): FlowDisplayInfo => { const duration = Number(firstOp.unixTimeEndMs - firstOp.unixTimeStartMs); + if (firstOp.status === OperationStatus.STATUS_PENDING) { + info.subtitleComponents.push("scheduled, waiting"); + } + switch (firstOp.op.case) { case "operationBackup": { @@ -93,9 +97,6 @@ export const displayInfoForFlow = (ops: Operation[]): FlowDisplayInfo => { info.subtitleComponents.push(`ID: ${normalizeSnapshotId(snapshot.id)}`); default: switch (firstOp.status) { - case OperationStatus.STATUS_PENDING: - info.subtitleComponents.push("scheduled, waiting"); - break; case OperationStatus.STATUS_INPROGRESS: info.subtitleComponents.push("running"); break;