Esempio n. 1
0
        /// <summary>
        /// Parse data connection string to fill in fields in <paramref name="options"/>
        /// </summary>
        /// <param name="dataConnectionString"></param>
        /// <param name="options"></param>
        internal static void ParseDataConnectionString(string dataConnectionString, DynamoDBReminderStorageOptions options)
        {
            var parameters = dataConnectionString.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);

            var serviceConfig = parameters.Where(p => p.Contains(ServicePropertyName)).FirstOrDefault();

            if (!string.IsNullOrWhiteSpace(serviceConfig))
            {
                var value = serviceConfig.Split(new[] { '=' }, StringSplitOptions.RemoveEmptyEntries);
                if (value.Length == 2 && !string.IsNullOrWhiteSpace(value[1]))
                {
                    options.Service = value[1];
                }
            }

            var secretKeyConfig = parameters.Where(p => p.Contains(SecretKeyPropertyName)).FirstOrDefault();

            if (!string.IsNullOrWhiteSpace(secretKeyConfig))
            {
                var value = secretKeyConfig.Split(new[] { '=' }, StringSplitOptions.RemoveEmptyEntries);
                if (value.Length == 2 && !string.IsNullOrWhiteSpace(value[1]))
                {
                    options.SecretKey = value[1];
                }
            }

            var accessKeyConfig = parameters.Where(p => p.Contains(AccessKeyPropertyName)).FirstOrDefault();

            if (!string.IsNullOrWhiteSpace(accessKeyConfig))
            {
                var value = accessKeyConfig.Split(new[] { '=' }, StringSplitOptions.RemoveEmptyEntries);
                if (value.Length == 2 && !string.IsNullOrWhiteSpace(value[1]))
                {
                    options.AccessKey = value[1];
                }
            }

            var readCapacityUnitsConfig = parameters.Where(p => p.Contains(ReadCapacityUnitsPropertyName)).FirstOrDefault();

            if (!string.IsNullOrWhiteSpace(readCapacityUnitsConfig))
            {
                var value = readCapacityUnitsConfig.Split(new[] { '=' }, StringSplitOptions.RemoveEmptyEntries);
                if (value.Length == 2 && !string.IsNullOrWhiteSpace(value[1]))
                {
                    options.ReadCapacityUnits = int.Parse(value[1]);
                }
            }

            var writeCapacityUnitsConfig = parameters.Where(p => p.Contains(WriteCapacityUnitsPropertyName)).FirstOrDefault();

            if (!string.IsNullOrWhiteSpace(writeCapacityUnitsConfig))
            {
                var value = writeCapacityUnitsConfig.Split(new[] { '=' }, StringSplitOptions.RemoveEmptyEntries);
                if (value.Length == 2 && !string.IsNullOrWhiteSpace(value[1]))
                {
                    options.WriteCapacityUnits = int.Parse(value[1]);
                }
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DynamoDBReminderTable"/> class.
 /// </summary>
 /// <param name="grainReferenceConverter">The grain factory.</param>
 /// <param name="loggerFactory">logger factory to use</param>
 public DynamoDBReminderTable(IGrainReferenceConverter grainReferenceConverter,
                              ILoggerFactory loggerFactory, IOptions <SiloOptions> siloOptions,
                              IOptions <DynamoDBReminderStorageOptions> storageOptions)
 {
     this.grainReferenceConverter = grainReferenceConverter;
     this.logger        = loggerFactory.CreateLogger <DynamoDBReminderTable>();
     this.loggerFactory = loggerFactory;
     this.serviceId     = siloOptions.Value.ServiceId;
     this.options       = storageOptions.Value;
 }
 /// <summary>Initializes a new instance of the <see cref="DynamoDBReminderTable"/> class.</summary>
 /// <param name="grainReferenceConverter">The grain factory.</param>
 /// <param name="loggerFactory">logger factory to use</param>
 /// <param name="clusterOptions"></param>
 /// <param name="storageOptions"></param>
 public DynamoDBReminderTable(
     GrainReferenceKeyStringConverter grainReferenceConverter,
     ILoggerFactory loggerFactory,
     IOptions <ClusterOptions> clusterOptions,
     IOptions <DynamoDBReminderStorageOptions> storageOptions)
 {
     this.grainReferenceConverter = grainReferenceConverter;
     this.logger    = loggerFactory.CreateLogger <DynamoDBReminderTable>();
     this.serviceId = clusterOptions.Value.ServiceId;
     this.options   = storageOptions.Value;
 }
Esempio n. 4
0
        protected override IReminderTable CreateRemindersTable()
        {
            if (!AWSTestConstants.IsDynamoDbAvailable)
            {
                throw new SkipException("Unable to connect to AWS DynamoDB simulator");
            }

            var options = new DynamoDBReminderStorageOptions();

            options.ParseConnectionString(this.connectionStringFixture.ConnectionString);

            return(new DynamoDBReminderTable(
                       this.ClusterFixture.Services.GetRequiredService <GrainReferenceKeyStringConverter>(),
                       this.loggerFactory,
                       this.clusterOptions,
                       Options.Create(options)));
        }