in Runtime/Core/DeploymentManagement/DeploymentManager.cs [124:174]
public DescribeStackResponse DescribeStack(DescribeStackRequest request)
{
try
{
DescribeStacksResponse describeStacksResponse = _amazonCloudFormation.DescribeStacks(new DescribeStacksRequest()
{
StackName = request.StackName
});
if (!describeStacksResponse.Stacks.Any())
{
return Response.Fail(new DescribeStackResponse()
{
ErrorCode = ErrorCode.StackDoesNotExist
});
}
Stack stack = describeStacksResponse.Stacks[0];
string gameName = stack.Parameters.Find(target => target.ParameterKey == s_gameNameParameter)?.ParameterValue;
var response = new DescribeStackResponse
{
StackId = stack.StackId,
LastUpdatedTime = stack.LastUpdatedTime,
StackStatus = stack.StackStatus,
GameName = gameName
};
if (request.OutputKeys != null)
{
var outputs =
stack.Outputs.Where(x => request.OutputKeys.Contains(x.OutputKey))
.ToDictionary(key => key.OutputKey, value => value.OutputValue);
response.Outputs = outputs;
}
return Response.Ok(response);
}
catch (AmazonCloudFormationException ex)
{
Logger.LogError(ex, ex.Message);
return Response.Fail(new DescribeStackResponse()
{
ErrorCode = ErrorCode.StackDoesNotExist,
ErrorMessage = ex.Message
});
}
}