From 31d7f04f82f4d172e729615eb7aed0a3bfa16e8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Mon, 4 Mar 2019 17:48:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5azure=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/climc/shell/cloudproviders.go | 1 - pkg/util/azure/azure.go | 12 ++++++++++++ pkg/util/azure/classic_eip.go | 2 +- pkg/util/azure/classic_instance.go | 2 +- pkg/util/azure/classic_secruitygroup.go | 2 +- pkg/util/azure/disk.go | 2 +- pkg/util/azure/eip.go | 2 +- pkg/util/azure/instance.go | 2 +- pkg/util/azure/network.go | 2 +- pkg/util/azure/securitygroup.go | 2 +- pkg/util/azure/snapshot.go | 2 +- 11 files changed, 21 insertions(+), 10 deletions(-) diff --git a/cmd/climc/shell/cloudproviders.go b/cmd/climc/shell/cloudproviders.go index 2afb161a6b..e582e8e1a4 100644 --- a/cmd/climc/shell/cloudproviders.go +++ b/cmd/climc/shell/cloudproviders.go @@ -20,7 +20,6 @@ func init() { params, err = args.BaseListOptions.Params() if err != nil { return err - } } result, err := modules.Cloudproviders.List(s, params) diff --git a/pkg/util/azure/azure.go b/pkg/util/azure/azure.go index 8e9726946b..89359220df 100644 --- a/pkg/util/azure/azure.go +++ b/pkg/util/azure/azure.go @@ -769,6 +769,15 @@ func (self *SAzureClient) QueryAccountBalance() (*SAccountBalance, error) { return nil, cloudprovider.ErrNotImplemented } +func getResourceGroup(id string) string { + if info := strings.Split(id, "/resourceGroups/"); len(info) == 2 { + if resourcegroupInfo := strings.Split(info[1], "/"); len(resourcegroupInfo) > 0 { + return strings.ToLower(resourcegroupInfo[0]) + } + } + return "" +} + func (self *SAzureClient) GetIProjects() ([]cloudprovider.ICloudProject, error) { resourceGroups := []SResourceGroup{} if err := self.List("resourcegroups", &resourceGroups); err != nil { @@ -776,6 +785,9 @@ func (self *SAzureClient) GetIProjects() ([]cloudprovider.ICloudProject, error) } iprojects := []cloudprovider.ICloudProject{} for i := 0; i < len(resourceGroups); i++ { + if groupInfo := strings.Split(resourceGroups[i].ID, "/"); len(groupInfo) > 0 { + resourceGroups[i].ID = strings.ToLower(groupInfo[len(groupInfo)-1]) + } iprojects = append(iprojects, &resourceGroups[i]) } return iprojects, nil diff --git a/pkg/util/azure/classic_eip.go b/pkg/util/azure/classic_eip.go index bbaa19a2bd..4d5cc07ea7 100644 --- a/pkg/util/azure/classic_eip.go +++ b/pkg/util/azure/classic_eip.go @@ -153,5 +153,5 @@ func (self *SClassicEipAddress) GetExpiredAt() time.Time { } func (self *SClassicEipAddress) GetProjectId() string { - return "" + return getResourceGroup(self.ID) } diff --git a/pkg/util/azure/classic_instance.go b/pkg/util/azure/classic_instance.go index 2ba77052b6..2957068bfc 100644 --- a/pkg/util/azure/classic_instance.go +++ b/pkg/util/azure/classic_instance.go @@ -537,5 +537,5 @@ func (self *SClassicInstance) Renew(bc billing.SBillingCycle) error { } func (self *SClassicInstance) GetProjectId() string { - return "" + return getResourceGroup(self.ID) } diff --git a/pkg/util/azure/classic_secruitygroup.go b/pkg/util/azure/classic_secruitygroup.go index 8a2c10e15b..491d62dccb 100644 --- a/pkg/util/azure/classic_secruitygroup.go +++ b/pkg/util/azure/classic_secruitygroup.go @@ -361,5 +361,5 @@ func (region *SRegion) syncClassicSecurityGroup(secgroupId, name, desc string, r } func (self *SClassicSecurityGroup) GetProjectId() string { - return "" + return getResourceGroup(self.ID) } diff --git a/pkg/util/azure/disk.go b/pkg/util/azure/disk.go index 14d5d3290b..9bd372e886 100644 --- a/pkg/util/azure/disk.go +++ b/pkg/util/azure/disk.go @@ -343,5 +343,5 @@ func (self *SDisk) Rebuild(ctx context.Context) error { } func (self *SDisk) GetProjectId() string { - return "" + return getResourceGroup(self.ID) } diff --git a/pkg/util/azure/eip.go b/pkg/util/azure/eip.go index ce96daeea2..d240825523 100644 --- a/pkg/util/azure/eip.go +++ b/pkg/util/azure/eip.go @@ -244,5 +244,5 @@ func (self *SEipAddress) GetExpiredAt() time.Time { } func (self *SEipAddress) GetProjectId() string { - return "" + return getResourceGroup(self.ID) } diff --git a/pkg/util/azure/instance.go b/pkg/util/azure/instance.go index 9dac00377f..7d1f96dcbf 100644 --- a/pkg/util/azure/instance.go +++ b/pkg/util/azure/instance.go @@ -1045,5 +1045,5 @@ func (self *SInstance) Renew(bc billing.SBillingCycle) error { } func (self *SInstance) GetProjectId() string { - return "" + return getResourceGroup(self.ID) } diff --git a/pkg/util/azure/network.go b/pkg/util/azure/network.go index 2973be44b6..57eb731074 100644 --- a/pkg/util/azure/network.go +++ b/pkg/util/azure/network.go @@ -114,5 +114,5 @@ func (self *SNetwork) GetAllocTimeoutSeconds() int { } func (self *SNetwork) GetProjectId() string { - return "" + return getResourceGroup(self.ID) } diff --git a/pkg/util/azure/securitygroup.go b/pkg/util/azure/securitygroup.go index e59fe2b879..87e4e29607 100644 --- a/pkg/util/azure/securitygroup.go +++ b/pkg/util/azure/securitygroup.go @@ -489,5 +489,5 @@ func (region *SRegion) AssiginSecurityGroup(instanceId, secgroupId string) error } func (self *SSecurityGroup) GetProjectId() string { - return "" + return getResourceGroup(self.ID) } diff --git a/pkg/util/azure/snapshot.go b/pkg/util/azure/snapshot.go index 3e1c7a21c4..450e9eccfb 100644 --- a/pkg/util/azure/snapshot.go +++ b/pkg/util/azure/snapshot.go @@ -174,5 +174,5 @@ func (self *SSnapshot) GetDiskType() string { } func (self *SSnapshot) GetProjectId() string { - return "" + return getResourceGroup(self.ID) }