Documentation
¶
Index ¶
- func ListPluginsStr() string
- func LoadESPlugin(router *mux.Router, p ESPlugin, mw []middleware.Middleware) error
- func LoadPlugin(router *mux.Router, p Plugin) error
- func LoadRSPlugin(router *mux.Router, p RSPlugin, mw []middleware.Middleware) error
- func RegisterPlugin(p Plugin)
- type ESPlugin
- type Plugin
- type PluginBy
- type RSPlugin
- type RSUtil
- type Route
- type RouteBy
- type RouterHealthCheck
- type RouterSwapper
- func (rs *RouterSwapper) IsTracingEnabled() bool
- func (rs *RouterSwapper) RestartServer()
- func (rs *RouterSwapper) Router() *mux.Router
- func (rs *RouterSwapper) SetDDTracing(isEnabled bool)
- func (rs *RouterSwapper) SetRouterAttrs(address string, port int, isHttps bool)
- func (rs *RouterSwapper) StartServer()
- func (rs *RouterSwapper) Swap(newRouter *mux.Router)
- func (rs *RouterSwapper) SwapTrace(newRouter *muxtrace.Router)
- func (rs *RouterSwapper) TraceRouter() *muxtrace.Router
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ListPluginsStr ¶
func ListPluginsStr() string
ListPluginsStr returns a string listing the registered plugins.
func LoadESPlugin ¶
func LoadESPlugin(router *mux.Router, p ESPlugin, mw []middleware.Middleware) error
func LoadPlugin ¶
LoadPlugin is currently responsible for two things: firstly, it executes the plugin's initFunc to ensure it makes all the initializations before the plugin is functional and second, calling loadRoutes
func LoadRSPlugin ¶
func LoadRSPlugin(router *mux.Router, p RSPlugin, mw []middleware.Middleware) error
func RegisterPlugin ¶
func RegisterPlugin(p Plugin)
RegisterPlugin plugs in plugin. All plugins must have a name: preferably lowercase and one word. The name of the plugin must be unique. A plugin, however, may not define any routes, but still be useful, like a middleware.
Types ¶
type ESPlugin ¶
type ESPlugin interface {
// mw takes a array of middleware to be intialized by ES Plugin
InitFunc(mw []middleware.Middleware) error
// contains filtered or unexported methods
}
ElasticSearchPlugin holds the plugin for ES
type Plugin ¶
type Plugin interface {
// InitFunc returns the plugin's setup function that is executed
// before the plugin routes are loaded in the router.
InitFunc() error
// The plugin's elastic search middleware, if any.
ESMiddleware() []middleware.Middleware
// The plugin's reactive search middleware, if any.
RSMiddleware() []middleware.Middleware
// contains filtered or unexported methods
}
Plugin is a type that holds information about the plugin.
func ListPlugins ¶
func ListPlugins() []Plugin
ListPlugins returns the list of plugins that are currently registered.
type PluginBy ¶
By is the type of a "less" function that defines the ordering of Plugins.
func (PluginBy) PluginSort ¶
Sort is a method on the function type, By, that sorts the argument slice according to the function.
type RSPlugin ¶
type RSPlugin interface {
// mw takes a array of middleware to be intialized by ES Plugin
InitFunc(mw []middleware.Middleware) error
// contains filtered or unexported methods
}
ReactiveSearchPlugin holds the plugin for ReactiveSearch API
type RSUtil ¶
type RSUtil struct {
}
RSUtil will contain uril methods for working with RS internally.
func RSUtilInstance ¶
func RSUtilInstance() *RSUtil
RSUtilInstance will return single instance for RSUtil This should be the only access for the RSUtil Instance
func (*RSUtil) MasterCredentials ¶
MasterCredentials will return the master credentials for the current instance in the username:password format.
type Route ¶
type Route struct {
// Name is the name of the route. In order to avoid conflicts in
// the router, the name preferably should be a combination of both
// http method type and the path. For example: "Get foobar" would
// be an appropriate name for [GET foobar] endpoint.
Name string
// Methods represents an array of HTTP method type. It is preferable
// to use values defined in net/http package to avoid typos.
Methods []string
// Path is the path that it expects to serve the requests on.
// If the path contains any variables, then they must be declared
// in accordance to the format define by the router to which
// these routes are registered which in our case is: gorilla/mux.
Path string
// PathPrefix serves as a matcher for the URL path prefix.
// This matches if the given template is a prefix of the full
// URL path. See Route.Path() for details on the tpl argument.
// Note that it does not treat slashes specially ("/foobar/"
// will be matched by the prefix "/foo") so you may want to
// use a trailing slash here.
PathPrefix string
// HandlerFunc is the handler function that is responsible for
// responding the request made to this route.
HandlerFunc http.HandlerFunc
// Description about this route.
Description string
// Indicate whether the current route is a special pipeline router
// or not
IsPipeline bool
// Matcher function to match for the route. This field might not be provided
// in which case we need to ignore it
Matcher mux.MatcherFunc
}
Route is a type that contains information about a route.
type RouterHealthCheck ¶
type RouterHealthCheck struct {
// CheckDetails can contain maximum 3 elements.
CheckedDetails []bool
// contains filtered or unexported fields
}
RouterHealthCheck will handle checking the routers health.
func RouterHealthCheckInstance ¶
func RouterHealthCheckInstance() *RouterHealthCheck
RouterHealthCheckInstance returns one instance and should be the only way health check is accessed
func (*RouterHealthCheck) Append ¶
func (h *RouterHealthCheck) Append(status bool)
Append will append the newly added detail to the HealthCheck array making sure that it is of length 3.
func (*RouterHealthCheck) Check ¶
func (h *RouterHealthCheck) Check()
Check will check the routers health by hitting the dry health check endpoint.
This function should be run with a cron job to be effective.
type RouterSwapper ¶
type RouterSwapper struct {
Routes []Route
// contains filtered or unexported fields
}
routerSwapper lets routers to be swapper
func RouterSwapperInstance ¶
func RouterSwapperInstance() *RouterSwapper
RouterSwapperInstance returns one instance and should be the only way swapper is accessed Pipelines plugin deals with managing user defined pipelines.
func (*RouterSwapper) IsTracingEnabled ¶
func (rs *RouterSwapper) IsTracingEnabled() bool
IsTracingEnabled will indicate whether tracing is enabled or not
func (*RouterSwapper) RestartServer ¶
func (rs *RouterSwapper) RestartServer()
NOTE: DEPRECATED function. Not used anymore RestartServer shuts down the current server and starts it again
It is useful when a router swap happens
func (*RouterSwapper) Router ¶
func (rs *RouterSwapper) Router() *mux.Router
Router exposes the router from the RouterSwapper instance
func (*RouterSwapper) SetDDTracing ¶
func (rs *RouterSwapper) SetDDTracing(isEnabled bool)
SetDDTracing will set whether dd is enabled or not
func (*RouterSwapper) SetRouterAttrs ¶
func (rs *RouterSwapper) SetRouterAttrs(address string, port int, isHttps bool)
SetRouterAttrs sets the router attributes to the current instance of RouterSwapper
func (*RouterSwapper) StartServer ¶
func (rs *RouterSwapper) StartServer()
StartServer starts the server by using the latest routerswapper interface router, creating a handler and listening
func (*RouterSwapper) Swap ¶
func (rs *RouterSwapper) Swap(newRouter *mux.Router)
Swap swaps the passed router with the older one
func (*RouterSwapper) SwapTrace ¶
func (rs *RouterSwapper) SwapTrace(newRouter *muxtrace.Router)
SwapTrace swaps the passed muxtrace router instead of the normal mux router
func (*RouterSwapper) TraceRouter ¶
func (rs *RouterSwapper) TraceRouter() *muxtrace.Router
TraceRouter will return the muxtrace router
Directories
¶
| Path | Synopsis |
|---|---|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|
|
|
main
command
|