private static List <S3Object> GetS3Buckets(AWSEnvironment environment, string[] s3Bucketsnames) { var result = new List <S3Object>(); var config = new AmazonS3Config() { RegionEndpoint = RegionEndpoint.GetBySystemName(environment.Region) }; var credentials = new BasicAWSCredentials(environment.AccessKey, environment.SecretKey); using (var client = new AmazonS3Client(credentials, config)) { foreach (var bucket in s3Bucketsnames) { string marker = null; Console.WriteLine($"Getting S3 objects from {bucket} bucket..."); do { var response = client.ListObjectsAsync(new ListObjectsRequest { BucketName = bucket, Marker = marker }); marker = response.NextMarker; result.AddRange(response.S3Objects); } while (!string.IsNullOrEmpty(marker)); } } return(result); }
public static void CleanS3Buckets(AWSEnvironment environment) { Console.WriteLine("Process started..."); var s3buckets = GetS3Buckets(environment, environment.S3Buckets); Console.WriteLine($"S3 buckets count: {s3buckets.Count }"); if (s3buckets.Count > 0) { } }
private static void BuildEnvironmentPage(AWSEnvironment environment) { try { if (!string.IsNullOrEmpty(environment.AccessKeyID) && !string.IsNullOrEmpty(environment.SecretAccessKey)) { foreach (var region in RegionEndpoint.EnumerableAllRegions) { if (string.Equals(region.SystemName, environment.Region)) { var allInstances = new List <AWSInstance>(); var rdsInstances = RDS.GetAllRDSInstances(environment, region); securityGroups = EC2.GetAllSecurityGroups(environment, region); allSubnets = EC2.GetAllAWSSubnets(environment, region); privateSubnets = SplitSubnets(false); publicSubnets = SplitSubnets(true); privateSubnets.Sort((x, y) => string.CompareOrdinal(x.Name, y.Name)); publicSubnets.Sort((x, y) => string.CompareOrdinal(x.Name, y.Name)); var ec2Instances = EC2.GetAllEC2Instances(environment, region); allInstances.AddRange(ec2Instances); allInstances.AddRange(rdsInstances); if (allInstances.Count > 0) { allInstances.Sort((x, y) => string.CompareOrdinal(x.Name, y.Name)); foreach (var server in allInstances) { server.Icon = GetIconFromRole(server.Role); } BuildHTMLPage(environment, region, allInstances); } } } } else { Display.Error("AWS credentials are blank, unable to proceed with " + environment.Name); } } catch (Exception ex) { Logger.Log(LogLevel.Error, ex, "Exception in BuildEnvironmentPage()"); } }
private static void BuildHTMLPage(AWSEnvironment environment, RegionEndpoint region, List <AWSInstance> servers) { try { var scriptsFile = ConfigurationManager.AppSettings[Constants.ScriptsFileKey]; var htmlBody = string.Format(Constants.HTMLHeader, environment.Name, region.DisplayName) + Environment.NewLine + Constants.HTMLMeta + Environment.NewLine; htmlBody += string.Format(Constants.HTMLCSSLink, stylesFile) + Environment.NewLine; htmlBody += LoadScriptsFile(scriptsFile); htmlBody += Constants.HTMLHeaderEnd + Environment.NewLine + string.Format(Constants.InstancesHeaderLine, environment.Name, region.DisplayName) + Environment.NewLine + Constants.LineDivStartLine + Environment.NewLine + Constants.LegendDiv + Environment.NewLine; htmlBody += CreateHTMLForSubnets(publicSubnets, servers, true); htmlBody += CreateHTMLForSubnets(privateSubnets, servers, false); htmlBody += Constants.LineDivEndLine + Environment.NewLine + Constants.HTMLFooter + Environment.NewLine; File.WriteAllText(environment.HTMLPage, htmlBody); } catch (Exception ex) { Logger.Log(LogLevel.Error, ex, "Exception in BuildHTMLPage()"); } }
private static void BuildHTMLPage(AWSEnvironment environment, RegionEndpoint region, List<AWSInstance> servers) { try { var scriptsFile = ConfigurationManager.AppSettings[Constants.ScriptsFileKey]; var htmlBody = string.Format(Constants.HTMLHeader, environment.Name, region.DisplayName) + Environment.NewLine + Constants.HTMLMeta + Environment.NewLine; htmlBody += string.Format(Constants.HTMLCSSLink, stylesFile) + Environment.NewLine; htmlBody += LoadScriptsFile(scriptsFile); htmlBody += Constants.HTMLHeaderEnd + Environment.NewLine + string.Format(Constants.InstancesHeaderLine, environment.Name, region.DisplayName) + Environment.NewLine + Constants.LineDivStartLine + Environment.NewLine + Constants.LegendDiv + Environment.NewLine; htmlBody += CreateHTMLForSubnets(publicSubnets, servers, true); htmlBody += CreateHTMLForSubnets(privateSubnets, servers, false); htmlBody += Constants.LineDivEndLine + Environment.NewLine + Constants.HTMLFooter + Environment.NewLine; File.WriteAllText(environment.HTMLPage, htmlBody); } catch (Exception ex) { Logger.Log(LogLevel.Error, ex, "Exception in BuildHTMLPage()"); } }
private static void BuildEnvironmentPage(AWSEnvironment environment) { try { if (!string.IsNullOrEmpty(environment.AccessKeyID) && !string.IsNullOrEmpty(environment.SecretAccessKey)) { foreach (var region in RegionEndpoint.EnumerableAllRegions) { if (string.Equals(region.SystemName, environment.Region)) { var allInstances = new List<AWSInstance>(); var rdsInstances = RDS.GetAllRDSInstances(environment, region); securityGroups = EC2.GetAllSecurityGroups(environment, region); allSubnets = EC2.GetAllAWSSubnets(environment, region); privateSubnets = SplitSubnets(false); publicSubnets = SplitSubnets(true); privateSubnets.Sort((x, y) => string.CompareOrdinal(x.Name, y.Name)); publicSubnets.Sort((x, y) => string.CompareOrdinal(x.Name, y.Name)); var ec2Instances = EC2.GetAllEC2Instances(environment, region); allInstances.AddRange(ec2Instances); allInstances.AddRange(rdsInstances); if (allInstances.Count > 0) { allInstances.Sort((x, y) => string.CompareOrdinal(x.Name, y.Name)); foreach (var server in allInstances) { server.Icon = GetIconFromRole(server.Role); } BuildHTMLPage(environment, region, allInstances); } } } } else { Display.Error("AWS credentials are blank, unable to proceed with " + environment.Name); } } catch (Exception ex) { Logger.Log(LogLevel.Error, ex, "Exception in BuildEnvironmentPage()"); } }