/// Get the AMI Image Details from EC2 AWS Marketplace public async Task <Amazon.EC2.Model.Image> Execute(ImageBuilderPackagerRequest request) { Amazon.EC2.Model.Image response = null; // Request Details this.logger.LogInformation(string.Format("Benchmark Name: {0}", request?.benchmarkName)); this.logger.LogInformation(string.Format("Profile Level: {0}", request?.profileLevel)); // Construct the AMI name pattern var amiNamePattern = request.benchmarkName + "*" + request.profileLevel + "*"; // Create a Describe Images Request var describeRequest = new Amazon.EC2.Model.DescribeImagesRequest { Owners = new List <string> { AWS_MARKETPLACE_ID }, Filters = new List <Amazon.EC2.Model.Filter> { new Amazon.EC2.Model.Filter { Name = "name", Values = new List <string> { amiNamePattern } } } }; // Execute the request. this.logger.LogInformation("EC2 Describe-Images: Request - Begin"); var describeResponse = await this.ec2Client.DescribeImagesAsync(describeRequest); this.logger.LogInformation("EC2 Describe-Images: Request - End"); // Process the response. this.logger.LogInformation("EC2 Describe-Images: Response - Begin"); if (describeResponse != null) { // Log all responses. describeResponse.Images.ForEach(item => this.logger.LogDebug(this.GetAmiImageDetailsAsString(item))); // Find the most recent AMI and set a result. response = describeResponse.Images.OrderByDescending(item => item.CreationDate).FirstOrDefault(); this.logger.LogInformation(string.Format("SELECTED: {0}", this.GetAmiImageDetailsAsString(response))); } this.logger.LogInformation("EC2 Describe-Images: Response - End"); // Return the selected AMI Image return(response); }
private string GetAmiImageDetailsAsString(Amazon.EC2.Model.Image item) { return((item != null) ? string.Format("{0} | {1} - {2} - {3} ({4})", item.Name, item.Description, item.ImageId, item.PlatformDetails, item.CreationDate) : null); }
protected override bool DoUpdate(object responseData) { Debug.Assert(responseData.GetType() == typeof(Amazon.EC2.Model.Image), "Wrong data passed to the object for update."); ResponseData = (Amazon.EC2.Model.Image)responseData; return true; }
public ZAwsAmi(ZAwsEc2Controller controller, Amazon.EC2.Model.Image res) : base(controller) { Update(res); }