|
|
|
@ -100,9 +100,11 @@ namespace Squidex.Domain.Apps.Entities.Backup |
|
|
|
{ |
|
|
|
if (!job.Stopped.HasValue) |
|
|
|
{ |
|
|
|
await CleanupAsync(job); |
|
|
|
|
|
|
|
job.Stopped = clock.GetCurrentInstant(); |
|
|
|
|
|
|
|
await CleanupArchiveAsync(job); |
|
|
|
await CleanupBackupAsync(job); |
|
|
|
|
|
|
|
job.IsFailed = true; |
|
|
|
|
|
|
|
await WriteAsync(); |
|
|
|
@ -110,28 +112,31 @@ namespace Squidex.Domain.Apps.Entities.Backup |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private async Task CleanupAsync(BackupStateJob job) |
|
|
|
private async Task CleanupBackupAsync(BackupStateJob job) |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
|
await backupArchiveLocation.DeleteArchiveAsync(job.Id); |
|
|
|
await assetStore.DeleteAsync(job.Id.ToString(), 0, null); |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
log.LogError(ex, w => w |
|
|
|
.WriteProperty("action", "deleteArchive") |
|
|
|
.WriteProperty("action", "deleteBackup") |
|
|
|
.WriteProperty("status", "failed") |
|
|
|
.WriteProperty("backupId", job.Id.ToString())); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private async Task CleanupArchiveAsync(BackupStateJob job) |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
|
await assetStore.DeleteAsync(job.Id.ToString(), 0, null); |
|
|
|
await backupArchiveLocation.DeleteArchiveAsync(job.Id); |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
log.LogError(ex, w => w |
|
|
|
.WriteProperty("action", "deleteBackup") |
|
|
|
.WriteProperty("action", "deleteArchive") |
|
|
|
.WriteProperty("status", "failed") |
|
|
|
.WriteProperty("backupId", job.Id.ToString())); |
|
|
|
} |
|
|
|
@ -233,7 +238,7 @@ namespace Squidex.Domain.Apps.Entities.Backup |
|
|
|
} |
|
|
|
finally |
|
|
|
{ |
|
|
|
await CleanupAsync(job); |
|
|
|
await CleanupArchiveAsync(job); |
|
|
|
|
|
|
|
job.Stopped = clock.GetCurrentInstant(); |
|
|
|
|
|
|
|
@ -259,10 +264,12 @@ namespace Squidex.Domain.Apps.Entities.Backup |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
await CleanupArchiveAsync(job); |
|
|
|
await CleanupBackupAsync(job); |
|
|
|
|
|
|
|
state.Jobs.Remove(job); |
|
|
|
|
|
|
|
await WriteAsync(); |
|
|
|
await CleanupAsync(job); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|