diff --git a/pkg/multicloud/huawei/huawei.go b/pkg/multicloud/huawei/huawei.go index 38f656f9fc..9645f0be6c 100644 --- a/pkg/multicloud/huawei/huawei.go +++ b/pkg/multicloud/huawei/huawei.go @@ -206,17 +206,21 @@ func (self *SHuaweiClient) fetchRegions() error { regionId := strings.Split(project.Name, "_")[0] for _, region := range self.regions { - if region.ID == regionId { + if region.ID == regionId || project.Name == region.ID { filtedRegions = append(filtedRegions, region) } - } - if regionId == project.Name { - self.isMainProject = true + if project.Name == region.ID { + self.isMainProject = true + } } } else { filtedRegions = self.regions } + if len(filtedRegions) == 0 { + return errors.Wrapf(cloudprovider.ErrNotFound, "empty regions") + } + self.iregions = make([]cloudprovider.ICloudRegion, len(filtedRegions)) for i := 0; i < len(filtedRegions); i += 1 { filtedRegions[i].client = self diff --git a/pkg/multicloud/huawei/region.go b/pkg/multicloud/huawei/region.go index 4d650a2c54..5a51bb1b75 100644 --- a/pkg/multicloud/huawei/region.go +++ b/pkg/multicloud/huawei/region.go @@ -74,9 +74,8 @@ func (self *SRegion) getECSClient() (*client.Client, error) { } regionId := strings.Split(project.Name, "_")[0] - if regionId != self.ID { - // log.Debugf("project %s not in region %s", self.client.projectId, self.ID) - return nil, errors.Error("region and project mismatch") + if regionId != self.ID && project.Name != self.ID { + return nil, errors.Errorf("region %s and project %s mismatch", self.ID, project.Name) } }