Skip to content

Commit 400796d

Browse files
remove configuration reference from variant feature flag (#488)
1 parent 9284d27 commit 400796d

File tree

8 files changed

+2
-64
lines changed

8 files changed

+2
-64
lines changed

src/Microsoft.FeatureManagement/ConfigurationFeatureDefinitionProvider.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,6 @@ private FeatureDefinition ParseMicrosoftSchemaFeatureDefinition(IConfigurationSe
474474
{
475475
Name = section[MicrosoftFeatureManagementFields.Name],
476476
ConfigurationValue = section.GetSection(MicrosoftFeatureManagementFields.VariantDefinitionConfigurationValue),
477-
ConfigurationReference = section[MicrosoftFeatureManagementFields.VariantDefinitionConfigurationReference],
478477
StatusOverride = statusOverride
479478
};
480479

src/Microsoft.FeatureManagement/FeatureManager.cs

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,6 @@ public IEnumerable<ISessionManager> SessionManagers
104104
/// </summary>
105105
public ILogger Logger { get; set; }
106106

107-
/// <summary>
108-
/// The configuration reference for feature variants.
109-
/// </summary>
110-
public IConfiguration Configuration { get; set; }
111-
112107
/// <summary>
113108
/// The targeting context accessor for feature variant allocation.
114109
/// </summary>
@@ -860,19 +855,6 @@ private Variant GetVariantFromVariantDefinition(VariantDefinition variantDefinit
860855
{
861856
variantConfiguration = variantDefinition.ConfigurationValue;
862857
}
863-
else if (!string.IsNullOrEmpty(variantDefinition.ConfigurationReference))
864-
{
865-
if (Configuration == null)
866-
{
867-
Logger?.LogWarning($"Cannot use {nameof(variantDefinition.ConfigurationReference)} as no instance of {nameof(IConfiguration)} is present.");
868-
869-
return null;
870-
}
871-
else
872-
{
873-
variantConfiguration = Configuration.GetSection(variantDefinition.ConfigurationReference);
874-
}
875-
}
876858

877859
return new Variant()
878860
{

src/Microsoft.FeatureManagement/MicrosoftFeatureManagementFields.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ internal static class MicrosoftFeatureManagementFields
4242
// Variants keywords
4343
public const string VariantsSectionName = "variants";
4444
public const string VariantDefinitionConfigurationValue = "configuration_value";
45-
public const string VariantDefinitionConfigurationReference = "configuration_reference";
4645
public const string VariantDefinitionStatusOverride = "status_override";
4746

4847
// Telemetry keywords

src/Microsoft.FeatureManagement/ServiceCollectionExtensions.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ public static IFeatureManagementBuilder AddFeatureManagement(this IServiceCollec
5050
SessionManagers = sp.GetRequiredService<IEnumerable<ISessionManager>>(),
5151
Cache = sp.GetRequiredService<IMemoryCache>(),
5252
Logger = sp.GetRequiredService<ILoggerFactory>().CreateLogger<FeatureManager>(),
53-
Configuration = sp.GetService<IConfiguration>(),
5453
TargetingContextAccessor = sp.GetService<ITargetingContextAccessor>(),
5554
AssignerOptions = sp.GetRequiredService<IOptions<TargetingEvaluationOptions>>().Value
5655
});
@@ -137,7 +136,6 @@ public static IFeatureManagementBuilder AddScopedFeatureManagement(this IService
137136
SessionManagers = sp.GetRequiredService<IEnumerable<ISessionManager>>(),
138137
Cache = sp.GetRequiredService<IMemoryCache>(),
139138
Logger = sp.GetRequiredService<ILoggerFactory>().CreateLogger<FeatureManager>(),
140-
Configuration = sp.GetService<IConfiguration>(),
141139
TargetingContextAccessor = sp.GetService<ITargetingContextAccessor>(),
142140
AssignerOptions = sp.GetRequiredService<IOptions<TargetingEvaluationOptions>>().Value
143141
});

src/Microsoft.FeatureManagement/VariantDefinition.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,6 @@ public class VariantDefinition
2121
/// </summary>
2222
public IConfigurationSection ConfigurationValue { get; set; }
2323

24-
/// <summary>
25-
/// A reference pointing to the configuration for this variant of the feature.
26-
/// </summary>
27-
public string ConfigurationReference { get; set; }
28-
2924
/// <summary>
3025
/// Overrides the state of the feature if this variant has been assigned.
3126
/// </summary>

tests/Tests.FeatureManagement/FeatureManagementTest.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1472,7 +1472,6 @@ public async Task UsesVariants()
14721472
Variant variant = await featureManager.GetVariantAsync(Features.VariantFeaturePercentileOn, cancellationToken);
14731473

14741474
Assert.Equal("Big", variant.Name);
1475-
Assert.Equal("green", variant.Configuration["Color"]);
14761475
Assert.False(await featureManager.IsEnabledAsync(Features.VariantFeaturePercentileOn, cancellationToken));
14771476

14781477
variant = await featureManager.GetVariantAsync(Features.VariantFeaturePercentileOff, cancellationToken);
@@ -1541,11 +1540,6 @@ public async Task VariantsInvalidScenarios()
15411540

15421541
Assert.Null(variant);
15431542

1544-
// Verify that ConfigurationValue has priority over ConfigurationReference
1545-
variant = await featureManager.GetVariantAsync(Features.VariantFeatureBothConfigurations, cancellationToken);
1546-
1547-
Assert.Equal("600px", variant.Configuration.Value);
1548-
15491543
// Verify that an exception is thrown for invalid StatusOverride value
15501544
FeatureManagementException e = await Assert.ThrowsAsync<FeatureManagementException>(async () =>
15511545
{

tests/Tests.FeatureManagement/Features.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ static class Features
2424
public const string VariantFeatureNoVariants = "VariantFeatureNoVariants";
2525
public const string VariantFeatureNoAllocation = "VariantFeatureNoAllocation";
2626
public const string VariantFeatureAlwaysOffNoAllocation = "VariantFeatureAlwaysOffNoAllocation";
27-
public const string VariantFeatureBothConfigurations = "VariantFeatureBothConfigurations";
2827
public const string VariantFeatureInvalidStatusOverride = "VariantFeatureInvalidStatusOverride";
2928
public const string VariantFeatureInvalidFromTo = "VariantFeatureInvalidFromTo";
3029
public const string VariantImplementationFeature = "VariantImplementationFeature";

tests/Tests.FeatureManagement/appsettings.json

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,6 @@
66
},
77
"AllowedHosts": "*",
88

9-
"ShoppingCart": {
10-
"Big": {
11-
"Size": 600,
12-
"Color": "green"
13-
},
14-
"Small": {
15-
"Size": 300,
16-
"Color": "gray"
17-
}
18-
},
19-
209
"feature_management": {
2110
"feature_flags": [
2211
{
@@ -209,7 +198,6 @@
209198
"variants": [
210199
{
211200
"name": "Big",
212-
"configuration_reference": "ShoppingCart:Big",
213201
"status_override": "Disabled"
214202
}
215203
],
@@ -232,8 +220,7 @@
232220
"enabled": true,
233221
"variants": [
234222
{
235-
"name": "Big",
236-
"configuration_reference": "ShoppingCart:Big"
223+
"name": "Big"
237224
}
238225
],
239226
"allocation": {
@@ -255,8 +242,7 @@
255242
"enabled": false,
256243
"variants": [
257244
{
258-
"name": "Big",
259-
"configuration_reference": "ShoppingCart:Big"
245+
"name": "Big"
260246
}
261247
],
262248
"allocation": {
@@ -410,20 +396,6 @@
410396
"enabled": true
411397
}
412398
},
413-
{
414-
"id": "VariantFeatureBothConfigurations",
415-
"enabled": true,
416-
"variants": [
417-
{
418-
"name": "Small",
419-
"configuration_value": "600px",
420-
"configuration_reference": "ShoppingCart:Small"
421-
}
422-
],
423-
"allocation": {
424-
"default_when_enabled": "Small"
425-
}
426-
},
427399
{
428400
"id": "VariantFeatureInvalidStatusOverride",
429401
"enabled": true,

0 commit comments

Comments
 (0)