feat: restart to apply update, privileged helper, rollback
This commit is contained in:
1 parent
70460e4170
commit
54e8fd5fed
63 files changed
+8635
-164
No files matched your search
@@ -0,0 +1,44 @@
|
||||
package useCases
|
||||
|
||||
import (
|
||||
"RenewCMS/internal/domain/update"
|
||||
"errors"
|
||||
"time"
|
||||
)
|
||||
|
||||
type updateStatusBuilder struct {
|
||||
store update.StatusStore
|
||||
jobs update.JobStore
|
||||
results update.ResultStore
|
||||
requests update.RestartRequestStore
|
||||
currentVersion string
|
||||
now func() time.Time
|
||||
}
|
||||
|
||||
func (b updateStatusBuilder) build(canApply bool) update.UpdateStatus {
|
||||
status := b.baseStatus()
|
||||
if job, found := b.jobs.Load(); found {
|
||||
status = status.WithJob(job)
|
||||
}
|
||||
status.CanApply = canApply
|
||||
|
||||
request, requestErr := b.requests.Read()
|
||||
result, hasResult := b.results.Read()
|
||||
if hasResult {
|
||||
status.FinishedAt = result.FinishedAt
|
||||
}
|
||||
switch {
|
||||
case !errors.Is(requestErr, update.ErrNoRestartRequest):
|
||||
return status.WithRestartRequest(request)
|
||||
case hasResult:
|
||||
return status.WithResult(result, b.currentVersion, b.now())
|
||||
}
|
||||
return status
|
||||
}
|
||||
|
||||
func (b updateStatusBuilder) baseStatus() update.UpdateStatus {
|
||||
if result, found := b.store.Load(); found {
|
||||
return update.NewStatus(b.currentVersion, &result)
|
||||
}
|
||||
return update.NewStatus(b.currentVersion, nil)
|
||||
}
|
||||
Reference in new issue
Block a user