Merge pull request #12362 from ioito/hotfix/qx-sync-by-capability

fix(region): sync resource by capability with read only
This commit is contained in:
Zexi Li
2021-10-08 12:07:59 +08:00
committed by GitHub
2 changed files with 38 additions and 14 deletions
+33 -9
View File
@@ -298,40 +298,64 @@ type ICloudProvider interface {
GetICloudCDNDomainByName(name string) (ICloudCDNDomain, error)
}
func IsSupportCapability(prod ICloudProvider, capa string) bool {
return utils.IsInStringArray(capa, prod.GetCapabilities()) || utils.IsInStringArray(capa+READ_ONLY_SUFFIX, prod.GetCapabilities())
}
func IsSupportProject(prod ICloudProvider) bool {
return utils.IsInStringArray(CLOUD_CAPABILITY_PROJECT, prod.GetCapabilities())
return IsSupportCapability(prod, CLOUD_CAPABILITY_PROJECT)
}
func IsSupportDnsZone(prod ICloudProvider) bool {
return utils.IsInStringArray(CLOUD_CAPABILITY_DNSZONE, prod.GetCapabilities())
return IsSupportCapability(prod, CLOUD_CAPABILITY_DNSZONE)
}
func IsSupportInterVpcNetwork(prod ICloudProvider) bool {
return utils.IsInStringArray(CLOUD_CAPABILITY_INTERVPCNETWORK, prod.GetCapabilities())
return IsSupportCapability(prod, CLOUD_CAPABILITY_INTERVPCNETWORK)
}
func IsSupportCompute(prod ICloudProvider) bool {
return utils.IsInStringArray(CLOUD_CAPABILITY_COMPUTE, prod.GetCapabilities())
return IsSupportCapability(prod, CLOUD_CAPABILITY_COMPUTE)
}
func IsSupportLoadbalancer(prod ICloudProvider) bool {
return utils.IsInStringArray(CLOUD_CAPABILITY_LOADBALANCER, prod.GetCapabilities())
return IsSupportCapability(prod, CLOUD_CAPABILITY_LOADBALANCER)
}
func IsSupportObjectstore(prod ICloudProvider) bool {
return utils.IsInStringArray(CLOUD_CAPABILITY_OBJECTSTORE, prod.GetCapabilities())
return IsSupportCapability(prod, CLOUD_CAPABILITY_OBJECTSTORE)
}
func IsSupportRds(prod ICloudProvider) bool {
return utils.IsInStringArray(CLOUD_CAPABILITY_RDS, prod.GetCapabilities())
return IsSupportCapability(prod, CLOUD_CAPABILITY_RDS)
}
func IsSupportNAT(prod ICloudProvider) bool {
return utils.IsInStringArray(CLOUD_CAPABILITY_NAT, prod.GetCapabilities())
return IsSupportCapability(prod, CLOUD_CAPABILITY_NAT)
}
func IsSupportElasticCache(prod ICloudProvider) bool {
return utils.IsInStringArray(CLOUD_CAPABILITY_CACHE, prod.GetCapabilities())
return IsSupportCapability(prod, CLOUD_CAPABILITY_CACHE)
}
func IsSupportWaf(prod ICloudProvider) bool {
return IsSupportCapability(prod, CLOUD_CAPABILITY_WAF)
}
func IsSupportMongoDB(prod ICloudProvider) bool {
return IsSupportCapability(prod, CLOUD_CAPABILITY_MONGO_DB)
}
func IsSupportElasticSearch(prod ICloudProvider) bool {
return IsSupportCapability(prod, CLOUD_CAPABILITY_ES)
}
func IsSupportKafka(prod ICloudProvider) bool {
return IsSupportCapability(prod, CLOUD_CAPABILITY_KAFKA)
}
func IsSupportApp(prod ICloudProvider) bool {
return IsSupportCapability(prod, CLOUD_CAPABILITY_APP)
}
var providerTable map[string]ICloudProviderFactory
+5 -5
View File
@@ -1697,25 +1697,25 @@ func syncPublicCloudProviderInfo(
syncElasticcaches(ctx, userCred, syncResults, provider, localRegion, remoteRegion, syncRange)
}
if utils.IsInStringArray(cloudprovider.CLOUD_CAPABILITY_WAF, driver.GetCapabilities()) {
if cloudprovider.IsSupportWaf(driver) {
syncWafIPSets(ctx, userCred, syncResults, provider, localRegion, remoteRegion)
syncWafRegexSets(ctx, userCred, syncResults, provider, localRegion, remoteRegion)
syncWafInstances(ctx, userCred, syncResults, provider, localRegion, remoteRegion)
}
if utils.IsInStringArray(cloudprovider.CLOUD_CAPABILITY_MONGO_DB, driver.GetCapabilities()) {
if cloudprovider.IsSupportMongoDB(driver) {
syncMongoDBs(ctx, userCred, syncResults, provider, localRegion, remoteRegion)
}
if utils.IsInStringArray(cloudprovider.CLOUD_CAPABILITY_ES, driver.GetCapabilities()) {
if cloudprovider.IsSupportElasticSearch(driver) {
syncElasticSearchs(ctx, userCred, syncResults, provider, localRegion, remoteRegion)
}
if utils.IsInStringArray(cloudprovider.CLOUD_CAPABILITY_KAFKA, driver.GetCapabilities()) {
if cloudprovider.IsSupportKafka(driver) {
syncKafkas(ctx, userCred, syncResults, provider, localRegion, remoteRegion)
}
if utils.IsInStringArray(cloudprovider.CLOUD_CAPABILITY_APP, driver.GetCapabilities()) {
if cloudprovider.IsSupportApp(driver) {
syncApps(ctx, userCred, syncResults, provider, localRegion, remoteRegion)
}