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
@@ -305,6 +305,8 @@ type downloadRig struct {
|
||||
store *fakeUpdateStore
|
||||
jobs *fakeJobStore
|
||||
helper *fakeHelperDetector
|
||||
results *fakeResultStore
|
||||
requests *fakeRestartRequestStore
|
||||
fetcher *fakeAssetFetcher
|
||||
runner *fakeStagedRunner
|
||||
backup *fakeDatabaseBackup
|
||||
@@ -337,6 +339,8 @@ func newDownloadRigFor(t *testing.T, platform update.Platform, binary []byte) *d
|
||||
store: &fakeUpdateStore{},
|
||||
jobs: &fakeJobStore{},
|
||||
helper: &fakeHelperDetector{installed: true},
|
||||
results: &fakeResultStore{},
|
||||
requests: &fakeRestartRequestStore{},
|
||||
fetcher: &fakeAssetFetcher{
|
||||
files: map[string][]byte{},
|
||||
errors: map[string]error{},
|
||||
@@ -369,6 +373,8 @@ func (r *downloadRig) rebuild() {
|
||||
Store: r.store,
|
||||
Jobs: r.jobs,
|
||||
Helper: r.helper,
|
||||
Results: r.results,
|
||||
Requests: r.requests,
|
||||
Fetcher: r.fetcher,
|
||||
Verifier: verifier,
|
||||
Runner: r.runner,
|
||||
@@ -380,7 +386,7 @@ func (r *downloadRig) rebuild() {
|
||||
FeedURL: downloadFeedURL,
|
||||
Now: func() time.Time { return updateTestCheckedAt },
|
||||
})
|
||||
r.status = useCases.NewGetUpdateStatusUseCase(r.store, r.jobs, r.helper, updateRunning)
|
||||
r.status = useCases.NewGetUpdateStatusUseCase(r.store, r.jobs, r.helper, r.results, r.requests, updateRunning, time.Now)
|
||||
}
|
||||
|
||||
func (r *downloadRig) checksumsFor(name string, content []byte) string {
|
||||
@@ -690,7 +696,7 @@ func TestJSONJobStorePersistence(t *testing.T) {
|
||||
path := filepath.Join(dir, "update-job.json")
|
||||
_ = infraUpdate.NewJSONJobStore(path).Save(update.Job{Tag: downloadTag, State: update.StateReady, StartedAt: startedAt, StagedBinary: binary})
|
||||
|
||||
status := useCases.NewGetUpdateStatusUseCase(&fakeUpdateStore{result: newStoredUpdateResult(), found: true}, infraUpdate.NewJSONJobStore(path), &fakeHelperDetector{}, updateRunning).GetStatus(true)
|
||||
status := newUpdateStatusUseCase(&fakeUpdateStore{result: newStoredUpdateResult(), found: true}, infraUpdate.NewJSONJobStore(path), &fakeHelperDetector{}, updateRunning).GetStatus(true)
|
||||
|
||||
if status.State != update.StateReady {
|
||||
t.Errorf("state = %q", status.State)
|
||||
@@ -702,7 +708,7 @@ func TestJSONJobStorePersistence(t *testing.T) {
|
||||
path := filepath.Join(t.TempDir(), "update-job.json")
|
||||
_ = infraUpdate.NewJSONJobStore(path).Save(update.Job{Tag: downloadTag, State: state, StartedAt: startedAt, DownloadedBytes: 4, TotalBytes: 9})
|
||||
|
||||
status := useCases.NewGetUpdateStatusUseCase(&fakeUpdateStore{result: newStoredUpdateResult(), found: true}, infraUpdate.NewJSONJobStore(path), &fakeHelperDetector{}, updateRunning).GetStatus(true)
|
||||
status := newUpdateStatusUseCase(&fakeUpdateStore{result: newStoredUpdateResult(), found: true}, infraUpdate.NewJSONJobStore(path), &fakeHelperDetector{}, updateRunning).GetStatus(true)
|
||||
|
||||
if status.State != update.StateFailed || status.Error == nil || *status.Error != "download" || status.Progress != nil {
|
||||
t.Errorf("%s: status = %+v", state, status)
|
||||
@@ -714,7 +720,7 @@ func TestJSONJobStorePersistence(t *testing.T) {
|
||||
path := filepath.Join(t.TempDir(), "update-job.json")
|
||||
_ = infraUpdate.NewJSONJobStore(path).Save(update.Job{Tag: downloadTag, State: update.StateReady, StartedAt: startedAt, StagedBinary: filepath.Join(t.TempDir(), "missing")})
|
||||
|
||||
status := useCases.NewGetUpdateStatusUseCase(&fakeUpdateStore{result: newStoredUpdateResult(), found: true}, infraUpdate.NewJSONJobStore(path), &fakeHelperDetector{}, updateRunning).GetStatus(true)
|
||||
status := newUpdateStatusUseCase(&fakeUpdateStore{result: newStoredUpdateResult(), found: true}, infraUpdate.NewJSONJobStore(path), &fakeHelperDetector{}, updateRunning).GetStatus(true)
|
||||
|
||||
if status.State != update.StateIdle || status.StartedAt != nil {
|
||||
t.Errorf("status = %+v", status)
|
||||
|
||||
Reference in new issue
Block a user