32 lines
929 B
Go
32 lines
929 B
Go
package router
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/fission/fission/pkg/utils"
|
|
"github.com/fission/fission/pkg/utils/manager"
|
|
)
|
|
|
|
type routerNamespaceAdder interface {
|
|
AddNamespace(ctx context.Context, ns string, mgr manager.Interface) error
|
|
}
|
|
|
|
func NewNamespaceSubscriber(ts routerNamespaceAdder, mgr manager.Interface) utils.NamespaceSubscriber {
|
|
return utils.NamespaceSubscriberFuncs{
|
|
SubscriberName: "router",
|
|
AddFunc: func(ctx context.Context, record utils.NamespaceRecord) error {
|
|
return registerRouterNamespace(ctx, record.Name, ts, mgr)
|
|
},
|
|
ResyncFunc: func(ctx context.Context, record utils.NamespaceRecord) error {
|
|
return registerRouterNamespace(ctx, record.Name, ts, mgr)
|
|
},
|
|
}
|
|
}
|
|
|
|
func registerRouterNamespace(ctx context.Context, namespace string, ts routerNamespaceAdder, mgr manager.Interface) error {
|
|
if namespace == "" || ts == nil {
|
|
return nil
|
|
}
|
|
return ts.AddNamespace(ctx, namespace, mgr)
|
|
}
|