From 5bec11dc85709fcf2709cc80accc394b8f01fcbd Mon Sep 17 00:00:00 2001 From: rainzm Date: Wed, 16 Feb 2022 17:31:15 +0800 Subject: [PATCH] feat: add GetAllClassMetadata for tenantcache --- pkg/cloudcommon/db/tenantcache.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/pkg/cloudcommon/db/tenantcache.go b/pkg/cloudcommon/db/tenantcache.go index b4988518a5..1a09fd789c 100644 --- a/pkg/cloudcommon/db/tenantcache.go +++ b/pkg/cloudcommon/db/tenantcache.go @@ -19,6 +19,7 @@ import ( "database/sql" "fmt" "runtime/debug" + "strings" "time" "yunion.io/x/jsonutils" @@ -520,3 +521,26 @@ func (tenant *STenant) IsDomain() bool { return false } } + +func (tenant *STenant) objType() string { + if tenant.IsDomain() { + return "domain" + } else { + return "project" + } +} + +func (tenant *STenant) GetAllClassMetadata() (map[string]string, error) { + meta, err := Metadata.rawGetAll(tenant.objType(), tenant.GetId(), nil, CLASS_TAG_PREFIX) + if err != nil { + return nil, errors.Wrap(err, "rawGetAll") + } + ret := make(map[string]string) + for k, v := range meta { + if strings.HasPrefix(k, SYSTEM_ADMIN_PREFIX) { + continue + } + ret[k[len(CLASS_TAG_PREFIX):]] = v + } + return ret, nil +}