Browse Source

Fix in backup.

pull/860/head
Sebastian 4 years ago
parent
commit
8e44562237
  1. 3
      backend/src/Squidex.Domain.Apps.Entities/Apps/BackupApps.cs
  2. 6
      backend/src/Squidex.Domain.Apps.Entities/Apps/Indexes/AppsIndex.cs
  3. 3
      backend/src/Squidex.Domain.Apps.Entities/Apps/Indexes/IAppsIndex.cs
  4. 2
      backend/src/Squidex.Domain.Apps.Entities/Backup/IBackupHandler.cs
  5. 2
      backend/src/Squidex.Domain.Apps.Entities/Backup/RestoreGrain.cs
  6. 5
      backend/tests/Squidex.Domain.Apps.Entities.Tests/Apps/BackupAppsTests.cs
  7. 9
      backend/tests/Squidex.Domain.Apps.Entities.Tests/Apps/Indexes/AppsIndexTests.cs

3
backend/src/Squidex.Domain.Apps.Entities/Apps/BackupApps.cs

@ -135,10 +135,11 @@ namespace Squidex.Domain.Apps.Entities.Apps
await appsIndex.RemoveReservationAsync(appReservation);
}
public async Task CompleteRestoreAsync(RestoreContext context)
public async Task CompleteRestoreAsync(RestoreContext context, string appName)
{
await rebuilder.InsertManyAsync<AppDomainObject, AppDomainObject.State>(Enumerable.Repeat(context.AppId, 1), 1, default);
await appsIndex.RegisterAsync(context.AppId, appName);
await appsIndex.RemoveReservationAsync(appReservation);
}

6
backend/src/Squidex.Domain.Apps.Entities/Apps/Indexes/AppsIndex.cs

@ -34,6 +34,12 @@ namespace Squidex.Domain.Apps.Entities.Apps.Indexes
this.grainCache = grainCache;
}
public Task RegisterAsync(DomainId id, string name,
CancellationToken ct = default)
{
return Cache().AddAsync(id, name);
}
public Task RemoveReservationAsync(string? token,
CancellationToken ct = default)
{

3
backend/src/Squidex.Domain.Apps.Entities/Apps/Indexes/IAppsIndex.cs

@ -24,6 +24,9 @@ namespace Squidex.Domain.Apps.Entities.Apps.Indexes
Task<string?> ReserveAsync(DomainId id, string name,
CancellationToken ct = default);
Task RegisterAsync(DomainId id, string name,
CancellationToken ct = default);
Task RemoveReservationAsync(string? token,
CancellationToken ct = default);
}

2
backend/src/Squidex.Domain.Apps.Entities/Backup/IBackupHandler.cs

@ -43,7 +43,7 @@ namespace Squidex.Domain.Apps.Entities.Backup
return Task.CompletedTask;
}
public Task CompleteRestoreAsync(RestoreContext context)
public Task CompleteRestoreAsync(RestoreContext context, string appName)
{
return Task.CompletedTask;
}

2
backend/src/Squidex.Domain.Apps.Entities/Backup/RestoreGrain.cs

@ -168,7 +168,7 @@ namespace Squidex.Domain.Apps.Entities.Backup
{
using (Telemetry.Activities.StartActivity($"{handler.GetType().Name}/CompleteRestoreAsync"))
{
await handler.CompleteRestoreAsync(runningContext);
await handler.CompleteRestoreAsync(runningContext, CurrentJob.NewAppName!);
}
Log($"Completed {handler.Name}");

5
backend/tests/Squidex.Domain.Apps.Entities.Tests/Apps/BackupAppsTests.cs

@ -79,11 +79,14 @@ namespace Squidex.Domain.Apps.Entities.Apps
Name = appName
}), context, ct);
await sut.CompleteRestoreAsync(context);
await sut.CompleteRestoreAsync(context, appName);
A.CallTo(() => appsIndex.RemoveReservationAsync("Reservation", default))
.MustHaveHappened();
A.CallTo(() => appsIndex.RegisterAsync(appId, appName, default))
.MustHaveHappened();
A.CallTo(() => rebuilder.InsertManyAsync<AppDomainObject, AppDomainObject.State>(A<IEnumerable<DomainId>>.That.Is(appId), 1, default))
.MustHaveHappened();
}

9
backend/tests/Squidex.Domain.Apps.Entities.Tests/Apps/Indexes/AppsIndexTests.cs

@ -320,6 +320,15 @@ namespace Squidex.Domain.Apps.Entities.Apps.Indexes
.MustHaveHappened();
}
[Fact]
public async Task Should_forward_registation()
{
await sut.RegisterAsync(appId.Id, appId.Name);
A.CallTo(() => cache.AddAsync(appId.Id, appId.Name))
.MustHaveHappened();
}
private (IAppEntity, IAppGrain) CreateApp(long version = 0, bool fromClient = false, bool isArchived = false)
{
var app = A.Fake<IAppEntity>();

Loading…
Cancel
Save