Esempio n. 1
0
 private RemindersTableManager(
     string serviceId,
     string clusterId,
     AzureStorageOperationOptions options,
     ILoggerFactory loggerFactory)
     : base(options, loggerFactory.CreateLogger <RemindersTableManager>())
 {
     ClusterId = clusterId;
     ServiceId = serviceId;
 }
        /// <summary>
        /// Creates a new <see cref="AzureTableDataManager{T}"/> instance.
        /// </summary>
        /// <param name="options">Storage configuration.</param>
        /// <param name="logger">Logger to use.</param>
        public AzureTableDataManager(AzureStorageOperationOptions options, ILogger logger)
        {
            this.options = options ?? throw new ArgumentNullException(nameof(options));

            Logger               = logger ?? throw new ArgumentNullException(nameof(logger));
            TableName            = options.TableName ?? throw new ArgumentNullException(nameof(options.TableName));
            StoragePolicyOptions = options.StoragePolicyOptions ?? throw new ArgumentNullException(nameof(options.StoragePolicyOptions));

            AzureTableUtils.ValidateTableName(TableName);
        }
 private OrleansSiloInstanceManager(
     string clusterId,
     ILoggerFactory loggerFactory,
     AzureStorageOperationOptions options)
 {
     DeploymentId = clusterId;
     TableName    = options.TableName;
     logger       = loggerFactory.CreateLogger <OrleansSiloInstanceManager>();
     storage      = new AzureTableDataManager <SiloInstanceTableEntry>(
         options,
         loggerFactory.CreateLogger <AzureTableDataManager <SiloInstanceTableEntry> >());
     this.storagePolicyOptions = options.StoragePolicyOptions;
 }
Esempio n. 4
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="options">Storage configuration.</param>
        /// <param name="logger">Logger to use.</param>
        public AzureTableDataManager(AzureStorageOperationOptions options, ILogger logger)
        {
            this.options = options ?? throw new ArgumentNullException(nameof(options));

            Logger               = logger ?? throw new ArgumentNullException(nameof(logger));
            TableName            = options.TableName ?? throw new ArgumentNullException(nameof(options.TableName));
            StoragePolicyOptions = options.StoragePolicyOptions ?? throw new ArgumentNullException(nameof(options.StoragePolicyOptions));

            AzureTableUtils.ValidateTableName(TableName);

            if (options.TokenCredential != null)
            {
                tokenLock = new SemaphoreSlim(1, 1);
            }
        }
Esempio n. 5
0
        public static AzureStorageOperationOptions ConfigureTestDefaults(this AzureStorageOperationOptions options)
        {
            if (TestDefaultConfiguration.UseAadAuthentication)
            {
                options.TableEndpoint   = TestDefaultConfiguration.TableEndpoint;
                options.TableResourceId = TestDefaultConfiguration.TableResourceId;
                options.TokenCredential = new DefaultAzureCredential();
            }
            else
            {
                options.ConnectionString = TestDefaultConfiguration.DataConnectionString;
            }

            return(options);
        }
        private static AzureTableDataManager <TableEntity> GetDataManager()
        {
            var options = new AzureStorageOperationOptions {
                TableName = TableName
            };

            if (TestDefaultConfiguration.UseAadAuthentication)
            {
                options.ConfigureTableServiceClient(TestDefaultConfiguration.TableEndpoint, new DefaultAzureCredential());
            }
            else
            {
                options.ConfigureTableServiceClient(TestDefaultConfiguration.DataConnectionString);
            }
            return(new AzureTableDataManager <TableEntity>(options, NullLogger.Instance));
        }
        private static AzureStorageOperationOptions GetAzureStorageOperationOptions()
        {
            var options = new AzureStorageOperationOptions {
                TableName = TableName
            };

            if (TestDefaultConfiguration.UseAadAuthentication)
            {
                options.ConfigureTableServiceClient(TestDefaultConfiguration.TableEndpoint, new DefaultAzureCredential());
            }
            else
            {
                options.ConfigureTableServiceClient(TestDefaultConfiguration.DataConnectionString);
            }

            return(options);
        }
        private static AzureTableDataManager <TableEntity> GetDataManager()
        {
            var options = new AzureStorageOperationOptions {
                TableName = TableName
            };

            if (TestDefaultConfiguration.UseAadAuthentication)
            {
                options.TableEndpoint   = TestDefaultConfiguration.TableEndpoint;
                options.TableResourceId = TestDefaultConfiguration.TableResourceId;
                options.TokenCredential = new DefaultAzureCredential();
            }
            else
            {
                options.ConnectionString = TestDefaultConfiguration.DataConnectionString;
            }
            return(new AzureTableDataManager <TableEntity>(options, NullLogger.Instance));
        }
Esempio n. 9
0
        public static async Task <OrleansSiloInstanceManager> GetManager(
            string clusterId,
            ILoggerFactory loggerFactory,
            AzureStorageOperationOptions options)
        {
            var instance = new OrleansSiloInstanceManager(clusterId, loggerFactory, options);

            try
            {
                await instance.storage.InitTableAsync();
            }
            catch (Exception ex)
            {
                instance.logger.LogError((int)TableStorageErrorCode.AzureTable_33, ex, "Exception trying to create or connect to the Azure table {TableName}", instance.storage.TableName);
                throw new OrleansException($"Exception trying to create or connect to the Azure table {instance.storage.TableName}", ex);
            }
            return(instance);
        }
        public static async Task <OrleansSiloInstanceManager> GetManager(
            string clusterId,
            ILoggerFactory loggerFactory,
            AzureStorageOperationOptions options)
        {
            var instance = new OrleansSiloInstanceManager(clusterId, loggerFactory, options);

            try
            {
                await instance.storage.InitTableAsync();
            }
            catch (Exception ex)
            {
                string errorMsg = string.Format("Exception trying to create or connect to the Azure table: {0}", ex.Message);
                instance.logger.Error((int)TableStorageErrorCode.AzureTable_33, errorMsg, ex);
                throw new OrleansException(errorMsg, ex);
            }
            return(instance);
        }
Esempio n. 11
0
        public static async Task <RemindersTableManager> GetManager(string serviceId, string clusterId, ILoggerFactory loggerFactory, AzureStorageOperationOptions options)
        {
            var singleton = new RemindersTableManager(serviceId, clusterId, options, loggerFactory);

            try
            {
                singleton.Logger.Info("Creating RemindersTableManager for service id {0} and clusterId {1}.", serviceId, clusterId);
                await singleton.InitTableAsync();
            }
            catch (Exception ex)
            {
                string errorMsg = $"Exception trying to create or connect to the Azure table: {ex.Message}";
                singleton.Logger.Error((int)AzureReminderErrorCode.AzureTable_39, errorMsg, ex);
                throw new OrleansException(errorMsg, ex);
            }
            return(singleton);
        }
Esempio n. 12
0
 public GrainStateTableDataManager(AzureStorageOperationOptions options, ILogger logger)
 {
     this.logger  = logger;
     TableName    = options.TableName;
     tableManager = new AzureTableDataManager <TableEntity>(options, logger);
 }
Esempio n. 13
0
 /// <summary>
 /// Delivery failure handler that writes failures to azure table storage.
 /// </summary>
 /// <param name="serializationManager"></param>
 /// <param name="loggerFactory">logger factory to use</param>
 /// <param name="faultOnFailure"></param>
 /// <param name="clusterId"></param>
 /// <param name="azureStorageOptions"></param>
 /// <param name="createEntity"></param>
 public AzureTableStorageStreamFailureHandler(SerializationManager serializationManager, ILoggerFactory loggerFactory, bool faultOnFailure, string clusterId, AzureStorageOperationOptions azureStorageOptions, Func <TEntity> createEntity = null)
 {
     if (string.IsNullOrEmpty(clusterId))
     {
         throw new ArgumentNullException(nameof(clusterId));
     }
     if (string.IsNullOrEmpty(azureStorageOptions.TableName))
     {
         throw new ArgumentNullException(nameof(azureStorageOptions.TableName));
     }
     if (string.IsNullOrEmpty(azureStorageOptions.ConnectionString))
     {
         throw new ArgumentNullException(nameof(azureStorageOptions.ConnectionString));
     }
     this.serializationManager     = serializationManager;
     this.clusterId                = clusterId;
     ShouldFaultSubsriptionOnError = faultOnFailure;
     this.createEntity             = createEntity ?? DefaultCreateEntity;
     dataManager = new AzureTableDataManager <TEntity>(
         azureStorageOptions,
         loggerFactory.CreateLogger <AzureTableDataManager <TEntity> >());
 }