fix(region): prepare regions by prefix (#19873)

This commit is contained in:
屈轩
2024-04-03 10:15:15 +08:00
committed by GitHub
parent 164ea30840
commit f2f78a10ed
2 changed files with 4 additions and 2 deletions
+1 -1
View File
@@ -1541,7 +1541,7 @@ func (provider *SCloudprovider) prepareCloudproviderRegions(ctx context.Context,
return []SCloudproviderregion{*cpr}, nil
}
iregions := driver.GetIRegions()
externalIdPrefix := strings.TrimSuffix(driver.GetCloudRegionExternalIdPrefix(), "/")
externalIdPrefix := driver.GetCloudRegionExternalIdPrefix()
_, _, cprs, result := CloudregionManager.SyncRegions(ctx, userCred, provider, externalIdPrefix, iregions)
if result.IsError() {
log.Errorf("syncRegion fail %s", result.Result())
+3 -1
View File
@@ -17,6 +17,7 @@ package models
import (
"context"
"database/sql"
"strings"
"time"
"yunion.io/x/cloudmux/pkg/cloudprovider"
@@ -471,11 +472,12 @@ func (self *SCloudregion) GetServerSkus() ([]SServerSku, error) {
}
func (self *SCloudprovider) GetRegionByExternalIdPrefix(prefix string) ([]SCloudregion, error) {
prefix = strings.TrimSuffix(prefix, "/")
regions := make([]SCloudregion, 0)
q := CloudregionManager.Query()
q = q.Filter(
sqlchemy.OR(
sqlchemy.Startswith(q.Field("external_id"), prefix),
sqlchemy.Startswith(q.Field("external_id"), prefix+"/"),
sqlchemy.Equals(q.Field("external_id"), prefix),
),
)