Zanzana: Lazy load cached store info (#96452)

* Lazy load cached store infos
This commit is contained in:
Karl Persson
2024-11-15 11:44:34 +01:00
committed by GitHub
parent 76a3d79231
commit 7e38fd733b
7 changed files with 64 additions and 151 deletions
+7 -11
View File
@@ -1,7 +1,6 @@
package server
import (
"errors"
"sync"
authzv1 "github.com/grafana/authlib/authz/proto/v1"
@@ -25,19 +24,16 @@ var _ authzextv1.AuthzExtentionServiceServer = (*Server)(nil)
var tracer = otel.Tracer("github.com/grafana/grafana/pkg/services/authz/zanzana/server")
var errStoreNotFound = errors.New("store not found")
var errAuthorizationModelNotInitialized = errors.New("authorization model not initialized")
type Server struct {
authzv1.UnimplementedAuthzServiceServer
authzextv1.UnimplementedAuthzExtentionServiceServer
openfga openfgav1.OpenFGAServiceServer
logger log.Logger
modules []transformer.ModuleFile
storeMap map[string]storeInfo
storeLock *sync.Mutex
logger log.Logger
modules []transformer.ModuleFile
stores map[string]storeInfo
storesMU *sync.Mutex
}
type storeInfo struct {
@@ -65,9 +61,9 @@ func NewAuthzServer(cfg *setting.Cfg, openfga openfgav1.OpenFGAServiceServer) (*
func NewAuthz(openfga openfgav1.OpenFGAServiceServer, opts ...ServerOption) (*Server, error) {
s := &Server{
openfga: openfga,
storeLock: &sync.Mutex{},
storeMap: make(map[string]storeInfo),
openfga: openfga,
storesMU: &sync.Mutex{},
stores: make(map[string]storeInfo),
}
for _, o := range opts {