Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Hook = &Context{
Endpoint: "/fake",
Port: "12000",
URL: "test-url",
}
View Source
var ( // Mutex synchronizes ActiveServerHandlers Lock sync.Mutex )
Functions ¶
func ManageRoute ¶
func ManageRoute(router Router, controller *Controller, eventStream gateways.Eventing_StartEventSourceServer) error
ManagerRoute manages the lifecycle of a route
func ProcessRouteStatus ¶
func ProcessRouteStatus(ctrl *Controller)
ProcessRouteStatus processes route status as active and inactive.
func ValidateWebhookContext ¶
ValidateWebhookContext validates a webhook context
Types ¶
type Context ¶
type Context struct {
// REST API endpoint
Endpoint string `json:"endpoint" protobuf:"bytes,1,name=endpoint"`
// Method is HTTP request method that indicates the desired action to be performed for a given resource.
// See RFC7231 Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
Method string `json:"method" protobuf:"bytes,2,name=method"`
// Port on which HTTP server is listening for incoming events.
Port string `json:"port" protobuf:"bytes,3,name=port"`
// URL is the url of the server.
URL string `json:"url" protobuf:"bytes,4,name=url"`
// ServerCertPath refers the file that contains the cert.
ServerCertPath string `json:"serverCertPath,omitempty" protobuf:"bytes,4,opt,name=serverCertPath"`
// ServerKeyPath refers the file that contains private key
ServerKeyPath string `json:"serverKeyPath,omitempty" protobuf:"bytes,5,opt,name=serverKeyPath"`
}
Context holds a general purpose REST API context
type Controller ¶
type Controller struct {
// ActiveServerHandlers keeps track of currently active mux/router for the http servers.
ActiveServerHandlers map[string]*mux.Router
// AllRoutes keep track of routes that are already registered with server and their status active or inactive
AllRoutes map[string]*mux.Route
// RouteActivateChan handles activation of routes
RouteActivateChan chan Router
// RouteDeactivateChan handles inactivation of routes
RouteDeactivateChan chan Router
}
Controller controls the active servers and endpoints
type FakeHttpWriter ¶
func (*FakeHttpWriter) Header ¶
func (f *FakeHttpWriter) Header() http.Header
func (*FakeHttpWriter) WriteHeader ¶
func (f *FakeHttpWriter) WriteHeader(status int)
type FakeRouter ¶
type FakeRouter struct {
// contains filtered or unexported fields
}
func (*FakeRouter) GetRoute ¶
func (f *FakeRouter) GetRoute() *Route
func (*FakeRouter) HandleRoute ¶
func (f *FakeRouter) HandleRoute(writer http.ResponseWriter, request *http.Request)
func (*FakeRouter) PostActivate ¶
func (f *FakeRouter) PostActivate() error
func (*FakeRouter) PostInactivate ¶
func (f *FakeRouter) PostInactivate() error
type Route ¶
type Route struct {
// Context refers to the webhook context
Context *Context
// Logger to log stuff
Logger *logrus.Logger
// StartCh controls the
StartCh chan struct{}
// EventSource refers to gateway event source
EventSource *gateways.EventSource
// active determines whether the route is active and ready to process incoming requets
// or it is an inactive route
Active bool
// data channel to receive data on this endpoint
DataCh chan []byte
// Stop channel to signal the end of the event source.
StopChan chan struct{}
}
Route contains general information about a route
func GetFakeRoute ¶
func GetFakeRoute() *Route
type Router ¶
type Router interface {
// GetRoute returns the route
GetRoute() *Route
// HandleRoute processes the incoming requests on the route
HandleRoute(writer http.ResponseWriter, request *http.Request)
// PostActivate captures the operations if any after route being activated and ready to process requests.
PostActivate() error
// PostInactivate captures cleanup operations if any after route is inactivated
PostInactivate() error
}
Router is an interface to manage the route
Click to show internal directories.
Click to hide internal directories.