builder

package
v0.0.0-...-0a64cdf Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 18, 2020 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterActionBuilder

func RegisterActionBuilder(class string, builder BuildActionFn)

RegisterActionBuilder registers an action builder for class

func RegisterFilterBuilder

func RegisterFilterBuilder(class string, builder BuildFilterFn)

RegisterFilterBuilder registers a filter builder for class

func RegisterPluginBuilder

func RegisterPluginBuilder(class string, builder BuildPluginFn)

RegisterPluginBuilder registers a plugin builder for class

func ToEvent

func ToEvent(s string) (action.Event, error)

ToEvent returns event from string

func ToRule

func ToRule(def RuleDef) (action.Rule, error)

ToRule returns Rule from definition with error

Types

type ActionDef

type ActionDef struct {
	// ID must exist and be unique in databases for its correct operation
	ID string `json:"id"`
	// Class defines the class
	Class string `json:"class"`
	// Plugins is a list of plugins
	Plugins []string `json:"plugins,omitempty"`
	// Disabled
	Disabled bool `json:"disabled"`
	// Services is a map of services used by plugin
	Services map[string]string `json:"services,omitempty"`
	// Args is a list of args for action
	Args []string `json:"args,omitempty"`
	// Positive stores actions to do when positive matching
	Positive *RuleDef `json:"positive,omitempty"`
	// Negative stores actions to do when negative matching
	Negative *RuleDef `json:"negative,omitempty"`
	// Opts allow optional fields
	Opts map[string]interface{} `json:"opts,omitempty"`
}

ActionDef is used for construct actions

func ActionDefsFromFile

func ActionDefsFromFile(path string) ([]ActionDef, error)

ActionDefsFromFile creates a slice of Definition from a file in json format.

type BuildActionFn

type BuildActionFn func(builder *Builder, def ActionDef) (action.Action, error)

BuildActionFn defines a function that constructs an action using a definition

type BuildFilterFn

type BuildFilterFn func(builder *Builder, def FilterDef) (filter.Filter, error)

BuildFilterFn defines a function that constructs a plugin using a definition

type BuildPluginFn

type BuildPluginFn func(builder *Builder, def PluginDef) (plugin.Plugin, error)

BuildPluginFn defines a function that constructs a plugin using a definition

type Builder

type Builder struct {
	// contains filtered or unexported fields
}

Builder constructs actions using a definition struct

func New

func New(services apiservice.Discover, opt ...Option) *Builder

New creates a new builder

func (Builder) Action

func (b Builder) Action(id string) (action.Action, bool)

Action returns action by action id

func (Builder) Actions

func (b Builder) Actions() []action.Action

Actions returns created actions

func (Builder) ActionsByPlugin

func (b Builder) ActionsByPlugin(plugid string) []action.Action

ActionsByPlugin returns actions by plugin id

func (*Builder) AddLocalNet

func (b *Builder) AddLocalNet(s string) error

AddLocalNet add a local net to builder

func (*Builder) BuildAction

func (b *Builder) BuildAction(def ActionDef) (action.Action, error)

BuildAction creates an action using the metadata passed as param

func (*Builder) BuildFilter

func (b *Builder) BuildFilter(def FilterDef) (filter.Filter, error)

BuildFilter creates a plugin using the metadata passed as param

func (*Builder) BuildPlugin

func (b *Builder) BuildPlugin(def PluginDef) (plugin.Plugin, error)

BuildPlugin creates a plugin using the metadata passed as param

func (Builder) CachePath

func (b Builder) CachePath(data string) string

CachePath returns path for cache

func (Builder) DataPath

func (b Builder) DataPath(data string) string

DataPath returns path for data

func (Builder) LocalNets

func (b Builder) LocalNets() []*net.IPNet

LocalNets return localnets

func (Builder) Logger

func (b Builder) Logger() yalogi.Logger

Logger returns logger

func (*Builder) OnShutdown

func (b *Builder) OnShutdown(f func() error)

OnShutdown registers the functions that will be executed during shutdown.

func (*Builder) OnStartup

func (b *Builder) OnStartup(f func() error)

OnStartup registers the functions that will be executed during startup.

func (Builder) Plugin

func (b Builder) Plugin(id string) (plugin.Plugin, bool)

Plugin returns plugin by plugin id

func (Builder) Plugins

func (b Builder) Plugins() []plugin.Plugin

Plugins returns created plugins

func (Builder) Service

func (b Builder) Service(name string) (apiservice.Service, bool)

Service returns service by name

func (*Builder) Shutdown

func (b *Builder) Shutdown() error

Shutdown executes all registered functions.

func (*Builder) Start

func (b *Builder) Start() error

Start executes all registered functions.

type FilterDef

type FilterDef struct {
	// Class defines the class
	Class string `json:"class"`
	// Args is a list of args for action
	Args []string `json:"args,omitempty"`
	// Opts allow optional fields
	Opts map[string]interface{} `json:"opts,omitempty"`
}

FilterDef stores filter information

type Option

type Option func(*options)

Option is used for builder configuration

func CacheDir

func CacheDir(s string) Option

CacheDir sets source dir

func DataDir

func DataDir(s string) Option

DataDir sets data dir

func SetLogger

func SetLogger(l yalogi.Logger) Option

SetLogger sets a logger for the component

type PluginDef

type PluginDef struct {
	// ID must exist and be unique in databases for its correct operation
	ID string `json:"id"`
	// Class defines the class
	Class string `json:"class"`
	// Disabled
	Disabled bool `json:"disabled"`
	// Services is a map of services used by plugin
	Services map[string]string `json:"services,omitempty"`
	// Filters is a list of filters
	Filters []FilterDef `json:"filters,omitempty"`
	// Stop on match
	Stop bool `json:"stop"`
	// Args is a list of args for action
	Args []string `json:"args,omitempty"`
	// Opts allow optional fields
	Opts map[string]interface{} `json:"opts,omitempty"`
}

PluginDef is used for construct plugins

func PluginDefsFromFile

func PluginDefsFromFile(path string) ([]PluginDef, error)

PluginDefsFromFile creates a slice of PluginDef from a file in json format.

type RuleDef

type RuleDef struct {
	// EventLevel stores event level
	Event string `json:"event,omitempty"`
	// Tag defines label
	Tag string `json:"tag,omitempty"`
	// Log enable logging in action
	Log bool `json:"log"`
}

RuleDef stores information about rules

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL