Example #1
0
        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);
        }
Example #2
0
        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)
            {
            }
        }
Example #3
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()");
            }
        }
Example #4
0
 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()");
     }
 }
Example #5
0
 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()");
     }
 }
Example #6
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()");
            }
        }