Skip to content

Commit

Permalink
chore: remove .NET Core 3.1 support due to end of life approaching
Browse files Browse the repository at this point in the history
  • Loading branch information
philasmar committed Dec 15, 2022
1 parent a45e40a commit 7d583f8
Show file tree
Hide file tree
Showing 130 changed files with 150 additions and 1,385 deletions.
21 changes: 7 additions & 14 deletions AWS.Deploy.sln
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ManualLinuxTesting", "Manua
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWS.Deploy.Recipes.CDK.Common", "src\AWS.Deploy.Recipes.CDK.Common\AWS.Deploy.Recipes.CDK.Common.csproj", "{FAE4D4C5-9107-4622-A050-E30CC70BE754}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorWasm31", "testapps\BlazorWasm31\BlazorWasm31.csproj", "{795F4F21-4474-40FD-AF2A-1F703FA7CEC2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorWasm50", "testapps\BlazorWasm50\BlazorWasm50.csproj", "{315E01AE-51DC-410F-983E-BA80AD561C57}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWS.Deploy.Orchestration.UnitTests", "test\AWS.Deploy.Orchestration.UnitTests\AWS.Deploy.Orchestration.UnitTests.csproj", "{3F7A5CA6-7178-4DBF-8DAD-6A63684C7A8E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWS.Deploy.CLI.Common.UnitTests", "test\AWS.Deploy.CLI.Common.UnitTests\AWS.Deploy.CLI.Common.UnitTests.csproj", "{4AD9D400-3F3D-4076-B34C-0F88576C1889}"
Expand All @@ -70,6 +66,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WorkerServiceExample", "tes
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebApiNET6", "testapps\WebApiNET6\WebApiNET6.csproj", "{B2EA65BD-9FFE-4452-B2DC-574EB1A9FAF1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorWasm60", "testapps\BlazorWasm60\BlazorWasm60.csproj", "{CEEBEC39-40E5-4A9B-878A-6EDB52B9B43E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -124,14 +122,6 @@ Global
{FAE4D4C5-9107-4622-A050-E30CC70BE754}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FAE4D4C5-9107-4622-A050-E30CC70BE754}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FAE4D4C5-9107-4622-A050-E30CC70BE754}.Release|Any CPU.Build.0 = Release|Any CPU
{795F4F21-4474-40FD-AF2A-1F703FA7CEC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{795F4F21-4474-40FD-AF2A-1F703FA7CEC2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{795F4F21-4474-40FD-AF2A-1F703FA7CEC2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{795F4F21-4474-40FD-AF2A-1F703FA7CEC2}.Release|Any CPU.Build.0 = Release|Any CPU
{315E01AE-51DC-410F-983E-BA80AD561C57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{315E01AE-51DC-410F-983E-BA80AD561C57}.Debug|Any CPU.Build.0 = Debug|Any CPU
{315E01AE-51DC-410F-983E-BA80AD561C57}.Release|Any CPU.ActiveCfg = Release|Any CPU
{315E01AE-51DC-410F-983E-BA80AD561C57}.Release|Any CPU.Build.0 = Release|Any CPU
{3F7A5CA6-7178-4DBF-8DAD-6A63684C7A8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3F7A5CA6-7178-4DBF-8DAD-6A63684C7A8E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3F7A5CA6-7178-4DBF-8DAD-6A63684C7A8E}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -172,6 +162,10 @@ Global
{B2EA65BD-9FFE-4452-B2DC-574EB1A9FAF1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B2EA65BD-9FFE-4452-B2DC-574EB1A9FAF1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B2EA65BD-9FFE-4452-B2DC-574EB1A9FAF1}.Release|Any CPU.Build.0 = Release|Any CPU
{CEEBEC39-40E5-4A9B-878A-6EDB52B9B43E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CEEBEC39-40E5-4A9B-878A-6EDB52B9B43E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CEEBEC39-40E5-4A9B-878A-6EDB52B9B43E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CEEBEC39-40E5-4A9B-878A-6EDB52B9B43E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -190,8 +184,6 @@ Global
{3AAC19A6-02E8-45D0-BDD0-CAD0FBE15F64} = {11C7056E-93C1-408B-BD87-5270595BBE0E}
{D0172E70-D5BC-4EDE-84E4-9ADB67B5F8FB} = {BD466B5C-D8B0-4069-98A9-6DC8F01FA757}
{FAE4D4C5-9107-4622-A050-E30CC70BE754} = {11C7056E-93C1-408B-BD87-5270595BBE0E}
{795F4F21-4474-40FD-AF2A-1F703FA7CEC2} = {C3A0C716-BDEA-4393-B223-AF8F8531522A}
{315E01AE-51DC-410F-983E-BA80AD561C57} = {C3A0C716-BDEA-4393-B223-AF8F8531522A}
{3F7A5CA6-7178-4DBF-8DAD-6A63684C7A8E} = {BD466B5C-D8B0-4069-98A9-6DC8F01FA757}
{4AD9D400-3F3D-4076-B34C-0F88576C1889} = {BD466B5C-D8B0-4069-98A9-6DC8F01FA757}
{6EDCA334-3317-44A4-A017-2A8D810EE7A7} = {C3A0C716-BDEA-4393-B223-AF8F8531522A}
Expand All @@ -203,6 +195,7 @@ Global
{74444ED0-9044-4DF7-A111-7D9F81ADF0FD} = {BD466B5C-D8B0-4069-98A9-6DC8F01FA757}
{7C330493-9BF7-4DB6-815B-807C08500AC6} = {C3A0C716-BDEA-4393-B223-AF8F8531522A}
{B2EA65BD-9FFE-4452-B2DC-574EB1A9FAF1} = {C3A0C716-BDEA-4393-B223-AF8F8531522A}
{CEEBEC39-40E5-4A9B-878A-6EDB52B9B43E} = {C3A0C716-BDEA-4393-B223-AF8F8531522A}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {5A4B2863-1763-4496-B122-651A38A4F5D7}
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ To take advantage of this library you’ll need:
* The local credential profile can be configured by a variety of tools. For example, the credential profile can be configured with the [AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/credentials.html) or the [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html), among others.
* Note: You need to make sure to add the appropriate CloudFormation permissions to your credentials's profile / assumed role.
* For SSO, please visit the [.NET SDK Reference Guide](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html).
* [.NET Core 3.1](https://dotnet.microsoft.com/download) or later
* [.NET 6](https://dotnet.microsoft.com/download) or later
* [Node.js 14](https://nodejs.org/en/download/) or later
* The [AWS Cloud Development Kit (CDK)](https://aws.amazon.com/cdk/) is used by this tool to create the AWS infrastructure to run applications. The CDK requires Node.js to function. This dependency is needed for deployments that are CDK based. If you will be using deployments that are not CDK based, you are not required to have this dependency.
* (optional) [Docker](https://docs.docker.com/get-docker/)
Expand Down
4 changes: 2 additions & 2 deletions THIRD_PARTY_LICENSES
Original file line number Diff line number Diff line change
Expand Up @@ -341,8 +341,6 @@ Copyright (c) 2016 .NET Foundation
Copyright (c) 2016 .NET Foundation
** Microsoft.TemplateEngine.Orchestrator.RunnableProjects; version 5.0.1 -- https://www.nuget.org/packages/Microsoft.TemplateEngine.Orchestrator.RunnableProjects
Copyright (c) 2016 .NET Foundation
** Microsoft.Extensions.Configuration.Json; version 3.1.7 -- https://www.nuget.org/packages/Microsoft.Bcl.AsyncInterhttps://www.nuget.org/packages/Microsoft.Extensions.Configuration.Jsonfaces
Copyright (c) .NET Foundation and Contributors
** Microsoft.Extensions.DependencyInjection; version 6.0.0 -- https://www.nuget.org/packages/Microsoft.Extensions.DependencyInjection
Copyright (c) .NET Foundation and Contributors
** Microsoft.Extensions.DependencyInjection.Abstractions; version 6.0.0 -- https://www.nuget.org/packages/Microsoft.Extensions.DependencyInjection.Abstractions
Expand All @@ -353,6 +351,8 @@ Copyright (c) .NET Foundation and Contributors
Copyright (c) Microsoft Corporation.
** System.Text.Json; version 6.0.4 -- https://www.nuget.org/packages/System.Text.Json
Copyright (c) .NET Foundation and Contributors
** Microsoft.Extensions.Configuration.Json; version 6.0.0 -- https://www.nuget.org/packages/Microsoft.Bcl.AsyncInterhttps://www.nuget.org/packages/Microsoft.Extensions.Configuration.Jsonfaces
Copyright (c) .NET Foundation and Contributors

All rights reserved.

Expand Down
6 changes: 3 additions & 3 deletions site/content/docs/getting-started/pre-requisites.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ To run the AWS Deploy Tool, you need the following pre-requisites set up in your

> Note: You need to make sure to add the appropriate AWS permissions to your credentials’ profile / assumed role. See [Setting up Credentials](setup-creds.md)
#### .NET Core 3.1 or later
* .NET CLI - the deployment tool can be used from the .NET command-line interface (CLI) - a cross-platform toolchain for developing, building, running, and publishing .NET applications.
#### .NET 6 or later
* .NET CLI - the deployment tool can be used from the .NET command-line interface (CLI) - a cross-platform toolchain for developing, building, running, and publishing .NET applications.

* The .NET CLI is included with the [.NET SDK](https://docs.microsoft.com/en-us/dotnet/core/sdk). For information about how to install or update .NET, see [https://dotnet.microsoft.com/](https://dotnet.microsoft.com/).

* The application you are deploying must be built from .NET Core 3.1 or later (for example, .NET Core 3.1, .NET 5.0, .NET 6.0). To see what version you have, run the following on the command prompt or in a terminal:
* The deployment tool requires .NET 6 or later to be installed. However, the deployment tool supports deploying applications built using .NET Core 3.1 or later (for example, .NET Core 3.1, .NET 5.0, .NET 6.0, .NET 7). To see what version you have, run the following on the command prompt or in a terminal:

```
dotnet --version
Expand Down
2 changes: 1 addition & 1 deletion site/content/troubleshooting-guide/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ For example:
```xml
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFrameworkVersion>net5.0</TargetFrameworkVersion>
<TargetFrameworkVersion>net6.0</TargetFrameworkVersion>
<TargetFramework>$(TargetFrameworkVersion)</TargetFramework>
</PropertyGroup>
</Project>
Expand Down
2 changes: 1 addition & 1 deletion src/AWS.Deploy.CLI/AWS.Deploy.CLI.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>netcoreapp3.1;net6.0</TargetFrameworks>
<TargetFrameworks>net6.0</TargetFrameworks>
<ToolCommandName>dotnet-aws</ToolCommandName>
<IsPackable>true</IsPackable>
<PackAsTool>true</PackAsTool>
Expand Down
16 changes: 1 addition & 15 deletions src/AWS.Deploy.CLI/Utilities/CommandLineWrapper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -116,21 +116,7 @@ public async Task Run(
process.StandardInput.Close();
}

// poll for process to prevent blocking the main thread
// as opposed to using process.WaitForExit()
// in .net5 we can use process.WaitForExitAsync()
while (true)
{
if (process.HasExited)
{
// In some cases, process might have exited but OutputDataReceived or ErrorDataReceived could still be writing
// asynchronously, adding a delay should cover most of the cases.
await Task.Delay(TimeSpan.FromSeconds(1), cancelToken);
break;
}

await Task.Delay(TimeSpan.FromMilliseconds(50), cancelToken);
}
await process.WaitForExitAsync();

if (onComplete != null)
{
Expand Down
2 changes: 1 addition & 1 deletion src/AWS.Deploy.Common/AWS.Deploy.Common.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<LangVersion>Latest</LangVersion>
<AssemblyName>AWS.Deploy.Common</AssemblyName>
<RootNamespace>AWS.Deploy.Common</RootNamespace>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public async Task UpdateDeploymentManifestFile(string saveCdkDirectoryFullPath,
return;

var deploymentManifestFilePath = GetDeploymentManifestFilePath(targetApplicationFullPath);
var targetApplicationDirectoryPath = _directoryManager.GetDirectoryInfo(targetApplicationFullPath).Parent.FullName;
var targetApplicationDirectoryPath = _directoryManager.GetDirectoryInfo(targetApplicationFullPath).Parent?.FullName ?? string.Empty;
var saveCdkDirectoryRelativePath = _directoryManager.GetRelativePath(targetApplicationDirectoryPath, saveCdkDirectoryFullPath);

DeploymentManifestModel deploymentManifestModel;
Expand Down Expand Up @@ -92,7 +92,7 @@ public async Task<List<string>> GetRecipeDefinitionPaths(string targetApplicatio
{
var recipeDefinitionPaths = new List<string>();
var deploymentManifestFilePath = GetDeploymentManifestFilePath(targetApplicationFullPath);
var targetApplicationDirectoryPath = _directoryManager.GetDirectoryInfo(targetApplicationFullPath).Parent.FullName;
var targetApplicationDirectoryPath = _directoryManager.GetDirectoryInfo(targetApplicationFullPath).Parent?.FullName ?? string.Empty;

if (_fileManager.Exists(deploymentManifestFilePath))
{
Expand Down Expand Up @@ -144,7 +144,7 @@ private string SerializeManifestModel(DeploymentManifestModel deploymentManifest
/// <returns>The path to the deployment-manifest file.</returns>
private string GetDeploymentManifestFilePath(string targetApplicationFullPath)
{
var projectDirectoryFullPath = _directoryManager.GetDirectoryInfo(targetApplicationFullPath).Parent.FullName;
var projectDirectoryFullPath = _directoryManager.GetDirectoryInfo(targetApplicationFullPath).Parent?.FullName ?? string.Empty;
var deploymentManifestFileFullPath = Path.Combine(projectDirectoryFullPath, DEPLOYMENT_MANIFEST_FILE_NAME);
return deploymentManifestFileFullPath;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ public class RequiredValidator : IOptionSettingItemValidator
public Task<ValidationResult> Validate(object input, Recommendation recommendation, OptionSettingItem optionSettingItem)
{
var message = ValidationFailedMessage.Replace("{{OptionSetting}}", optionSettingItem.Name);
if (input?.TryDeserialize<SortedSet<string>>(out var inputList) ?? false)
if (input?.TryDeserialize<SortedSet<string>>(out var inputList) ?? false && inputList != null)
{
return Task.FromResult<ValidationResult>(new()
{
IsValid = inputList.Any(),
IsValid = inputList!.Any(),
ValidationFailedMessage = message
});
}
Expand Down
4 changes: 2 additions & 2 deletions src/AWS.Deploy.DockerEngine/AWS.Deploy.DockerEngine.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>AWS.Deploy.DockerEngine</RootNamespace>
<AssemblyName>AWS.Deploy.DockerEngine</AssemblyName>
</PropertyGroup>
Expand Down
2 changes: 1 addition & 1 deletion src/AWS.Deploy.DockerEngine/DockerEngine.cs
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ private ImageMapping GetImageMapping()
sdkType = "Microsoft.NET.Sdk";
}

var mappings = definitions.FirstOrDefault(x => x.SdkType.Equals(sdkType));
var mappings = definitions?.FirstOrDefault(x => x.SdkType.Equals(sdkType));
if (mappings == null)
throw new UnsupportedProjectException(DeployToolErrorCode.NoValidDockerMappingForSdkType, $"The project with SDK Type {_project.SdkType} is not supported.");

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<LangVersion>Latest</LangVersion>
<AssemblyName>AWS.Deploy.Orchestration</AssemblyName>
<RootNamespace>AWS.Deploy.Orchestration</RootNamespace>
Expand Down
4 changes: 3 additions & 1 deletion src/AWS.Deploy.Orchestration/CdkProjectHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,9 @@ public async Task<string> ConfigureCdkProject(OrchestratorSession session, Cloud
throw new InvalidOperationException($"{nameof(recommendation.Recipe.RecipePath)} cannot be null");

// The CDK deployment project is already saved in the same directory.
cdkProjectPath = _directoryManager.GetDirectoryInfo(recommendation.Recipe.RecipePath).Parent.FullName;
cdkProjectPath = _directoryManager.GetDirectoryInfo(recommendation.Recipe.RecipePath).Parent?.FullName;
if (string.IsNullOrEmpty(cdkProjectPath))
throw new InvalidOperationException($"The CDK Project Path cannot be null.");
}
else
{
Expand Down
2 changes: 2 additions & 0 deletions src/AWS.Deploy.Orchestration/OptionSettingHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -315,12 +315,14 @@ public bool IsOptionSettingDisplayable(Recommendation recommendation, OptionSett
{
if (dependsOnOptionSetting.Type == OptionSettingValueType.List &&
dependsOnOptionSettingValue.TryDeserialize<SortedSet<string>>(out var listValue) &&
listValue != null &&
!listValue.Any())
{
return false;
}
else if (dependsOnOptionSetting.Type == OptionSettingValueType.KeyValue &&
dependsOnOptionSettingValue.TryDeserialize<Dictionary<string, string>>(out var keyValue) &&
keyValue != null &&
!keyValue.Any())
{
return false;
Expand Down
9 changes: 6 additions & 3 deletions src/AWS.Deploy.Orchestration/RecipeHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ public async Task<HashSet<string>> LocateCustomRecipePaths(ProjectDefinition pro
{
var targetApplicationFullPath = new DirectoryInfo(projectDefinition.ProjectPath).FullName;
var solutionDirectoryPath = !string.IsNullOrEmpty(projectDefinition.ProjectSolutionPath) ?
new DirectoryInfo(projectDefinition.ProjectSolutionPath).Parent.FullName : string.Empty;
new DirectoryInfo(projectDefinition.ProjectSolutionPath).Parent?.FullName ?? string.Empty : string.Empty;

return await LocateCustomRecipePaths(targetApplicationFullPath, solutionDirectoryPath);
}
Expand Down Expand Up @@ -217,7 +217,7 @@ private async Task<List<string>> LocateRecipePathsFromManifestFile(string target
/// <returns>A list of recipe definition paths.</returns>
private List<string> LocateAlternateRecipePaths(string targetApplicationFullPath, string solutionDirectoryPath)
{
var targetApplicationDirectoryPath = _directoryManager.GetDirectoryInfo(targetApplicationFullPath).Parent.FullName;
var targetApplicationDirectoryPath = _directoryManager.GetDirectoryInfo(targetApplicationFullPath).Parent?.FullName ?? string.Empty;
var fileSystemRootPath = _directoryManager.GetDirectoryInfo(targetApplicationDirectoryPath).Root.FullName;
var rootDirectoryPath = GetSourceControlRootDirectory(targetApplicationDirectoryPath);

Expand Down Expand Up @@ -253,7 +253,10 @@ private List<string> GetRecipePathsFromRootDirectory(string? rootDirectoryPath)
{
if (recipeFilePath.Contains(_ignorePathSubstring))
continue;
recipePaths.Add(_directoryManager.GetDirectoryInfo(recipeFilePath).Parent.FullName);
var directoryParent = _directoryManager.GetDirectoryInfo(recipeFilePath).Parent?.FullName;
if (string.IsNullOrEmpty(directoryParent))
continue;
recipePaths.Add(directoryParent);
}
}
return recipePaths;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ public AWSElasticBeanstalkHandler(IAWSClientFactory awsClientFactory, IOrchestra
{
try
{
return JsonSerializer.Deserialize<T>(json?.ToString() ?? string.Empty, new JsonSerializerOptions { ReadCommentHandling = JsonCommentHandling.Skip });
return JsonSerializer.Deserialize<T>(json?.ToString() ?? string.Empty, new JsonSerializerOptions { ReadCommentHandling = JsonCommentHandling.Skip }) ?? new T();
}
catch
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ private async Task<IDictionary<string, object>> GetBeanstalkEnvironmentConfigura
}
}

private ConfigurationOptionSetting GetBeanstalkEnvironmentConfigurationSetting(List<ConfigurationOptionSetting> configurationSettings, string optionNameSpace, string optionName)
private ConfigurationOptionSetting? GetBeanstalkEnvironmentConfigurationSetting(List<ConfigurationOptionSetting> configurationSettings, string optionNameSpace, string optionName)
{
var configurationSetting = configurationSettings
.FirstOrDefault(x => string.Equals(optionNameSpace, x.Namespace) && string.Equals(optionName, x.OptionName));
Expand Down
Loading

0 comments on commit 7d583f8

Please sign in to comment.