From 873724b1fbdef79890367951896768b24fd849e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Thu, 27 Sep 2018 18:20:44 +0800 Subject: [PATCH] =?UTF-8?q?cloudprovider=E8=BF=94=E5=9B=9E=E8=99=9A?= =?UTF-8?q?=E6=9C=BA=E6=95=B0=E9=87=8F=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/models/cloudproviders.go | 9 ++++++++- pkg/mcclient/modules/mod_cloudproviders.go | 4 +++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/pkg/compute/models/cloudproviders.go b/pkg/compute/models/cloudproviders.go index d894456712..ec6905900d 100644 --- a/pkg/compute/models/cloudproviders.go +++ b/pkg/compute/models/cloudproviders.go @@ -70,6 +70,11 @@ func (self *SCloudprovider) ValidateDeleteCondition(ctx context.Context) error { return self.SEnabledStatusStandaloneResourceBase.ValidateDeleteCondition(ctx) } +func (self *SCloudprovider) GetGuestCount() int { + sq := HostManager.Query("id").Equals("manager_id", self.Id) + return GuestManager.Query().In("host_id", sq).Count() +} + func (self *SCloudprovider) GetHostCount() int { return HostManager.Query().Equals("manager_id", self.Id).Count() } @@ -396,11 +401,12 @@ func (manager *SCloudproviderManager) FetchCloudproviderByIdOrName(providerId st } type SCloudproviderUsage struct { + GuestCount int HostCount int VpcCount int StorageCount int StorageCacheCount int - EipCount int + EipCount int } func (usage *SCloudproviderUsage) isEmpty() bool { @@ -424,6 +430,7 @@ func (usage *SCloudproviderUsage) isEmpty() bool { func (self *SCloudprovider) getUsage() *SCloudproviderUsage { usage := SCloudproviderUsage{} + usage.GuestCount = self.GetGuestCount() usage.HostCount = self.GetHostCount() usage.VpcCount = self.getVpcCount() usage.StorageCount = self.getStorageCount() diff --git a/pkg/mcclient/modules/mod_cloudproviders.go b/pkg/mcclient/modules/mod_cloudproviders.go index 7a38ba7b05..df24b3cc3a 100644 --- a/pkg/mcclient/modules/mod_cloudproviders.go +++ b/pkg/mcclient/modules/mod_cloudproviders.go @@ -6,7 +6,9 @@ var ( func init() { Cloudproviders = NewComputeManager("cloudprovider", "cloudproviders", - []string{"ID", "Name", "Enabled", "Status", "Access_url", "Account", "Last_sync", "Provider"}, + []string{"ID", "Name", "Enabled", "Status", "Access_url", "Account", + "Last_sync", "Provider", "guest_count", "host_count", "vpc_count", + "storage_count", "storage_cache_count", "eip_count"}, []string{}) registerCompute(&Cloudproviders)