feat: restart to apply update, privileged helper, rollback

This commit is contained in:
fsylvain committed 2026-10-01 21:36:40 +02:00
1 parent 70460e4170
commit 54e8fd5fed
63 files changed
+8635 -164

No files matched your search

+39
View File
@@ -14,6 +14,7 @@ export const NOTE_ITEMS = [
export const STATUS_PATH = '/v1/system/update'
export const CHECK_PATH = '/v1/system/update/check'
export const DOWNLOAD_PATH = '/v1/system/update/download'
export const RESTART_PATH = '/v1/system/update/restart'
export const BOARD_TOTAL_BYTES = 27262976
export const BOARD_DONE_BYTES = 11534336
@@ -35,6 +36,7 @@ export function upToDate(overrides: Partial<UpdateStatus> = {}): UpdateStatus {
progress: null,
error: null,
started_at: null,
finished_at: null,
...overrides,
}
}
@@ -94,3 +96,40 @@ export function ready(): UpdateStatus {
export function failedWith(error: 'download' | 'verification'): UpdateStatus {
return startable({ state: 'failed', error, started_at: '2026-09-30T09:51:00Z' })
}
export const RESTART_STARTED_AT = '2026-09-30T09:51:00Z'
export const RESTART_FINISHED_AT = '2026-09-30T09:52:00Z'
export function restarting(): UpdateStatus {
return startable({ state: 'restarting', started_at: RESTART_STARTED_AT })
}
export function updateSucceeded(): UpdateStatus {
return upToDate({
current: NEW_TAG,
latest: NEW_TAG,
available: false,
can_apply: true,
state: 'succeeded',
started_at: RESTART_STARTED_AT,
finished_at: RESTART_FINISHED_AT,
})
}
export function rolledBack(error: 'rolled_back' | 'install' = 'rolled_back'): UpdateStatus {
return startable({
state: 'failed',
error,
started_at: RESTART_STARTED_AT,
finished_at: RESTART_FINISHED_AT,
})
}
export function plainRestartDone(): UpdateStatus {
return upToDate({
can_apply: true,
state: 'idle',
started_at: null,
finished_at: RESTART_FINISHED_AT,
})
}