Beispiel #1
0
 public ClubsController(ILoggerFactory loggerFactory,
                        IStorageFacade storage,
                        IMapper mapper)
 {
     _mapper  = mapper;
     _storage = storage;
     _logger  = loggerFactory.CreateLogger <ClubsController>();
 }
Beispiel #2
0
 public IndexFile(
     IStorageFacade storageFacade,
     string accountName,
     string databaseName,
     string collectionName,
     ILogger logger)
 {
     _storageFacade = storageFacade.ChangeFolder(
         $"{Constants.BACKUPS_FOLDER}/{accountName}");
     _blobName = $"{databaseName}.{collectionName}.{Constants.INDEX_EXTENSION}";
     _logger   = logger;
 }
Beispiel #3
0
 public BackupScheduler(
     ILogger logger,
     ICosmosAccountFacade cosmosFacade,
     IStorageFacade storageFacade,
     IImmutableList <CollectionBackupPlan> collectionPlans,
     TechnicalConstants technicalConstants)
 {
     _logger                = logger;
     _cosmosFacade          = cosmosFacade;
     _storageFacade         = storageFacade;
     _collectionBackupPlans = collectionPlans;
     _technicalConstants    = technicalConstants;
 }
Beispiel #4
0
        private async static IAsyncEnumerable <CollectionPlan> GetCollectionPlansAsync(
            IImmutableList <CollectionBackupPlan> collectionBackupPlans,
            TechnicalConstants technicalConstants,
            ICosmosAccountFacade cosmosFacade,
            IStorageFacade storageFacade,
            ILogger logger)
        {
            var byDbs = collectionBackupPlans.GroupBy(p => p.Db).ToDictionary(g => g.Key);
            var dbs   = await cosmosFacade.GetDatabasesAsync();

            logger = logger.AddContext("Account", cosmosFacade.AccountName);
            foreach (var db in dbs)
            {
                if (byDbs.ContainsKey(db.DatabaseName))
                {
                    var byCollections = byDbs[db.DatabaseName].ToDictionary(c => c.Collection);
                    var collections   = await db.GetCollectionsAsync();

                    foreach (var coll in collections)
                    {
                        if (byCollections.ContainsKey(coll.CollectionName))
                        {
                            var plan             = byCollections[coll.CollectionName].SpecificPlan;
                            var collectionLogger = logger
                                                   .AddContext("Db", db.DatabaseName)
                                                   .AddContext("Collection", coll.CollectionName);
                            var logController = new LogCollectionBackupController(
                                coll,
                                storageFacade,
                                plan.Rpo,
                                plan.Included,
                                technicalConstants.LogConstants,
                                collectionLogger);

                            yield return(new CollectionPlan(
                                             logController,
                                             coll,
                                             () => new IndexCollectionController(
                                                 coll.Parent.Parent.AccountName,
                                                 coll.Parent.DatabaseName,
                                                 coll.CollectionName,
                                                 storageFacade,
                                                 plan.RetentionInDays,
                                                 technicalConstants.IndexConstants,
                                                 collectionLogger),
                                             plan));
                        }
                    }
                }
            }
        }
 public IndexCollectionController(
     string account,
     string db,
     string collection,
     IStorageFacade storageFacade,
     int?retentionInDays,
     IndexConstants indexConstants,
     ILogger logger)
 {
     _account         = account;
     _db              = db;
     _collection      = collection;
     _storageFacade   = storageFacade;
     _retentionInDays = retentionInDays;
     _indexConstants  = indexConstants;
     _logger          = logger;
 }
Beispiel #6
0
 public RestoreController(
     string sourceAccount,
     string sourceDb,
     string sourceCollection,
     IStorageFacade storageFacade,
     ICollectionFacade collectionFacade,
     ILogger logger)
 {
     _storageFacade    = storageFacade;
     _collectionFacade = collectionFacade;
     _logger           = logger;
     _indexFile        = new ReadonlyIndexFile(
         storageFacade,
         sourceAccount,
         sourceDb,
         sourceCollection,
         logger);
 }
 public LogCollectionBackupController(
     ICollectionFacade collectionFacade,
     IStorageFacade storageFacade,
     TimeSpan rpo,
     BackupOptions included,
     LogConstants logConstants,
     ILogger logger)
 {
     _collection = collectionFacade;
     _logFile    = new LogFile(
         storageFacade,
         collectionFacade.Parent.Parent.AccountName,
         collectionFacade.Parent.DatabaseName,
         collectionFacade.CollectionName,
         logger);
     _rpo          = rpo;
     _included     = included;
     _logConstants = logConstants;
     _logger       = logger;
 }
Beispiel #8
0
 public LeaseController(ILogger logger, IStorageFacade storageFacade)
 {
     _logger        = logger;
     _storageFacade = storageFacade;
 }
Beispiel #9
0
 public StorageFolderLogger(IStorageFacade storageFacade)
 {
     _storageFacade = storageFacade;
 }