diff --git a/pkg/compute/models/cloudaccounts.go b/pkg/compute/models/cloudaccounts.go index eab1fccb52..abd98e083b 100644 --- a/pkg/compute/models/cloudaccounts.go +++ b/pkg/compute/models/cloudaccounts.go @@ -2876,7 +2876,7 @@ func (acnt *SCloudaccount) GetExternalProjectsByProjectIdOrName(projectId, name sqlchemy.Equals(q.Field("name"), name), sqlchemy.Equals(q.Field("tenant_id"), projectId), ), - ) + ).Desc("priority") err := db.FetchModelObjects(ExternalProjectManager, q, &projects) if err != nil { return nil, errors.Wrap(err, "db.FetchModelObjects") @@ -2996,7 +2996,7 @@ func GetAvailableExternalProject(local *db.STenant, projects []SExternalProject) return ret } -// 若本地项目映射了多个云上项目,则在云上随机找一个项目 +// 若本地项目映射了多个云上项目,则在根据优先级找优先级最大的云上项目 // 若本地项目没有映射云上任何项目,则在云上新建一个同名项目 // 若本地项目a映射云上项目b,但b项目不可用,则看云上是否有a项目,有则直接使用,若没有则在云上创建a-1, a-2类似项目 func (acnt *SCloudaccount) SyncProject(ctx context.Context, userCred mcclient.TokenCredential, projectId string) (string, error) {