From a95bd97904705ecb3e4e7e560f7df4658f493051 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Sun, 15 Jan 2023 14:50:31 +0800 Subject: [PATCH] fix(region): unified name sync options (#15740) --- pkg/compute/models/cachedimages.go | 10 +++--- pkg/compute/models/cdn_domains.go | 5 ++- pkg/compute/models/dbinstances.go | 6 ++++ pkg/compute/models/disks.go | 8 ++++- pkg/compute/models/elastic_search.go | 9 ++++- pkg/compute/models/elasticcache_instances.go | 7 ++++ pkg/compute/models/elasticips.go | 7 ++++ pkg/compute/models/filesystem.go | 7 ++++ pkg/compute/models/guests.go | 6 ++-- pkg/compute/models/inter_vpc_network.go | 5 ++- pkg/compute/models/ipv6_gateways.go | 8 +++++ pkg/compute/models/kafka.go | 9 ++++- pkg/compute/models/loadbalancercachedacls.go | 3 +- pkg/compute/models/loadbalancers.go | 9 ++++- pkg/compute/models/modelarts_pools.go | 8 +++++ pkg/compute/models/mongodb.go | 9 ++++- pkg/compute/models/natgateways.go | 7 ++++ pkg/compute/models/networks.go | 8 ++++- pkg/compute/models/secgroupcache.go | 5 ++- pkg/compute/models/snapshots.go | 7 +++- pkg/compute/models/tablestores.go | 8 +++++ pkg/compute/models/vpcs.go | 8 +++-- pkg/compute/models/waf_ipset_caches.go | 5 ++- pkg/compute/models/waf_regexset_caches.go | 5 ++- pkg/compute/options/namesync.go | 35 -------------------- pkg/compute/options/options.go | 4 +-- pkg/compute/service/service.go | 2 -- 27 files changed, 149 insertions(+), 61 deletions(-) delete mode 100644 pkg/compute/options/namesync.go diff --git a/pkg/compute/models/cachedimages.go b/pkg/compute/models/cachedimages.go index cbd1dd0533..6470fc432c 100644 --- a/pkg/compute/models/cachedimages.go +++ b/pkg/compute/models/cachedimages.go @@ -548,11 +548,13 @@ func (self *SCachedimage) canDeleteLastCache() bool { func (self *SCachedimage) syncWithCloudImage(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, image cloudprovider.ICloudImage, managerId string) error { diff, err := db.UpdateWithLock(ctx, self, func() error { - newName, err := db.GenerateAlterName(self, image.GetName()) - if err != nil { - return errors.Wrap(err, "GenerateAlterName") + if options.Options.EnableSyncName { + newName, err := db.GenerateAlterName(self, image.GetName()) + if err != nil { + return errors.Wrap(err, "GenerateAlterName") + } + self.Name = newName } - self.Name = newName self.Size = image.GetSizeByte() self.ExternalId = image.GetGlobalId() self.ImageType = string(image.GetImageType()) diff --git a/pkg/compute/models/cdn_domains.go b/pkg/compute/models/cdn_domains.go index d195eefa8a..d4dd684c2d 100644 --- a/pkg/compute/models/cdn_domains.go +++ b/pkg/compute/models/cdn_domains.go @@ -33,6 +33,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" "yunion.io/x/onecloud/pkg/cloudcommon/notifyclient" "yunion.io/x/onecloud/pkg/cloudcommon/validators" + "yunion.io/x/onecloud/pkg/compute/options" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/util/stringutils2" @@ -206,7 +207,9 @@ func (self *SCDNDomain) GetICloudCDNDomain(ctx context.Context) (cloudprovider.I func (self *SCDNDomain) SyncWithCloudCDNDomain(ctx context.Context, userCred mcclient.TokenCredential, ext cloudprovider.ICloudCDNDomain) error { diff, err := db.UpdateWithLock(ctx, self, func() error { - self.Name = ext.GetName() + if options.Options.EnableSyncName { + self.Name = ext.GetName() + } self.Status = ext.GetStatus() self.Area = ext.GetArea() self.ServiceType = ext.GetServiceType() diff --git a/pkg/compute/models/dbinstances.go b/pkg/compute/models/dbinstances.go index b08a6efe41..127fde11dd 100644 --- a/pkg/compute/models/dbinstances.go +++ b/pkg/compute/models/dbinstances.go @@ -1632,6 +1632,12 @@ func (self *SDBInstance) SyncAllWithCloudDBInstance(ctx context.Context, userCre func (self *SDBInstance) SyncWithCloudDBInstance(ctx context.Context, userCred mcclient.TokenCredential, provider *SCloudprovider, ext cloudprovider.ICloudDBInstance) error { diff, err := db.Update(self, func() error { + if options.Options.EnableSyncName { + newName, _ := db.GenerateAlterName(self, ext.GetName()) + if len(newName) > 0 { + self.Name = newName + } + } self.ExternalId = ext.GetGlobalId() self.Engine = ext.GetEngine() self.EngineVersion = ext.GetEngineVersion() diff --git a/pkg/compute/models/disks.go b/pkg/compute/models/disks.go index 5bd16bde5e..fed391d1db 100644 --- a/pkg/compute/models/disks.go +++ b/pkg/compute/models/disks.go @@ -1652,7 +1652,13 @@ func (self *SDisk) syncWithCloudDisk(ctx context.Context, userCred mcclient.Toke } diff, err := db.UpdateWithLock(ctx, self, func() error { - // self.Name = extDisk.GetName() + if options.Options.EnableSyncName { + newName, _ := db.GenerateAlterName(self, extDisk.GetName()) + if len(newName) > 0 { + self.Name = newName + } + } + self.Status = extDisk.GetStatus() self.DiskFormat = extDisk.GetDiskFormat() self.DiskSize = extDisk.GetDiskSizeMB() diff --git a/pkg/compute/models/elastic_search.go b/pkg/compute/models/elastic_search.go index c8df25a701..7b8145f2f3 100644 --- a/pkg/compute/models/elastic_search.go +++ b/pkg/compute/models/elastic_search.go @@ -34,6 +34,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/db/lockman" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" "yunion.io/x/onecloud/pkg/cloudcommon/notifyclient" + "yunion.io/x/onecloud/pkg/compute/options" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/util/rbacutils" @@ -412,7 +413,13 @@ func (self *SElasticSearch) syncRemoveCloudElasticSearch(ctx context.Context, us // 同步资源属性 func (self *SElasticSearch) SyncWithCloudElasticSearch(ctx context.Context, userCred mcclient.TokenCredential, ext cloudprovider.ICloudElasticSearch) error { diff, err := db.UpdateWithLock(ctx, self, func() error { - self.ExternalId = ext.GetGlobalId() + if options.Options.EnableSyncName { + newName, _ := db.GenerateAlterName(self, ext.GetName()) + if len(newName) > 0 { + self.Name = newName + } + } + self.Status = ext.GetStatus() self.Version = ext.GetVersion() self.StorageType = ext.GetStorageType() diff --git a/pkg/compute/models/elasticcache_instances.go b/pkg/compute/models/elasticcache_instances.go index 6ff765979b..960ea8e84d 100644 --- a/pkg/compute/models/elasticcache_instances.go +++ b/pkg/compute/models/elasticcache_instances.go @@ -587,6 +587,13 @@ func (self *SElasticcache) syncRemoveCloudElasticcache(ctx context.Context, user func (self *SElasticcache) SyncWithCloudElasticcache(ctx context.Context, userCred mcclient.TokenCredential, provider *SCloudprovider, extInstance cloudprovider.ICloudElasticcache) error { diff, err := db.UpdateWithLock(ctx, self, func() error { + if options.Options.EnableSyncName { + newName, _ := db.GenerateAlterName(self, extInstance.GetName()) + if len(newName) > 0 { + self.Name = newName + } + } + self.Status = extInstance.GetStatus() self.InstanceType = extInstance.GetInstanceType() self.CapacityMB = extInstance.GetCapacityMB() diff --git a/pkg/compute/models/elasticips.go b/pkg/compute/models/elasticips.go index 7137c573de..e7154e7dcc 100644 --- a/pkg/compute/models/elasticips.go +++ b/pkg/compute/models/elasticips.go @@ -41,6 +41,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/notifyclient" "yunion.io/x/onecloud/pkg/cloudcommon/policy" "yunion.io/x/onecloud/pkg/cloudcommon/validators" + "yunion.io/x/onecloud/pkg/compute/options" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/util/rbacutils" @@ -509,6 +510,12 @@ func (self *SElasticip) SyncInstanceWithCloudEip(ctx context.Context, userCred m func (self *SElasticip) SyncWithCloudEip(ctx context.Context, userCred mcclient.TokenCredential, provider *SCloudprovider, ext cloudprovider.ICloudEIP, syncOwnerId mcclient.IIdentityProvider) error { diff, err := db.UpdateWithLock(ctx, self, func() error { + if options.Options.EnableSyncName { + newName, _ := db.GenerateAlterName(self, ext.GetName()) + if len(newName) > 0 { + self.Name = newName + } + } if bandwidth := ext.GetBandwidth(); bandwidth != 0 { self.Bandwidth = bandwidth } diff --git a/pkg/compute/models/filesystem.go b/pkg/compute/models/filesystem.go index a29547b5d5..e53798a20f 100644 --- a/pkg/compute/models/filesystem.go +++ b/pkg/compute/models/filesystem.go @@ -446,6 +446,13 @@ func (self *SFileSystem) SyncAllWithCloudFileSystem(ctx context.Context, userCre func (self *SFileSystem) SyncWithCloudFileSystem(ctx context.Context, userCred mcclient.TokenCredential, fs cloudprovider.ICloudFileSystem) error { diff, err := db.Update(self, func() error { + if options.Options.EnableSyncName { + newName, _ := db.GenerateAlterName(self, fs.GetName()) + if len(newName) > 0 { + self.Name = newName + } + } + self.Status = fs.GetStatus() self.StorageType = fs.GetStorageType() self.Protocol = fs.GetProtocol() diff --git a/pkg/compute/models/guests.go b/pkg/compute/models/guests.go index b11168620d..af00b8b133 100644 --- a/pkg/compute/models/guests.go +++ b/pkg/compute/models/guests.go @@ -2761,7 +2761,7 @@ func (self *SGuest) syncRemoveCloudVM(ctx context.Context, userCred mcclient.Tok return errors.Wrap(err, "GetIVMById") } - if options.SyncPurgeRemovedResources.Contains(self.Keyword()) { + if options.Options.EnableSyncPurge { log.Debugf("purge removed resource %s", self.Name) err := self.purge(ctx, userCred) if err != nil { @@ -2845,7 +2845,7 @@ func (self *SGuest) syncWithCloudVM(ctx context.Context, userCred mcclient.Token } diff, err := db.UpdateWithLock(ctx, self, func() error { - if options.NameSyncResources.Contains(self.Keyword()) && !recycle { + if options.Options.EnableSyncName && !recycle { newName, _ := db.GenerateAlterName(self, extVM.GetName()) if len(newName) > 0 && newName != self.Name { self.Name = newName @@ -3024,7 +3024,7 @@ func (manager *SGuestManager) newCloudVM(ctx context.Context, userCred mcclient. lockman.LockRawObject(ctx, manager.Keyword(), "name") defer lockman.ReleaseRawObject(ctx, manager.Keyword(), "name") - if options.NameSyncResources.Contains(manager.Keyword()) { + if options.Options.EnableSyncName { guest.Name = extVM.GetName() } else { newName, err := db.GenerateName(ctx, manager, syncOwnerId, extVM.GetName()) diff --git a/pkg/compute/models/inter_vpc_network.go b/pkg/compute/models/inter_vpc_network.go index 7795c9ae5f..a434eb0246 100644 --- a/pkg/compute/models/inter_vpc_network.go +++ b/pkg/compute/models/inter_vpc_network.go @@ -33,6 +33,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/db/lockman" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" "yunion.io/x/onecloud/pkg/cloudcommon/validators" + "yunion.io/x/onecloud/pkg/compute/options" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/util/stringutils2" @@ -414,7 +415,9 @@ func (self *SInterVpcNetwork) SyncWithCloudInterVpcNetwork(ctx context.Context, _, err := db.Update(self, func() error { self.ExternalId = ext.GetGlobalId() self.Status = ext.GetStatus() - self.Name = ext.GetName() + if options.Options.EnableSyncName { + self.Name = ext.GetName() + } return nil }) if err != nil { diff --git a/pkg/compute/models/ipv6_gateways.go b/pkg/compute/models/ipv6_gateways.go index f562dbe524..b617a34c51 100644 --- a/pkg/compute/models/ipv6_gateways.go +++ b/pkg/compute/models/ipv6_gateways.go @@ -30,6 +30,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/db/lockman" "yunion.io/x/onecloud/pkg/cloudcommon/notifyclient" "yunion.io/x/onecloud/pkg/cloudcommon/policy" + "yunion.io/x/onecloud/pkg/compute/options" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/util/stringutils2" @@ -146,6 +147,13 @@ func (self *SIPv6Gateway) syncRemoveCloudIPv6Gateway(ctx context.Context, userCr func (self *SIPv6Gateway) SyncWithCloudIPv6Gateway(ctx context.Context, userCred mcclient.TokenCredential, ext cloudprovider.ICloudIPv6Gateway, provider *SCloudprovider) error { diff, err := db.Update(self, func() error { + if options.Options.EnableSyncName { + newName, _ := db.GenerateAlterName(self, ext.GetName()) + if len(newName) > 0 { + self.Name = newName + } + } + self.Status = ext.GetStatus() self.InstanceType = ext.GetInstanceType() return nil diff --git a/pkg/compute/models/kafka.go b/pkg/compute/models/kafka.go index dbf7033e5d..38b81c07c2 100644 --- a/pkg/compute/models/kafka.go +++ b/pkg/compute/models/kafka.go @@ -34,6 +34,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/db/lockman" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" "yunion.io/x/onecloud/pkg/cloudcommon/notifyclient" + "yunion.io/x/onecloud/pkg/compute/options" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/util/rbacutils" @@ -408,7 +409,13 @@ func (self *SKafka) syncRemoveCloudKafka(ctx context.Context, userCred mcclient. // 同步资源属性 func (self *SKafka) SyncWithCloudKafka(ctx context.Context, userCred mcclient.TokenCredential, ext cloudprovider.ICloudKafka) error { diff, err := db.UpdateWithLock(ctx, self, func() error { - self.ExternalId = ext.GetGlobalId() + if options.Options.EnableSyncName { + newName, _ := db.GenerateAlterName(self, ext.GetName()) + if len(newName) > 0 { + self.Name = newName + } + } + self.Status = ext.GetStatus() self.InstanceType = ext.GetInstanceType() self.Version = ext.GetVersion() diff --git a/pkg/compute/models/loadbalancercachedacls.go b/pkg/compute/models/loadbalancercachedacls.go index 169a530aad..9a2557cdaa 100644 --- a/pkg/compute/models/loadbalancercachedacls.go +++ b/pkg/compute/models/loadbalancercachedacls.go @@ -31,6 +31,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudcommon/db/lockman" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" + "yunion.io/x/onecloud/pkg/compute/options" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/util/stringutils2" @@ -218,7 +219,7 @@ func (self *SCachedLoadbalancerAcl) syncRemoveCloudLoadbalanceAcl(ctx context.Co func (acl *SCachedLoadbalancerAcl) SyncWithCloudLoadbalancerAcl(ctx context.Context, userCred mcclient.TokenCredential, extAcl cloudprovider.ICloudLoadbalancerAcl, projectId mcclient.IIdentityProvider) error { diff, err := db.UpdateWithLock(ctx, acl, func() error { // todo: 华为云acl没有name字段应此不需要同步名称 - if !utils.IsInStringArray(acl.GetProviderName(), []string{api.CLOUD_PROVIDER_HUAWEI, api.CLOUD_PROVIDER_HCSO, api.CLOUD_PROVIDER_HCS}) { + if options.Options.EnableSyncName && !utils.IsInStringArray(acl.GetProviderName(), []string{api.CLOUD_PROVIDER_HUAWEI, api.CLOUD_PROVIDER_HCSO, api.CLOUD_PROVIDER_HCS}) { acl.Name = extAcl.GetName() } return nil diff --git a/pkg/compute/models/loadbalancers.go b/pkg/compute/models/loadbalancers.go index 9827b97897..22bc43b57a 100644 --- a/pkg/compute/models/loadbalancers.go +++ b/pkg/compute/models/loadbalancers.go @@ -42,6 +42,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/notifyclient" "yunion.io/x/onecloud/pkg/cloudcommon/policy" "yunion.io/x/onecloud/pkg/cloudcommon/validators" + "yunion.io/x/onecloud/pkg/compute/options" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/util/rbacutils" @@ -1297,10 +1298,16 @@ func (lb *SLoadbalancer) syncWithCloudLoadbalancer(ctx context.Context, userCred defer lockman.ReleaseObject(ctx, lb) diff, err := db.Update(lb, func() error { + if options.Options.EnableSyncName { + newName, _ := db.GenerateAlterName(lb, ext.GetName()) + if len(newName) > 0 { + lb.Name = newName + } + } + lb.Address = ext.GetAddress() lb.AddressType = ext.GetAddressType() lb.Status = ext.GetStatus() - // lb.Name = ext.GetName() lb.LoadbalancerSpec = ext.GetLoadbalancerSpec() lb.EgressMbps = ext.GetEgressMbps() lb.ChargeType = ext.GetChargeType() diff --git a/pkg/compute/models/modelarts_pools.go b/pkg/compute/models/modelarts_pools.go index 405a42f0a9..ccd2a2c17c 100644 --- a/pkg/compute/models/modelarts_pools.go +++ b/pkg/compute/models/modelarts_pools.go @@ -32,6 +32,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/db/lockman" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" "yunion.io/x/onecloud/pkg/cloudcommon/validators" + "yunion.io/x/onecloud/pkg/compute/options" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/util/stringutils2" @@ -425,6 +426,13 @@ func (self *SModelartsPool) SyncWithCloudModelartsPool(ctx context.Context, user return errors.Wrapf(err, "get modelartsPoolSku") } diff, err := db.UpdateWithLock(ctx, self, func() error { + if options.Options.EnableSyncName { + newName, _ := db.GenerateAlterName(self, ext.GetName()) + if len(newName) > 0 { + self.Name = newName + } + } + self.Status = ext.GetStatus() self.BillingType = ext.GetBillingType() self.InstanceType = instanceName diff --git a/pkg/compute/models/mongodb.go b/pkg/compute/models/mongodb.go index 9a5a5bd9c5..b963b8a69a 100644 --- a/pkg/compute/models/mongodb.go +++ b/pkg/compute/models/mongodb.go @@ -36,6 +36,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/db/quotas" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" "yunion.io/x/onecloud/pkg/cloudcommon/notifyclient" + "yunion.io/x/onecloud/pkg/compute/options" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/util/rbacutils" @@ -490,7 +491,13 @@ func (self *SMongoDB) SyncAllWithCloudMongoDB(ctx context.Context, userCred mccl func (self *SMongoDB) SyncWithCloudMongoDB(ctx context.Context, userCred mcclient.TokenCredential, ext cloudprovider.ICloudMongoDB) error { diff, err := db.UpdateWithLock(ctx, self, func() error { - self.ExternalId = ext.GetGlobalId() + if options.Options.EnableSyncName { + newName, _ := db.GenerateAlterName(self, ext.GetName()) + if len(newName) > 0 { + self.Name = newName + } + } + self.IpAddr = ext.GetIpAddr() self.VcpuCount = ext.GetVcpuCount() self.VmemSizeMb = ext.GetVmemSizeMb() diff --git a/pkg/compute/models/natgateways.go b/pkg/compute/models/natgateways.go index 137fdb3d60..d2121ef79a 100644 --- a/pkg/compute/models/natgateways.go +++ b/pkg/compute/models/natgateways.go @@ -478,6 +478,13 @@ func (self *SNatGateway) ValidateDeleteCondition(ctx context.Context, info jsonu func (self *SNatGateway) SyncWithCloudNatGateway(ctx context.Context, userCred mcclient.TokenCredential, provider *SCloudprovider, extNat cloudprovider.ICloudNatGateway) error { diff, err := db.UpdateWithLock(ctx, self, func() error { + if options.Options.EnableSyncName { + newName, _ := db.GenerateAlterName(self, extNat.GetName()) + if len(newName) > 0 { + self.Name = newName + } + } + self.Status = extNat.GetStatus() self.NatSpec = extNat.GetNatSpec() self.BandwidthMb = extNat.GetBandwidthMb() diff --git a/pkg/compute/models/networks.go b/pkg/compute/models/networks.go index 6a6f1422dc..494a9d3e3b 100644 --- a/pkg/compute/models/networks.go +++ b/pkg/compute/models/networks.go @@ -636,7 +636,13 @@ func (self *SNetwork) syncRemoveCloudNetwork(ctx context.Context, userCred mccli func (self *SNetwork) SyncWithCloudNetwork(ctx context.Context, userCred mcclient.TokenCredential, extNet cloudprovider.ICloudNetwork, syncOwnerId mcclient.IIdentityProvider, provider *SCloudprovider) error { vpc, _ := self.GetVpc() diff, err := db.UpdateWithLock(ctx, self, func() error { - extNet.Refresh() + if options.Options.EnableSyncName { + newName, _ := db.GenerateAlterName(self, extNet.GetName()) + if len(newName) > 0 { + self.Name = newName + } + } + self.Status = extNet.GetStatus() self.GuestIpStart = extNet.GetIpStart() self.GuestIpEnd = extNet.GetIpEnd() diff --git a/pkg/compute/models/secgroupcache.go b/pkg/compute/models/secgroupcache.go index dbdbaa5cba..56501e1ee9 100644 --- a/pkg/compute/models/secgroupcache.go +++ b/pkg/compute/models/secgroupcache.go @@ -34,6 +34,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/db/lockman" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" "yunion.io/x/onecloud/pkg/cloudcommon/notifyclient" + "yunion.io/x/onecloud/pkg/compute/options" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/util/stringutils2" @@ -372,7 +373,9 @@ func (self *SSecurityGroupCache) GetSecgroup() (*SSecurityGroup, error) { func (self *SSecurityGroupCache) SyncBaseInfo(ctx context.Context, userCred mcclient.TokenCredential, ext cloudprovider.ICloudSecurityGroup) error { _, err := db.Update(self, func() error { self.Status = api.SECGROUP_CACHE_STATUS_READY - self.Name = ext.GetName() + if options.Options.EnableSyncName { + self.Name = ext.GetName() + } self.Description = ext.GetDescription() self.ExternalProjectId = ext.GetProjectId() references, err := ext.GetReferences() diff --git a/pkg/compute/models/snapshots.go b/pkg/compute/models/snapshots.go index 7967fe157e..af107bdd7b 100644 --- a/pkg/compute/models/snapshots.go +++ b/pkg/compute/models/snapshots.go @@ -885,7 +885,12 @@ func (self *SSnapshot) syncRemoveCloudSnapshot(ctx context.Context, userCred mcc // Only sync snapshot status func (self *SSnapshot) SyncWithCloudSnapshot(ctx context.Context, userCred mcclient.TokenCredential, ext cloudprovider.ICloudSnapshot, syncOwnerId mcclient.IIdentityProvider, region *SCloudregion) error { diff, err := db.UpdateWithLock(ctx, self, func() error { - // self.Name = ext.GetName() + if options.Options.EnableSyncName { + newName, _ := db.GenerateAlterName(self, ext.GetName()) + if len(newName) > 0 { + self.Name = newName + } + } self.Status = ext.GetStatus() self.DiskType = ext.GetDiskType() self.Size = int(ext.GetSizeMb()) diff --git a/pkg/compute/models/tablestores.go b/pkg/compute/models/tablestores.go index c45b213955..475d5d6fa2 100644 --- a/pkg/compute/models/tablestores.go +++ b/pkg/compute/models/tablestores.go @@ -30,6 +30,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/db/lockman" "yunion.io/x/onecloud/pkg/cloudcommon/notifyclient" "yunion.io/x/onecloud/pkg/cloudcommon/policy" + "yunion.io/x/onecloud/pkg/compute/options" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/util/stringutils2" @@ -145,6 +146,13 @@ func (self *STablestore) syncRemoveCloudTablestore(ctx context.Context, userCred func (self *STablestore) SyncWithCloudTablestore(ctx context.Context, userCred mcclient.TokenCredential, ext cloudprovider.ICloudTablestore, provider *SCloudprovider) error { diff, err := db.Update(self, func() error { + if options.Options.EnableSyncName { + newName, _ := db.GenerateAlterName(self, ext.GetName()) + if len(newName) > 0 { + self.Name = newName + } + } + self.Status = ext.GetStatus() return nil }) diff --git a/pkg/compute/models/vpcs.go b/pkg/compute/models/vpcs.go index 88d51de134..bd48a99a97 100644 --- a/pkg/compute/models/vpcs.go +++ b/pkg/compute/models/vpcs.go @@ -523,8 +523,12 @@ func (self *SVpc) syncRemoveCloudVpc(ctx context.Context, userCred mcclient.Toke func (self *SVpc) SyncWithCloudVpc(ctx context.Context, userCred mcclient.TokenCredential, extVPC cloudprovider.ICloudVpc, provider *SCloudprovider) error { diff, err := db.UpdateWithLock(ctx, self, func() error { - extVPC.Refresh() - // self.Name = extVPC.GetName() + if options.Options.EnableSyncName { + newName, _ := db.GenerateAlterName(self, extVPC.GetName()) + if len(newName) > 0 { + self.Name = newName + } + } self.Status = extVPC.GetStatus() self.CidrBlock = extVPC.GetCidrBlock() self.IsDefault = extVPC.GetIsDefault() diff --git a/pkg/compute/models/waf_ipset_caches.go b/pkg/compute/models/waf_ipset_caches.go index c483400f57..c3dab29e91 100644 --- a/pkg/compute/models/waf_ipset_caches.go +++ b/pkg/compute/models/waf_ipset_caches.go @@ -28,6 +28,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudcommon/db/lockman" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" + "yunion.io/x/onecloud/pkg/compute/options" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/util/stringutils2" @@ -248,7 +249,9 @@ func (self *SWafIPSetCache) GetICloudWafIPSet(ctx context.Context) (cloudprovide func (self *SWafIPSetCache) syncWithCloudIPSet(ctx context.Context, userCred mcclient.TokenCredential, ext cloudprovider.ICloudWafIPSet) error { _, err := db.Update(self, func() error { self.Status = api.WAF_IPSET_STATUS_AVAILABLE - self.Name = ext.GetName() + if options.Options.EnableSyncName { + self.Name = ext.GetName() + } self.Description = ext.GetDesc() return nil }) diff --git a/pkg/compute/models/waf_regexset_caches.go b/pkg/compute/models/waf_regexset_caches.go index 699bf87a07..45451d6089 100644 --- a/pkg/compute/models/waf_regexset_caches.go +++ b/pkg/compute/models/waf_regexset_caches.go @@ -28,6 +28,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudcommon/db/lockman" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" + "yunion.io/x/onecloud/pkg/compute/options" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/util/stringutils2" @@ -248,7 +249,9 @@ func (self *SWafRegexSetCache) GetICloudWafRegexSet(ctx context.Context) (cloudp func (self *SWafRegexSetCache) syncWithCloudRegexSet(ctx context.Context, userCred mcclient.TokenCredential, ext cloudprovider.ICloudWafRegexSet) error { _, err := db.Update(self, func() error { self.Status = api.WAF_IPSET_STATUS_AVAILABLE - self.Name = ext.GetName() + if options.Options.EnableSyncName { + self.Name = ext.GetName() + } self.Description = ext.GetDesc() return nil }) diff --git a/pkg/compute/options/namesync.go b/pkg/compute/options/namesync.go deleted file mode 100644 index 88abfd44fa..0000000000 --- a/pkg/compute/options/namesync.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2019 Yunion -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package options - -import ( - "yunion.io/x/log" - - "yunion.io/x/onecloud/pkg/util/stringutils2" -) - -var ( - NameSyncResources stringutils2.SSortedStrings - - SyncPurgeRemovedResources stringutils2.SSortedStrings -) - -func InitNameSyncResources() { - NameSyncResources = stringutils2.NewSortedStrings(Options.NameSyncResources) - log.Infof("NameSyncResources: %s", NameSyncResources) - - SyncPurgeRemovedResources = stringutils2.NewSortedStrings(Options.SyncPurgeRemovedResources) - log.Infof("SyncPurgeRemovedResources: %s", SyncPurgeRemovedResources) -} diff --git a/pkg/compute/options/options.go b/pkg/compute/options/options.go index 712e12ba44..152497a2e2 100644 --- a/pkg/compute/options/options.go +++ b/pkg/compute/options/options.go @@ -141,9 +141,9 @@ type ComputeOptions struct { DefaultSyncIntervalSeconds int `help:"minimal synchronization interval, default 15 minutes" default:"900"` MaxCloudAccountErrorCount int `help:"maximal consecutive error count allow for a cloud account" default:"5"` - NameSyncResources []string `help:"resources that need synchronization of name"` + EnableSyncName bool `help:"enable name sync" default:"true"` - SyncPurgeRemovedResources []string `help:"resources that shoud be purged immediately if found removed" default:"server"` + EnableSyncPurge bool `help:"resources that shoud be purged immediately if found removed" default:"true"` DisconnectedCloudAccountRetryProbeIntervalHours int `help:"interval to wait to probe status of a disconnected cloud account" default:"2"` diff --git a/pkg/compute/service/service.go b/pkg/compute/service/service.go index 92a7184cce..887e362bc5 100644 --- a/pkg/compute/service/service.go +++ b/pkg/compute/service/service.go @@ -100,8 +100,6 @@ func StartService() { db.EnsureAppSyncDB(app, dbOpts, models.InitDB) defer cloudcommon.CloseDB() - options.InitNameSyncResources() - setInfluxdbRetentionPolicy() models.InitSyncWorkers(options.Options.CloudSyncWorkerCount)