Merge pull request #3478 from tb365/bugfix/tb-bugfix-1106

region sync fix
This commit is contained in:
yunion-ci-robot
2019-11-07 15:07:16 +08:00
committed by GitHub
9 changed files with 64 additions and 3 deletions
+11
View File
@@ -55,6 +55,17 @@ const (
ONECLOUD_BRAND_ONECLOUD = "OneCloud"
)
const (
CLOUD_ACCESS_ENV_AWS_GLOBAL = CLOUD_PROVIDER_AWS + "-int"
CLOUD_ACCESS_ENV_AWS_CHINA = CLOUD_PROVIDER_AWS
CLOUD_ACCESS_ENV_AZURE_GLOBAL = CLOUD_PROVIDER_AZURE + "-int"
CLOUD_ACCESS_ENV_AZURE_GERMAN = CLOUD_PROVIDER_AZURE + "-de"
CLOUD_ACCESS_ENV_AZURE_US_GOVERNMENT = CLOUD_PROVIDER_AZURE + "-us-gov"
CLOUD_ACCESS_ENV_AZURE_CHINA = CLOUD_PROVIDER_AZURE
CLOUD_ACCESS_ENV_HUAWEI_GLOBAL = CLOUD_PROVIDER_HUAWEI + "-int"
CLOUD_ACCESS_ENV_HUAWEI_CHINA = CLOUD_PROVIDER_HUAWEI
)
var (
CLOUD_PROVIDER_VALID_STATUS = []string{CLOUD_PROVIDER_CONNECTED}
CLOUD_PROVIDER_VALID_HEALTH_STATUS = []string{CLOUD_PROVIDER_HEALTH_NORMAL, CLOUD_PROVIDER_HEALTH_NO_PERMISSION}
+11
View File
@@ -357,6 +357,17 @@ func (self *SAwsClient) GetIProjects() ([]cloudprovider.ICloudProject, error) {
return nil, cloudprovider.ErrNotImplemented
}
func (self *SAwsClient) GetAccessEnv() string {
switch self.accessUrl {
case AWS_INTERNATIONAL_CLOUDENV:
return api.CLOUD_ACCESS_ENV_AWS_GLOBAL
case AWS_CHINA_CLOUDENV:
return api.CLOUD_ACCESS_ENV_AWS_CHINA
default:
return api.CLOUD_ACCESS_ENV_AWS_GLOBAL
}
}
func jsonRequest(cli *client.Client, apiName string, params map[string]string, retval interface{}, debug bool) error {
op := &request.Operation{
Name: apiName,
+4
View File
@@ -148,3 +148,7 @@ func (self *SAwsProvider) GetStorageClasses(regionId string) []string {
"INTELLIGENT_TIERING",
}
}
func (self *SAwsProvider) GetCloudRegionExternalIdPrefix() string {
return self.client.GetAccessEnv() + "/"
}
+1 -1
View File
@@ -405,7 +405,7 @@ func (self *SRegion) GetName() string {
}
func (self *SRegion) GetGlobalId() string {
return fmt.Sprintf("%s/%s", CLOUD_PROVIDER_AWS, self.RegionId)
return fmt.Sprintf("%s/%s", self.client.GetAccessEnv(), self.RegionId)
}
func (self *SRegion) GetStatus() string {
+16
View File
@@ -929,3 +929,19 @@ func (self *SAzureClient) GetStorageClasses(regionExtId string) ([]string, error
}
return ret, nil
}
func (self *SAzureClient) GetAccessEnv() string {
env, _ := azureenv.EnvironmentFromName(self.envName)
switch env.Name {
case azureenv.PublicCloud.Name:
return api.CLOUD_ACCESS_ENV_AZURE_GLOBAL
case azureenv.ChinaCloud.Name:
return api.CLOUD_ACCESS_ENV_AZURE_CHINA
case azureenv.GermanCloud.Name:
return api.CLOUD_ACCESS_ENV_AZURE_GERMAN
case azureenv.USGovernmentCloud.Name:
return api.CLOUD_ACCESS_ENV_AZURE_US_GOVERNMENT
default:
return api.CLOUD_ACCESS_ENV_AZURE_CHINA
}
}
@@ -174,3 +174,7 @@ func (self *SAzureProvider) GetStorageClasses(regionId string) []string {
}
return sc
}
func (self *SAzureProvider) GetCloudRegionExternalIdPrefix() string {
return self.client.GetAccessEnv() + "/"
}
+1 -1
View File
@@ -130,7 +130,7 @@ func (self *SRegion) GetName() string {
}
func (self *SRegion) GetGlobalId() string {
return fmt.Sprintf("%s/%s", CLOUD_PROVIDER_AZURE, self.Name)
return fmt.Sprintf("%s/%s", self.client.GetAccessEnv(), self.Name)
}
func (self *SRegion) IsEmulated() bool {
+15
View File
@@ -41,6 +41,9 @@ const (
CLOUD_PROVIDER_HUAWEI = api.CLOUD_PROVIDER_HUAWEI
CLOUD_PROVIDER_HUAWEI_CN = "华为云"
HUAWEI_INTERNATIONAL_CLOUDENV = "InternationalCloud"
HUAWEI_CHINA_CLOUDENV = "ChinaCloud"
HUAWEI_DEFAULT_REGION = "cn-north-1"
HUAWEI_API_VERSION = "2018-12-25"
)
@@ -75,6 +78,7 @@ func NewHuaweiClient(providerId, providerName, accessurl, accessKey, secret, pro
providerId: providerId,
providerName: providerName,
projectId: projectId,
accessUrl: accessurl,
accessKey: accessKey,
secret: secret,
debug: debug,
@@ -399,3 +403,14 @@ func (self *SHuaweiClient) queryDomainBalance(domainId string) (float64, error)
func (self *SHuaweiClient) GetVersion() string {
return HUAWEI_API_VERSION
}
func (self *SHuaweiClient) GetAccessEnv() string {
switch self.accessUrl {
case HUAWEI_INTERNATIONAL_CLOUDENV:
return api.CLOUD_ACCESS_ENV_HUAWEI_GLOBAL
case HUAWEI_CHINA_CLOUDENV:
return api.CLOUD_ACCESS_ENV_HUAWEI_CHINA
default:
return api.CLOUD_ACCESS_ENV_HUAWEI_GLOBAL
}
}
+1 -1
View File
@@ -353,7 +353,7 @@ func (self *SRegion) GetName() string {
}
func (self *SRegion) GetGlobalId() string {
return fmt.Sprintf("%s/%s", CLOUD_PROVIDER_HUAWEI, self.ID)
return fmt.Sprintf("%s/%s", self.client.GetAccessEnv(), self.ID)
}
func (self *SRegion) GetStatus() string {