package buildermgr import ( "context" "github.com/fission/fission/pkg/utils" "github.com/fission/fission/pkg/utils/manager" ) type builderEnvNamespaceAdder interface { AddNamespace(ctx context.Context, ns string, mgr manager.Interface) } type builderPkgNamespaceAdder interface { AddNamespace(ctx context.Context, ns string, mgr manager.Interface) } func NewNamespaceSubscriber(envw builderEnvNamespaceAdder, pkgw builderPkgNamespaceAdder, mgr manager.Interface) utils.NamespaceSubscriber { return utils.NamespaceSubscriberFuncs{ SubscriberName: "buildermgr", AddFunc: func(ctx context.Context, record utils.NamespaceRecord) error { registerBuilderNamespace(ctx, record.Name, envw, pkgw, mgr) return nil }, ResyncFunc: func(ctx context.Context, record utils.NamespaceRecord) error { registerBuilderNamespace(ctx, record.Name, envw, pkgw, mgr) return nil }, } } func registerBuilderNamespace(ctx context.Context, namespace string, envw builderEnvNamespaceAdder, pkgw builderPkgNamespaceAdder, mgr manager.Interface) { if namespace == "" { return } utils.DefaultNSResolver().AddNamespace(namespace) if envw != nil { envw.AddNamespace(ctx, namespace, mgr) } if pkgw != nil { pkgw.AddNamespace(ctx, namespace, mgr) } }