コード例 #1
0
        public List <DBDetail> GetDBProperties()
        {
            List <AWSProfile> profile;
            List <DBDetail>   list = new List <DBDetail>();

            profile = SqlHelper.GetAWSAccounts();
            //foreach (var profile_ in profile)
            //{
            //    Amazon.Util.ProfileManager.RegisterProfile(profile_.ProfileName, profile_.Accesskey, profile_.Secretkey);
            //}

            try
            {
                foreach (var profile_ in profile)
                {
                    var regions = Amazon.RegionEndpoint.EnumerableAllRegions;
                    //Amazon.Runtime.AWSCredentials credentials = new Amazon.Runtime.StoredProfileAWSCredentials(profile_.ProfileName);
                    foreach (var r in regions)
                    {
                        string region_;
                        if (r.SystemName != "us-gov-west-1" && r.SystemName != "cn-north-1")
                        {
                            region_ = r.SystemName;
                            var                         region   = RegionEndpoint.GetBySystemName(region_);
                            AmazonRDSClient             rds      = new AmazonRDSClient(profile_.Accesskey, profile_.Secretkey, region);
                            DescribeDBInstancesRequest  request  = new DescribeDBInstancesRequest();
                            DescribeDBInstancesResponse response = rds.DescribeDBInstances(request);
                            List <DBInstance>           result   = response.DBInstances;
                            foreach (var db in result)
                            {
                                DBDetail dbdetail = new DBDetail();
                                dbdetail.Name        = db.DBInstanceIdentifier;
                                dbdetail.Size        = db.AllocatedStorage.ToString() + " GB";
                                dbdetail.Status      = db.DBInstanceStatus;
                                dbdetail.Type        = db.StorageType;
                                dbdetail.Key         = db.DbiResourceId;
                                dbdetail.ServerName  = db.Engine;
                                dbdetail.accountId   = profile_.accountId;
                                dbdetail.ProfileName = profile_.ProfileName;
                                dbdetail.Region      = region_;
                                list.Add(dbdetail);
                            }
                        }
                    }
                }

                return(list);
            }
            catch (Exception e)
            {
                this.log.Error(e);
                return(null);
            }
        }
コード例 #2
0
        public List <DBDetail> GetDBProperties()
        {
            List <DBDetail> dbdetails   = new List <DBDetail>();
            var             profileList = SqlHelper.GetAzureAccounts();

            foreach (var profile in profileList)
            {
                var credentials = SdkContext.AzureCredentialsFactory.FromServicePrincipal(profile.ClientId, profile.ClientSecretKey, profile.TenantId, AzureEnvironment.AzureGlobalCloud);
                try
                {
                    var azure = Azure.Authenticate(credentials).WithSubscription(profile.SubscriptionId);
                    foreach (var server in azure.SqlServers.List())
                    {
                        foreach (var database in server.Databases.List())
                        {
                            DBDetail db = new DBDetail();
                            db.Name = database.Name;
                            var temp = (database.MaxSizeBytes) / 1000000000;
                            db.Size       = temp.ToString() + " GB";
                            db.ServerName = database.SqlServerName;
                            db.Status     = database.Status;
                            db.Key        = database.DatabaseId;
                            ////db.Key = database.Key;
                            ////db.Key = database.Id;
                            string   status = database.Type;
                            string[] s      = status.Split('/');
                            db.Type        = s[2];
                            db.accountId   = profile.accountId;
                            db.ProfileName = "Not Applicable";
                            db.Region      = database.RegionName;
                            dbdetails.Add(db);
                        }
                    }
                }
                catch (Exception e)
                {
                    this.log.Error(e);
                    return(null);
                }
            }

            return(dbdetails);
        }