Skip to content

Commit 3917ed8

Browse files
utam0kroboquat
authored andcommitted
ws-manager: introduce a DisposalEmpty status.
1 parent 79401fb commit 3917ed8

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

components/ws-manager/pkg/manager/annotations.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,13 +183,14 @@ func (m *Manager) markDisposalStatus(ctx context.Context, workspaceID string, di
183183
type DisposalStatus string
184184

185185
const (
186+
DisposalEmpty DisposalStatus = ""
186187
DisposalStarted DisposalStatus = "started"
187188
DisposalRetrying DisposalStatus = "retrying"
188189
DisposalFinished DisposalStatus = "finished"
189190
)
190191

191192
func (ds DisposalStatus) IsDisposing() bool {
192-
return !(ds == "" || ds == DisposalFinished)
193+
return !(ds == DisposalEmpty || ds == DisposalFinished)
193194
}
194195

195196
// workspaceVolumeSnapshotStatus stores the status of volume snapshot

components/ws-manager/pkg/manager/monitor.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,8 @@ func actOnPodEvent(ctx context.Context, m actingManager, manager *Manager, statu
321321
if status.Conditions.Timeout != "" && strings.Contains(status.Conditions.Timeout, string(activityBackup)) {
322322
span.LogKV("event", "timeout during backup")
323323
ds := &workspaceDisposalStatus{Status: DisposalFinished, BackupComplete: true, BackupFailure: status.Conditions.Timeout}
324-
if manager.markDisposalStatus(ctx, workspaceID, ds) != nil {
324+
err = manager.markDisposalStatus(ctx, workspaceID, ds)
325+
if err != nil {
325326
log.WithError(err).Error("was unable to update pod's disposal state - this will break someone's experience")
326327
}
327328
}
@@ -514,7 +515,7 @@ func actOnPodEvent(ctx context.Context, m actingManager, manager *Manager, statu
514515
}
515516
return m.modifyFinalizer(ctx, workspaceID, gitpodFinalizerName, false)
516517
} else {
517-
if ds == nil || ds.Status != DisposalFinished {
518+
if ds.Status != DisposalFinished {
518519
// We start finalizing the workspace content only after the container is gone. This way we ensure there's
519520
// no process modifying the workspace content as we create the backup.
520521
go m.finalizeWorkspaceContent(ctx, wso)
@@ -1008,10 +1009,10 @@ func (m *Monitor) finalizeWorkspaceContent(ctx context.Context, wso *workspaceOb
10081009
return
10091010
}
10101011

1011-
var disposalStatus *workspaceDisposalStatus
1012+
disposalStatus := &workspaceDisposalStatus{}
10121013
defer func() {
1013-
if disposalStatus == nil {
1014-
span.LogKV("disposalStatus", "nil")
1014+
if disposalStatus.Status == DisposalEmpty {
1015+
span.LogKV("disposalStatus", "empty")
10151016
return
10161017
}
10171018

0 commit comments

Comments
 (0)