public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems) { AmazonCodeBuildConfig config = new AmazonCodeBuildConfig(); config.RegionEndpoint = region; ConfigureClient(config); AmazonCodeBuildClient client = new AmazonCodeBuildClient(creds, config); ListReportGroupsResponse resp = new ListReportGroupsResponse(); do { ListReportGroupsRequest req = new ListReportGroupsRequest { NextToken = resp.NextToken , MaxResults = maxItems }; resp = client.ListReportGroups(req); CheckError(resp.HttpStatusCode, "200"); foreach (var obj in resp.ReportGroups) { AddObject(obj); } }while (!string.IsNullOrEmpty(resp.NextToken)); }
private async Task <object> Create(CloudFormationEvent <RunTerraformRequest> input, ILambdaContext context) { var client = new AmazonCodeBuildClient(); var request = new StartBuildRequest { EnvironmentVariablesOverride = BuildEnvironmentVariables(input) }; var response = await client.StartBuildAsync(request); return(null); }
protected IAmazonCodeBuild CreateClient(AWSCredentials credentials, RegionEndpoint region) { var config = new AmazonCodeBuildConfig { RegionEndpoint = region }; Amazon.PowerShell.Utils.Common.PopulateConfig(this, config); this.CustomizeClientConfig(config); var client = new AmazonCodeBuildClient(credentials, config); client.BeforeRequestEvent += RequestEventHandler; client.AfterResponseEvent += ResponseEventHandler; return(client); }
public void CodeBuildBatchGetBuilds() { #region to-get-information-about-builds-1501187184588 var client = new AmazonCodeBuildClient(); var response = client.BatchGetBuilds(new BatchGetBuildsRequest { Ids = new List <string> { "codebuild-demo-project:9b0ac37f-d19e-4254-9079-f47e9a389eEX", "codebuild-demo-project:b79a46f7-1473-4636-a23f-da9c45c208EX" } }); List <Build> builds = response.Builds; #endregion }
public async Task Execute(JObject input, ILambdaContext context) { LambdaLogger.Log($"Received input as {input.ToString()}"); var request = input.ToObject <CustomResourceRequest>(); var response = new CustomResourceResponse(); // init the response response.StackId = request.stackId; response.RequestId = request.requestId; response.LogicalResourceId = request.logicalResourceId; response.NoEcho = false; if (string.IsNullOrEmpty(request.physicalResourceId)) { response.PhysicalResourceId = ""; } else { response.PhysicalResourceId = request.physicalResourceId; } response.PhysicalResourceId = "CodeBuildAndWait"; response.Reason = "See CloudWatch logs for detail"; response.Status = "FAILED"; var resourceProperties = request.resourceProperties.ToObject <CustomResourceProperties>(); try { switch (request.requestType.ToLower()) { case "create": case "update": var buildRequest = new StartBuildRequest(); buildRequest.ProjectName = resourceProperties.CodeBuildProjectName; var buildClient = new AmazonCodeBuildClient(); LambdaLogger.Log($"Starting build: {buildRequest.ProjectName}"); var buildResponse = await buildClient.StartBuildAsync(buildRequest); if (buildResponse.HttpStatusCode == System.Net.HttpStatusCode.OK) { var statusRequest = new BatchGetBuildsRequest(); statusRequest.Ids.Add(buildResponse.Build.Id); while (true) { System.Threading.Thread.Sleep(5000); // Wait 5 seconds between build status checks var statusResponse = await buildClient.BatchGetBuildsAsync(statusRequest); Debug.Assert(statusResponse.Builds.Count == 1); LambdaLogger.Log($"Build Id: {statusResponse.Builds[0].Id}; Build Status: {statusResponse.Builds[0].BuildStatus}"); var buildStatus = statusResponse.Builds[0].BuildStatus; if (buildStatus == StatusType.SUCCEEDED) { response.Status = "SUCCESS"; break; } else if (buildStatus == StatusType.IN_PROGRESS) { continue; } else { response.Status = "FAILED"; break; } } } else { LambdaLogger.Log($"StartBuild Failed: {buildResponse.HttpStatusCode}: {buildResponse}"); } break; case "delete": LambdaLogger.Log("Received DELETE request"); response.Status = "SUCCESS"; break; } } catch (Exception e) { // Swallow exception, we will just pass it back as-is to CloudFormation response.Reason = e.Message; } context.Logger.LogLine($"Calling CloudFormation callback; status: {response.Status}"); var http = new HttpClient(); var httpResponse = await http.PutAsJsonAsync(request.responseUrl, response.ToJson()); context.Logger.LogLine($"Callback Response: {httpResponse.StatusCode}"); await Task.CompletedTask; }