layer1: guard router informer maps step 6
This commit is contained in:
@@ -18,6 +18,7 @@ package router
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"go.uber.org/zap"
|
||||
@@ -35,6 +36,7 @@ type (
|
||||
// FunctionReference -> function metadata
|
||||
refCache *cache.Cache[namespacedTriggerReference, resolveResult]
|
||||
funcInformer map[string]k8sCache.SharedIndexInformer
|
||||
mu sync.RWMutex
|
||||
logger *zap.Logger
|
||||
// store k8sCache.Store
|
||||
}
|
||||
@@ -120,12 +122,21 @@ func (frr *functionReferenceResolver) resolve(trigger fv1.HTTPTrigger) (*resolve
|
||||
}
|
||||
|
||||
func (frr *functionReferenceResolver) getInformerByNamespace(namespace string) (k8sCache.SharedIndexInformer, error) {
|
||||
frr.mu.RLock()
|
||||
defer frr.mu.RUnlock()
|
||||
|
||||
if informer, ok := frr.funcInformer[namespace]; ok {
|
||||
return informer, nil
|
||||
}
|
||||
return nil, fmt.Errorf("informer for namespace %s not found", namespace)
|
||||
}
|
||||
|
||||
func (frr *functionReferenceResolver) addInformer(namespace string, informer k8sCache.SharedIndexInformer) {
|
||||
frr.mu.Lock()
|
||||
defer frr.mu.Unlock()
|
||||
frr.funcInformer[namespace] = informer
|
||||
}
|
||||
|
||||
// resolveByName simply looks up function by name in a namespace.
|
||||
func (frr *functionReferenceResolver) resolveByName(namespace, name string) (*resolveResult, error) {
|
||||
// get function from cache
|
||||
|
||||
Reference in New Issue
Block a user