Documentation ¶
Overview ¶
Package swappable provides an http.Handler that delegates all HTTP requests to an underlying multichannelfanout.Handler. When a new configuration is available, a new multichannelfanout.Handler is created and swapped in. All subsequent requests go to the new handler. It is often used in conjunction with something that notices changes to ConfigMaps, such as configmap.watcher or configmap.filesystem.
Package swappable provides an http.Handler that delegates all HTTP requests to an underlying multichannelfanout.Handler. When a new configuration is available, a new multichannelfanout.Handler is created and swapped in. All subsequent requests go to the new handler. It is often used in conjunction with something that notices changes to ConfigMaps, such as configmap.watcher or configmap.filesystem.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
Handler is an http.Handler that atomically swaps between underlying handlers.
func NewEmptyHandler ¶
NewEmptyHandler creates a new swappable.Handler with an empty configuration.
func NewHandler ¶
func NewHandler(handler *multichannelfanout.Handler, logger *zap.Logger) *Handler
NewHandler creates a new swappable.Handler.
func (*Handler) ServeHTTP ¶
func (h *Handler) ServeHTTP(ctx context.Context, event cloudevents.Event, resp *cloudevents.EventResponse) error
ServeHTTP delegates all HTTP requests to the current multichannelfanout.Handler.
func (*Handler) UpdateConfig ¶
func (h *Handler) UpdateConfig(config *multichannelfanout.Config) error
UpdateConfig copies the current inner multichannelfanout.Handler with the new configuration. If the new configuration is valid, then the new inner handler is swapped in and will start serving HTTP traffic.
type MessageHandler ¶ added in v0.14.0
type MessageHandler struct {
// contains filtered or unexported fields
}
Handler is an http.Handler that atomically swaps between underlying handlers.
func NewEmptyMessageHandler ¶ added in v0.14.0
NewEmptyMessageHandler creates a new swappable.Handler with an empty configuration.
func NewMessageHandler ¶ added in v0.14.0
func NewMessageHandler(handler *multichannelfanout.MessageHandler, logger *zap.Logger) *MessageHandler
NewMessageHandler creates a new swappable.Handler.
func (*MessageHandler) ServeHTTP ¶ added in v0.14.0
func (h *MessageHandler) ServeHTTP(response http.ResponseWriter, request *http.Request)
ServeHTTP delegates all HTTP requests to the current multichannelfanout.Handler.
func (*MessageHandler) UpdateConfig ¶ added in v0.14.0
func (h *MessageHandler) UpdateConfig(context context.Context, config *multichannelfanout.Config) error
UpdateConfig copies the current inner multichannelfanout.Handler with the new configuration. If the new configuration is valid, then the new inner handler is swapped in and will start serving HTTP traffic.
type UpdateConfig ¶
type UpdateConfig func(config *multichannelfanout.Config) error
UpdateConfig updates the configuration to use the new config, returning an error if it can't.