public StackDeploymentStatusRequestFactory CreateRequestFactory(StackDeploymentStatusRequest request) { var factory = Substitute.For <StackDeploymentStatusRequestFactory>(); factory.CreateFromSnsEvent(Arg.Any <SNSEvent>()).Returns(request); return(factory); }
private async Task SendSuccess(StackDeploymentStatusRequest request) { var tokenInfo = await tokenInfoRepository.FindByRequest(request); if (request.SourceTopic != config.GithubTopicArn) { var outputs = await GetStackOutputs(request.StackId, tokenInfo.RoleArn); var response = await stepFunctionsClient.SendTaskSuccessAsync(new SendTaskSuccessRequest { TaskToken = tokenInfo.ClientRequestToken, Output = JsonSerializer.Serialize(outputs) }); logger.LogInformation($"Received send task success response: {JsonSerializer.Serialize(response)}"); await Dequeue(tokenInfo); } await githubStatusNotifier.NotifySuccess( tokenInfo.GithubOwner, tokenInfo.GithubRepo, tokenInfo.GithubRef, request.StackName, tokenInfo.EnvironmentName ); }
public virtual async Task <TokenInfo> FindByRequest(StackDeploymentStatusRequest request) { if (request.SourceTopic == config.GithubTopicArn) { return(new TokenInfo { EnvironmentName = "shared", GithubOwner = config.GithubOwner, GithubRepo = request.StackName.Replace($"-{config.StackSuffix}", ""), GithubRef = request.ClientRequestToken, }); } var(bucket, key) = GetBucketAndKeyFromRequestToken(request.ClientRequestToken); var sourceString = await GetObject(bucket, $"tokens/{key}"); return(Deserialize <TokenInfo>(sourceString)); }
private async Task SendFailure(StackDeploymentStatusRequest request) { var tokenInfo = await tokenInfoRepository.FindByRequest(request); if (request.SourceTopic != config.GithubTopicArn) { var response = await stepFunctionsClient.SendTaskFailureAsync(new SendTaskFailureRequest { TaskToken = tokenInfo.ClientRequestToken, Cause = request.ResourceStatus }); logger.LogInformation($"Received send task failure response: {JsonSerializer.Serialize(response)}"); await Dequeue(tokenInfo); } await githubStatusNotifier.NotifyFailure( tokenInfo.GithubOwner, tokenInfo.GithubRepo, tokenInfo.GithubRef, request.StackName, tokenInfo.EnvironmentName ); }