Skip to content

Commit 725064c

Browse files
authored
Adding new SKU helpers for CV2 (#9250)
1 parent 39812ca commit 725064c

File tree

3 files changed

+39
-8
lines changed

3 files changed

+39
-8
lines changed

src/WebJobs.Script/Environment/EnvironmentExtensions.cs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -201,14 +201,26 @@ public static bool IsWindowsConsumption(this IEnvironment environment)
201201
}
202202

203203
/// <summary>
204-
/// Gets a value indicating whether the application is running in a Windows or Linux Consumption (dynamic)
204+
/// Gets a value indicating whether the application is running in one of our consumption SKUs (e.g. Windows or Linux Consumption (Dynamic),
205+
/// or Flex Consumption).
205206
/// App Service environment.
206207
/// </summary>
207208
/// <param name="environment">The environment to verify.</param>
208-
/// <returns><see cref="true"/> if running in a Windows or Linux Consumption App Service app; otherwise, false.</returns>
209+
/// <returns><see cref="true"/> if running in one of our Consumption SKUs, false otherwise.</returns>
209210
public static bool IsConsumptionSku(this IEnvironment environment)
210211
{
211-
return IsWindowsConsumption(environment) || IsAnyLinuxConsumption(environment);
212+
return IsWindowsConsumption(environment) || IsAnyLinuxConsumption(environment) || IsFlexConsumptionSku(environment);
213+
}
214+
215+
/// <summary>
216+
/// Gets a value indicating whether the application is running in the Flex Consumption Sku.
217+
/// </summary>
218+
/// <param name="environment">The environment to verify.</param>
219+
/// <returns><see cref="true"/> if running in the FlexConsumption Sku, false otherwise.</returns>
220+
public static bool IsFlexConsumptionSku(this IEnvironment environment)
221+
{
222+
string value = environment.GetEnvironmentVariable(AzureWebsiteSku);
223+
return string.Equals(value, ScriptConstants.FlexConsumptionSku, StringComparison.OrdinalIgnoreCase);
212224
}
213225

214226
/// <summary>

src/WebJobs.Script/ScriptConstants.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ public static class ScriptConstants
108108
public const string XIdentityHeader = "X-IDENTITY-HEADER";
109109
public const string ContainerInstanceHeader = "fx-current-instance";
110110
public const string DynamicSku = "Dynamic";
111+
public const string FlexConsumptionSku = "FlexConsumption";
111112
public const string ElasticPremiumSku = "ElasticPremium";
112113
public const string DefaultProductionSlotName = "production";
113114

test/WebJobs.Script.Tests/Extensions/EnvironmentExtensionsTests.cs

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -156,11 +156,12 @@ public void GetAntaresVersion_ReturnsExpectedResult(bool isLinuxConsumption, boo
156156
}
157157

158158
[Theory]
159-
[InlineData(true, false, true)]
160-
[InlineData(false, true, true)]
161-
[InlineData(false, false, false)]
162-
[InlineData(true, true, true)]
163-
public void IsConsumption_ReturnsExpectedResult(bool isLinuxConsumption, bool isWindowsConsumption, bool expectedValue)
159+
[InlineData(true, false, false, true)]
160+
[InlineData(false, false, true, true)]
161+
[InlineData(false, true, false, true)]
162+
[InlineData(false, false, false, false)]
163+
[InlineData(true, true, false, true)]
164+
public void IsConsumptionSku_ReturnsExpectedResult(bool isLinuxConsumption, bool isWindowsConsumption, bool isFlexConsumption, bool expectedValue)
164165
{
165166
IEnvironment env = new TestEnvironment();
166167
if (isLinuxConsumption)
@@ -173,9 +174,26 @@ public void IsConsumption_ReturnsExpectedResult(bool isLinuxConsumption, bool is
173174
env.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteSku, ScriptConstants.DynamicSku);
174175
}
175176

177+
if (isFlexConsumption)
178+
{
179+
env.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteSku, ScriptConstants.FlexConsumptionSku);
180+
}
181+
176182
Assert.Equal(expectedValue, env.IsConsumptionSku());
177183
}
178184

185+
[Theory]
186+
[InlineData("FlexConsumption", true)]
187+
[InlineData("Dynamic", false)]
188+
[InlineData("ElasticPremium", false)]
189+
[InlineData("", false)]
190+
public void IsFlexConsumptionSku_ReturnsExpectedResult(string sku, bool expected)
191+
{
192+
IEnvironment env = new TestEnvironment();
193+
env.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteSku, sku);
194+
Assert.Equal(expected, env.IsFlexConsumptionSku());
195+
}
196+
179197
[Theory]
180198
[InlineData(true, false, false, true)]
181199
[InlineData(false, true, false, true)]

0 commit comments

Comments
 (0)