/// <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, DynamoDBClusteringOptions 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]); } } }
public DynamoDBMembershipTable( ILoggerFactory loggerFactory, IOptions <DynamoDBClusteringOptions> clusteringOptions, IOptions <ClusterOptions> clusterOptions) { logger = loggerFactory.CreateLogger <DynamoDBMembershipTable>(); this.options = clusteringOptions.Value; this.clusterId = clusterOptions.Value.ClusterId; }
public DynamoDBMembershipTable(ILoggerFactory loggerFactory, IOptions <DynamoDBClusteringOptions> membershipOptions, IOptions <SiloOptions> siloOptions) { this.loggerFactory = loggerFactory; logger = loggerFactory.CreateLogger <DynamoDBMembershipTable>(); this.options = membershipOptions.Value; this.clusterId = siloOptions.Value.ClusterId; }
protected override IMembershipTable CreateMembershipTable(ILogger logger) { if (!AWSTestConstants.IsDynamoDbAvailable) { throw new SkipException("Unable to connect to AWS DynamoDB simulator"); } var options = new DynamoDBClusteringOptions(); DynamoDBMembershipHelper.ParseDataConnectionString(this.connectionString, options); return(new DynamoDBMembershipTable(this.loggerFactory, Options.Create(options), this.clusterOptions)); }