fix(ops-ux): treat restore previews as completed
This commit is contained in:
parent
c352bc9a17
commit
cb3da561ef
@ -75,7 +75,7 @@ public function handle(RestoreRun $restoreRun): void
|
|||||||
protected function mapStatus(RestoreRunStatus $status): array
|
protected function mapStatus(RestoreRunStatus $status): array
|
||||||
{
|
{
|
||||||
return match ($status) {
|
return match ($status) {
|
||||||
RestoreRunStatus::Previewed => ['queued', 'pending', []],
|
RestoreRunStatus::Previewed => ['completed', 'succeeded', []],
|
||||||
RestoreRunStatus::Pending => ['queued', 'pending', []],
|
RestoreRunStatus::Pending => ['queued', 'pending', []],
|
||||||
RestoreRunStatus::Queued => ['queued', 'pending', []],
|
RestoreRunStatus::Queued => ['queued', 'pending', []],
|
||||||
RestoreRunStatus::Running => ['running', 'pending', []],
|
RestoreRunStatus::Running => ['running', 'pending', []],
|
||||||
|
|||||||
@ -197,6 +197,7 @@ private function isTerminalRestoreStatus(?RestoreRunStatus $status): bool
|
|||||||
}
|
}
|
||||||
|
|
||||||
return in_array($status, [
|
return in_array($status, [
|
||||||
|
RestoreRunStatus::Previewed,
|
||||||
RestoreRunStatus::Completed,
|
RestoreRunStatus::Completed,
|
||||||
RestoreRunStatus::Partial,
|
RestoreRunStatus::Partial,
|
||||||
RestoreRunStatus::Failed,
|
RestoreRunStatus::Failed,
|
||||||
@ -214,6 +215,7 @@ private function mapRestoreToOperationRun(RestoreRun $restoreRun, RestoreRunStat
|
|||||||
$failureReason = is_string($restoreRun->failure_reason ?? null) ? (string) $restoreRun->failure_reason : '';
|
$failureReason = is_string($restoreRun->failure_reason ?? null) ? (string) $restoreRun->failure_reason : '';
|
||||||
|
|
||||||
return match ($status) {
|
return match ($status) {
|
||||||
|
RestoreRunStatus::Previewed => [OperationRunStatus::Completed->value, OperationRunOutcome::Succeeded->value, []],
|
||||||
RestoreRunStatus::Completed => [OperationRunStatus::Completed->value, OperationRunOutcome::Succeeded->value, []],
|
RestoreRunStatus::Completed => [OperationRunStatus::Completed->value, OperationRunOutcome::Succeeded->value, []],
|
||||||
RestoreRunStatus::Partial, RestoreRunStatus::CompletedWithErrors => [
|
RestoreRunStatus::Partial, RestoreRunStatus::CompletedWithErrors => [
|
||||||
OperationRunStatus::Completed->value,
|
OperationRunStatus::Completed->value,
|
||||||
|
|||||||
@ -23,8 +23,8 @@
|
|||||||
->first();
|
->first();
|
||||||
|
|
||||||
expect($opRun)->not->toBeNull();
|
expect($opRun)->not->toBeNull();
|
||||||
expect($opRun?->status)->toBe('queued');
|
expect($opRun?->status)->toBe('completed');
|
||||||
expect($opRun?->outcome)->toBe('pending');
|
expect($opRun?->outcome)->toBe('succeeded');
|
||||||
expect($opRun?->context)->toMatchArray([
|
expect($opRun?->context)->toMatchArray([
|
||||||
'restore_run_id' => (int) $restoreRun->getKey(),
|
'restore_run_id' => (int) $restoreRun->getKey(),
|
||||||
'backup_set_id' => (int) $restoreRun->backup_set_id,
|
'backup_set_id' => (int) $restoreRun->backup_set_id,
|
||||||
@ -34,7 +34,13 @@
|
|||||||
|
|
||||||
it('updates the operation run when restore completes', function () {
|
it('updates the operation run when restore completes', function () {
|
||||||
$restoreRun = RestoreRun::factory()->create([
|
$restoreRun = RestoreRun::factory()->create([
|
||||||
'status' => RestoreRunStatus::Previewed->value,
|
'status' => RestoreRunStatus::Queued->value,
|
||||||
|
'metadata' => [
|
||||||
|
'total' => 3,
|
||||||
|
'succeeded' => 1,
|
||||||
|
'failed' => 1,
|
||||||
|
'skipped' => 1,
|
||||||
|
],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$opRun = OperationRun::query()
|
$opRun = OperationRun::query()
|
||||||
@ -48,12 +54,11 @@
|
|||||||
|
|
||||||
$restoreRun->update([
|
$restoreRun->update([
|
||||||
'status' => RestoreRunStatus::Completed->value,
|
'status' => RestoreRunStatus::Completed->value,
|
||||||
'results' => [
|
'metadata' => [
|
||||||
'assignment_outcomes' => [
|
'total' => 3,
|
||||||
['status' => 'success'],
|
'succeeded' => 1,
|
||||||
['status' => 'failed'],
|
'failed' => 1,
|
||||||
['status' => 'skipped'],
|
'skipped' => 1,
|
||||||
],
|
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@ -62,16 +67,17 @@
|
|||||||
expect($opRun->status)->toBe('completed');
|
expect($opRun->status)->toBe('completed');
|
||||||
expect($opRun->outcome)->toBe('succeeded');
|
expect($opRun->outcome)->toBe('succeeded');
|
||||||
expect($opRun->summary_counts)->toMatchArray([
|
expect($opRun->summary_counts)->toMatchArray([
|
||||||
'assignments_success' => 1,
|
'total' => 3,
|
||||||
'assignments_failed' => 1,
|
'succeeded' => 1,
|
||||||
'assignments_skipped' => 1,
|
'failed' => 1,
|
||||||
|
'skipped' => 1,
|
||||||
]);
|
]);
|
||||||
expect($opRun->completed_at)->not->toBeNull();
|
expect($opRun->completed_at)->not->toBeNull();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('maps cancelled restore runs to failed outcome (cancelled is reserved)', function () {
|
it('maps cancelled restore runs to failed outcome (cancelled is reserved)', function () {
|
||||||
$restoreRun = RestoreRun::factory()->create([
|
$restoreRun = RestoreRun::factory()->create([
|
||||||
'status' => RestoreRunStatus::Previewed->value,
|
'status' => RestoreRunStatus::Queued->value,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$opRun = OperationRun::query()
|
$opRun = OperationRun::query()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user