Backup: added DeleteBackupRequest

This commit is contained in:
pavelbannov 2020-06-16 17:46:10 +03:00
parent fc0826b60d
commit b35a60cac0
4 changed files with 38 additions and 4 deletions

View File

@ -30,6 +30,7 @@
<ItemGroup> <ItemGroup>
<None Remove="protos\AzRecordCache.proto" /> <None Remove="protos\AzRecordCache.proto" />
<None Remove="protos\ConsumerCacheItem.proto" /> <None Remove="protos\ConsumerCacheItem.proto" />
<None Remove="protos\DeleteBackupRequest.proto" />
<None Remove="protos\GroupCacheItem.proto" /> <None Remove="protos\GroupCacheItem.proto" />
<None Remove="protos\NotifyMessage.proto" /> <None Remove="protos\NotifyMessage.proto" />
<None Remove="protos\QuotaCacheItem.proto" /> <None Remove="protos\QuotaCacheItem.proto" />
@ -69,6 +70,7 @@
<Protobuf Include="protos\NotifyMessage.proto" /> <Protobuf Include="protos\NotifyMessage.proto" />
<Protobuf Include="protos\SettingsCacheItem.proto" /> <Protobuf Include="protos\SettingsCacheItem.proto" />
<Protobuf Include="protos\ConsumerCacheItem.proto" /> <Protobuf Include="protos\ConsumerCacheItem.proto" />
<Protobuf Include="protos\DeleteBackupRequest.proto" />
<Protobuf Include="protos\TenantCacheItem.proto" /> <Protobuf Include="protos\TenantCacheItem.proto" />
<Protobuf Include="protos\GroupCacheItem.proto" /> <Protobuf Include="protos\GroupCacheItem.proto" />
<Protobuf Include="protos\UserGroupRefCacheItem.proto" /> <Protobuf Include="protos\UserGroupRefCacheItem.proto" />

View File

@ -30,10 +30,13 @@ using System.Collections.Generic;
using ASC.Common; using ASC.Common;
using ASC.Common.Caching; using ASC.Common.Caching;
using Google.Protobuf;
namespace ASC.Core.Common.Contracts namespace ASC.Core.Common.Contracts
{ {
public class BackupServiceClient : IBackupService public class BackupServiceClient : IBackupService
{ {
public ICacheNotify<DeleteBackupRequest> CacheDeleteBackupRequest { get; }
public ICacheNotify<StartBackupRequest> СacheStartBackupRequest { get; set; } public ICacheNotify<StartBackupRequest> СacheStartBackupRequest { get; set; }
public ICacheNotify<StartRestoreRequest> СacheStartRestoreRequest { get; set; } public ICacheNotify<StartRestoreRequest> СacheStartRestoreRequest { get; set; }
public ICacheNotify<StartTransferRequest> СacheStartTransferRequest { get; set; } public ICacheNotify<StartTransferRequest> СacheStartTransferRequest { get; set; }
@ -41,12 +44,14 @@ namespace ASC.Core.Common.Contracts
public ICache Cache { get; } public ICache Cache { get; }
public BackupServiceClient( public BackupServiceClient(
ICacheNotify<DeleteBackupRequest> cacheDeleteBackupRequest,
ICacheNotify<StartBackupRequest> cacheStartBackupRequest, ICacheNotify<StartBackupRequest> cacheStartBackupRequest,
ICacheNotify<StartRestoreRequest> cacheStartRestoreRequest, ICacheNotify<StartRestoreRequest> cacheStartRestoreRequest,
ICacheNotify<StartTransferRequest> cacheStartTransferRequest, ICacheNotify<StartTransferRequest> cacheStartTransferRequest,
ICacheNotify<BackupProgress> сacheBackupProgress ICacheNotify<BackupProgress> сacheBackupProgress
) )
{ {
CacheDeleteBackupRequest = cacheDeleteBackupRequest;
СacheStartBackupRequest = cacheStartBackupRequest; СacheStartBackupRequest = cacheStartBackupRequest;
СacheStartRestoreRequest = cacheStartRestoreRequest; СacheStartRestoreRequest = cacheStartRestoreRequest;
СacheStartTransferRequest = cacheStartTransferRequest; СacheStartTransferRequest = cacheStartTransferRequest;
@ -72,13 +77,13 @@ namespace ASC.Core.Common.Contracts
public void DeleteBackup(Guid backupId) public void DeleteBackup(Guid backupId)
{ {
// Channel.DeleteBackup(backupId); CacheDeleteBackupRequest.Publish(new DeleteBackupRequest() { Id = ByteString.CopyFrom(backupId.ToByteArray()), TenantId = -1 }, CacheNotifyAction.InsertOrUpdate);
} }
public void DeleteAllBackups(int tenantId) public void DeleteAllBackups(int tenantId)
{ {
// Channel.DeleteAllBackups(tenantId); CacheDeleteBackupRequest.Publish(new DeleteBackupRequest() { Id = ByteString.CopyFrom(Guid.Empty.ToByteArray()), TenantId = tenantId }, CacheNotifyAction.InsertOrUpdate);
} }
public List<BackupHistoryRecord> GetBackupHistory(int tenantId) public List<BackupHistoryRecord> GetBackupHistory(int tenantId)

View File

@ -0,0 +1,8 @@
syntax = "proto3";
package ASC.Core.Common.Contracts;
message DeleteBackupRequest {
int32 TenantId = 1;
bytes Id = 2;
}

View File

@ -52,17 +52,20 @@ namespace ASC.Data.Backup.Service
internal class BackupServiceNotifier internal class BackupServiceNotifier
{ {
private IServiceProvider ServiceProvider { get; } private IServiceProvider ServiceProvider { get; }
private ICacheNotify<DeleteBackupRequest> СacheDeleteBackupRequest { get; set; }
private ICacheNotify<StartBackupRequest> СacheStartBackupRequest { get; set; } private ICacheNotify<StartBackupRequest> СacheStartBackupRequest { get; set; }
private ICacheNotify<StartRestoreRequest> СacheStartRestoreRequest { get; set; } private ICacheNotify<StartRestoreRequest> СacheStartRestoreRequest { get; set; }
private ICacheNotify<StartTransferRequest> СacheStartTransferRequest { get; set; } private ICacheNotify<StartTransferRequest> СacheStartTransferRequest { get; set; }
public BackupServiceNotifier( public BackupServiceNotifier(
IServiceProvider serviceProvider, IServiceProvider serviceProvider,
ICacheNotify<DeleteBackupRequest> cacheDeleteBackupRequest,
ICacheNotify<StartBackupRequest> cacheStartBackupRequest, ICacheNotify<StartBackupRequest> cacheStartBackupRequest,
ICacheNotify<StartRestoreRequest> cacheStartRestoreRequest, ICacheNotify<StartRestoreRequest> cacheStartRestoreRequest,
ICacheNotify<StartTransferRequest> cacheStartTransferRequest) ICacheNotify<StartTransferRequest> cacheStartTransferRequest)
{ {
ServiceProvider = serviceProvider; ServiceProvider = serviceProvider;
СacheDeleteBackupRequest = cacheDeleteBackupRequest;
СacheStartBackupRequest = cacheStartBackupRequest; СacheStartBackupRequest = cacheStartBackupRequest;
СacheStartRestoreRequest = cacheStartRestoreRequest; СacheStartRestoreRequest = cacheStartRestoreRequest;
СacheStartTransferRequest = cacheStartTransferRequest; СacheStartTransferRequest = cacheStartTransferRequest;
@ -70,6 +73,22 @@ namespace ASC.Data.Backup.Service
public void Subscribe() public void Subscribe()
{ {
СacheDeleteBackupRequest.Subscribe((n) =>
{
using var scope = ServiceProvider.CreateScope();
var backupService = scope.ServiceProvider.GetService<BackupService>();
var id = new Guid(n.Id.ToByteArray());
if (!id.Equals(Guid.Empty))
{
backupService.DeleteBackup(id);
}
else if (n.TenantId != -1)
{
backupService.DeleteAllBackups(n.TenantId);
}
}
, CacheNotifyAction.InsertOrUpdate);
СacheStartBackupRequest.Subscribe((n) => СacheStartBackupRequest.Subscribe((n) =>
{ {
using var scope = ServiceProvider.CreateScope(); using var scope = ServiceProvider.CreateScope();