From b765110fd5d08c5a792e5fe8795bc5b70f3581e6 Mon Sep 17 00:00:00 2001 From: ioito Date: Tue, 15 Mar 2022 20:36:26 +0800 Subject: [PATCH] fix(region): sync owner id --- pkg/compute/models/dbinstances.go | 4 ++-- pkg/compute/models/elasticcache_instances.go | 4 ++-- pkg/multicloud/azure/azure.go | 12 +++++++++--- pkg/multicloud/azure/enterprise_redis.go | 4 ++++ pkg/multicloud/azure/rds_managed_sqlserver.go | 4 ++++ pkg/multicloud/azure/rds_sqlserver.go | 4 ++++ pkg/multicloud/azure/redis.go | 4 ++++ 7 files changed, 29 insertions(+), 7 deletions(-) diff --git a/pkg/compute/models/dbinstances.go b/pkg/compute/models/dbinstances.go index bb0c14c9dd..ca3cd8da42 100644 --- a/pkg/compute/models/dbinstances.go +++ b/pkg/compute/models/dbinstances.go @@ -1641,7 +1641,7 @@ func (self *SDBInstance) SyncWithCloudDBInstance(ctx context.Context, userCred m return err } syncVirtualResourceMetadata(ctx, userCred, self, ext) - SyncCloudProject(userCred, self, userCred, ext, provider.Id) + SyncCloudProject(userCred, self, provider.GetOwnerId(), ext, provider.Id) db.OpsLog.LogSyncUpdate(self, diff, userCred) if len(diff) > 0 { notifyclient.EventNotify(ctx, userCred, notifyclient.SEventNotifyParam{ @@ -1735,7 +1735,7 @@ func (manager *SDBInstanceManager) newFromCloudDBInstance(ctx context.Context, u } syncVirtualResourceMetadata(ctx, userCred, &instance, extInstance) - SyncCloudProject(userCred, &instance, ownerId, extInstance, provider.Id) + SyncCloudProject(userCred, &instance, provider.GetOwnerId(), extInstance, provider.Id) db.OpsLog.LogEvent(&instance, db.ACT_CREATE, instance.GetShortDesc(ctx), userCred) diff --git a/pkg/compute/models/elasticcache_instances.go b/pkg/compute/models/elasticcache_instances.go index b520fa0c6a..ec69258fe6 100644 --- a/pkg/compute/models/elasticcache_instances.go +++ b/pkg/compute/models/elasticcache_instances.go @@ -621,7 +621,7 @@ func (self *SElasticcache) SyncWithCloudElasticcache(ctx context.Context, userCr if err != nil { return errors.Wrapf(err, "syncWithCloudElasticcache.Update") } - SyncCloudProject(userCred, self, userCred, extInstance, provider.Id) + SyncCloudProject(userCred, self, provider.GetOwnerId(), extInstance, provider.Id) syncVirtualResourceMetadata(ctx, userCred, self, extInstance) db.OpsLog.LogSyncUpdate(self, diff, userCred) if len(diff) > 0 { @@ -746,7 +746,7 @@ func (manager *SElasticcacheManager) newFromCloudElasticcache(ctx context.Contex return nil, errors.Wrapf(err, "newFromCloudElasticcache.Insert") } - SyncCloudProject(userCred, &instance, ownerId, extInstance, provider.Id) + SyncCloudProject(userCred, &instance, provider.GetOwnerId(), extInstance, provider.Id) syncVirtualResourceMetadata(ctx, userCred, &instance, extInstance) db.OpsLog.LogEvent(&instance, db.ACT_CREATE, instance.GetShortDesc(ctx), userCred) diff --git a/pkg/multicloud/azure/azure.go b/pkg/multicloud/azure/azure.go index 00942ccb74..6690c4cc2c 100644 --- a/pkg/multicloud/azure/azure.go +++ b/pkg/multicloud/azure/azure.go @@ -918,11 +918,17 @@ func (self *SAzureClient) GetIStorageById(id string) (cloudprovider.ICloudStorag } 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]) + info := strings.Split(strings.ToLower(id), "/") + idx := -1 + for i := range info { + if info[i] == "resourcegroups" { + idx = i + 1 + break } } + if idx > 0 && idx < len(info)-1 { + return info[idx] + } return "" } diff --git a/pkg/multicloud/azure/enterprise_redis.go b/pkg/multicloud/azure/enterprise_redis.go index 7d509efbe8..2c4fcea284 100644 --- a/pkg/multicloud/azure/enterprise_redis.go +++ b/pkg/multicloud/azure/enterprise_redis.go @@ -69,6 +69,10 @@ func (self *SEnterpriseRedisCache) GetName() string { return self.Name } +func (self *SEnterpriseRedisCache) GetProjectId() string { + return getResourceGroup(self.ID) +} + func (self *SEnterpriseRedisCache) GetStatus() string { switch self.Properties.Provisioningstate { case "Creating": diff --git a/pkg/multicloud/azure/rds_managed_sqlserver.go b/pkg/multicloud/azure/rds_managed_sqlserver.go index b302afb46e..df9c38d99a 100644 --- a/pkg/multicloud/azure/rds_managed_sqlserver.go +++ b/pkg/multicloud/azure/rds_managed_sqlserver.go @@ -92,6 +92,10 @@ func (self *SManagedSQLServer) GetCategory() string { return self.Sku.Family } +func (self *SManagedSQLServer) GetProjectId() string { + return getResourceGroup(self.ID) +} + func (self *SManagedSQLServer) GetIVpcId() string { if len(self.Properties.Subnetid) > 0 { info := strings.Split(self.Properties.Subnetid, "/") diff --git a/pkg/multicloud/azure/rds_sqlserver.go b/pkg/multicloud/azure/rds_sqlserver.go index a5dde9452d..fc5a562625 100644 --- a/pkg/multicloud/azure/rds_sqlserver.go +++ b/pkg/multicloud/azure/rds_sqlserver.go @@ -100,6 +100,10 @@ func (self *SSQLServer) GetGlobalId() string { return strings.ToLower(self.ID) } +func (self *SSQLServer) GetProjectId() string { + return getResourceGroup(self.ID) +} + func (self *SSQLServer) GetCategory() string { return api.AZURE_DBINSTANCE_CATEGORY_BASIC } diff --git a/pkg/multicloud/azure/redis.go b/pkg/multicloud/azure/redis.go index 1e32aba007..53673b2b07 100644 --- a/pkg/multicloud/azure/redis.go +++ b/pkg/multicloud/azure/redis.go @@ -90,6 +90,10 @@ func (self *SRedisCache) GetName() string { return self.Name } +func (self *SRedisCache) GetProjectId() string { + return getResourceGroup(self.ID) +} + func (self *SRedisCache) GetStatus() string { switch self.Properties.Provisioningstate { case "Creating":