fix(region): external project (#17996)

This commit is contained in:
屈轩
2023-09-12 18:54:14 +08:00
committed by GitHub
parent be4b797081
commit d1fbe1f4d8
6 changed files with 41 additions and 12 deletions
+1
View File
@@ -26,6 +26,7 @@ type SKeystoneCacheObjectManager struct {
type SKeystoneCacheObject struct {
SStandaloneResourceBase
SPendingDeletedBase
DomainId string `width:"128" charset:"ascii" nullable:"true"`
Domain string `width:"128" charset:"utf8" nullable:"true"`
+12
View File
@@ -350,6 +350,10 @@ func (manager *STenantCacheManager) Save(ctx context.Context, item SCachedTenant
if obj.Id == item.Id && obj.Name == item.Name && obj.Domain == item.ProjectDomain && obj.DomainId == item.DomainId {
Update(obj, func() error {
obj.LastCheck = now
obj.PendingDeleted = item.PendingDeleted
if obj.PendingDeleted {
obj.PendingDeletedAt = item.PendingDeletedAt
}
return nil
})
if saveMeta {
@@ -363,6 +367,10 @@ func (manager *STenantCacheManager) Save(ctx context.Context, item SCachedTenant
obj.Domain = item.ProjectDomain
obj.DomainId = item.DomainId
obj.LastCheck = now
obj.PendingDeleted = item.PendingDeleted
if obj.PendingDeleted {
obj.PendingDeletedAt = item.PendingDeletedAt
}
return nil
})
if err != nil {
@@ -381,6 +389,10 @@ func (manager *STenantCacheManager) Save(ctx context.Context, item SCachedTenant
obj.Domain = item.ProjectDomain
obj.DomainId = item.DomainId
obj.LastCheck = now
obj.PendingDeleted = item.PendingDeleted
if obj.PendingDeleted {
obj.PendingDeletedAt = item.PendingDeletedAt
}
err = manager.TableSpec().InsertOrUpdate(ctx, obj)
if err != nil {
return nil, errors.Wrap(err, "InsertOrUpdate")
+12 -7
View File
@@ -14,15 +14,20 @@
package db
import identityapi "yunion.io/x/onecloud/pkg/apis/identity"
import (
"time"
identityapi "yunion.io/x/onecloud/pkg/apis/identity"
)
type SCachedTenant struct {
Id string `json:"id"`
Name string `json:"name"`
DomainId string `json:"domain_id"`
ProjectDomain string `json:"project_domain"`
Metadata map[string]string `json:"metadata"`
PendingDeleted bool `json:"pending_deleted"`
Id string `json:"id"`
Name string `json:"name"`
DomainId string `json:"domain_id"`
ProjectDomain string `json:"project_domain"`
Metadata map[string]string `json:"metadata"`
PendingDeleted bool `json:"pending_deleted"`
PendingDeletedAt time.Time `json:"pending_deleted_at"`
}
func (s SCachedTenant) objType() string {