layer1: add builder namespace subscriber step 20
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
package buildermgr
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user