Skip to content

Commit cf152d1

Browse files
KenHundleysstevenkang
authored andcommitted
PR request for ProcessParameters code
1 parent 4b2512f commit cf152d1

File tree

4 files changed

+20
-17
lines changed

4 files changed

+20
-17
lines changed

src/Amazon.Extensions.Configuration.SystemsManager/Internal/SystemsManagerProcessor.cs

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,11 @@ public class SystemsManagerProcessor : ISystemsManagerProcessor
3535
private const string SecretsManagerPath = "/aws/reference/secretsmanager/";
3636

3737
private SystemsManagerConfigurationSource Source { get; }
38+
private Func<IEnumerable<Parameter>, string, IParameterProcessor, IDictionary<string, string>> ProcessParameters { get; }
3839

39-
public SystemsManagerProcessor(SystemsManagerConfigurationSource source)
40+
public SystemsManagerProcessor(SystemsManagerConfigurationSource source, Func<IEnumerable<Parameter>, string, IParameterProcessor, IDictionary<string, string>> processParameters)
4041
{
42+
ProcessParameters = processParameters;
4143
Source = source;
4244
Source.ParameterProcessor = Source.ParameterProcessor ?? new DefaultParameterProcessor();
4345
}
@@ -86,7 +88,6 @@ private async Task<IDictionary<string, string>> GetParameterAsync()
8688

8789
var prefix = Source.Prefix ?? Source.ParameterProcessor.GetKey(response.Parameter, SecretsManagerPath);
8890
return AddPrefix(JsonConfigurationParser.Parse(Source.ParameterProcessor.GetValue(response.Parameter, SecretsManagerPath)), prefix);
89-
9091
}
9192
}
9293

@@ -99,18 +100,6 @@ public static IDictionary<string, string> AddPrefix(IDictionary<string, string>
99100
: input.ToDictionary(pair => $"{prefix}{ConfigurationPath.KeyDelimiter}{pair.Key}", pair => pair.Value, StringComparer.OrdinalIgnoreCase);
100101
}
101102

102-
public static IDictionary<string, string> ProcessParameters(IEnumerable<Parameter> parameters, string path, IParameterProcessor parameterProcessor)
103-
{
104-
return parameters
105-
.Where(parameter => parameterProcessor.IncludeParameter(parameter, path))
106-
.Select(parameter => new
107-
{
108-
Key = parameterProcessor.GetKey(parameter, path),
109-
Value = parameterProcessor.GetValue(parameter, path)
110-
})
111-
.ToDictionary(parameter => parameter.Key, parameter => parameter.Value, StringComparer.OrdinalIgnoreCase);
112-
}
113-
114103
private const string UserAgentHeader = "User-Agent";
115104
private static readonly string AssemblyVersion = typeof(SystemsManagerProcessor).GetTypeInfo().Assembly.GetName().Version.ToString();
116105

src/Amazon.Extensions.Configuration.SystemsManager/SystemsManagerConfigurationProvider.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,11 @@
1515

1616
using System;
1717
using System.Collections.Generic;
18+
using System.Linq;
1819
using System.Threading;
1920
using System.Threading.Tasks;
2021
using Amazon.Extensions.Configuration.SystemsManager.Internal;
22+
using Amazon.SimpleSystemsManagement.Model;
2123
using Microsoft.Extensions.Configuration;
2224
using Microsoft.Extensions.Primitives;
2325

@@ -39,7 +41,7 @@ public class SystemsManagerConfigurationProvider : ConfigurationProvider
3941
/// Initializes a new instance with the specified source.
4042
/// </summary>
4143
/// <param name="source">The <see cref="IConfigurationSource"/> used to retrieve values from AWS Systems Manager Parameter Store</param>
42-
public SystemsManagerConfigurationProvider(SystemsManagerConfigurationSource source) : this(source, new SystemsManagerProcessor(source))
44+
public SystemsManagerConfigurationProvider(SystemsManagerConfigurationSource source) : this(source, new SystemsManagerProcessor(source, ProcessParameters))
4345
{
4446
}
4547

@@ -134,5 +136,17 @@ private async Task LoadAsync(bool reload)
134136
throw;
135137
}
136138
}
139+
140+
public static IDictionary<string, string> ProcessParameters(IEnumerable<Parameter> parameters, string path, IParameterProcessor parameterProcessor)
141+
{
142+
return parameters
143+
.Where(parameter => parameterProcessor.IncludeParameter(parameter, path))
144+
.Select(parameter => new
145+
{
146+
Key = parameterProcessor.GetKey(parameter, path),
147+
Value = parameterProcessor.GetValue(parameter, path)
148+
})
149+
.ToDictionary(parameter => parameter.Key, parameter => parameter.Value, StringComparer.OrdinalIgnoreCase);
150+
}
137151
}
138152
}

test/Amazon.Extensions.Configuration.SystemsManager.Tests/SystemsManagerConfigurationProviderTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public void LoadTest()
6060
_parameterProcessorMock.Setup(processor => processor.GetKey(parameter, Path)).Returns(parameter.Value);
6161
}
6262

63-
var getData = SystemsManagerProcessor.ProcessParameters(_parameters, Path, _parameterProcessorMock.Object);
63+
var getData = SystemsManagerConfigurationProvider.ProcessParameters(_parameters, Path, _parameterProcessorMock.Object);
6464

6565
_systemsManagerProcessorMock.Setup(p => p.GetDataAsync()).ReturnsAsync(() => getData);
6666

test/Amazon.Extensions.Configuration.SystemsManager.Tests/SystemsManagerProcessorTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public void ProcessParametersTest()
3636
_parameterProcessorMock.Setup(processor => processor.GetValue(parameter, Path)).Returns(parameter.Value);
3737
}
3838

39-
var data = SystemsManagerProcessor.ProcessParameters(_parameters, Path, _parameterProcessorMock.Object);
39+
var data = SystemsManagerConfigurationProvider.ProcessParameters(_parameters, Path, _parameterProcessorMock.Object);
4040

4141
Assert.All(data, item => Assert.Equal(item.Value, item.Key));
4242

0 commit comments

Comments
 (0)