Documentation ¶
Index ¶
- Constants
- func NewCrudClientFromConfig(authOptions *shttp.AuthenticationOpts) (*shttp.CrudClient, error)
- func NewRestClientFromConfig(authOptions *shttp.AuthenticationOpts) (*shttp.RestClient, error)
- func RegisterConfigAPI(r *shttp.Server)
- func RegisterPacketInjectorAPI(pic *packet_injector.PacketInjectorClient, g *graph.Graph, r *shttp.Server)
- func RegisterPcapAPI(r *shttp.Server, store storage.Storage)
- func RegisterTopologyAPI(r *shttp.Server, parser *traversal.GremlinTraversalParser, ...)
- type Alert
- type AlertAPIHandler
- type AlertResourceHandler
- type BasicAPIHandler
- func (h *BasicAPIHandler) AsyncWatch(f WatcherCallback) StoppableWatcher
- func (h *BasicAPIHandler) Create(resource Resource) error
- func (h *BasicAPIHandler) Decorate(resource Resource)
- func (h *BasicAPIHandler) Delete(id string) error
- func (h *BasicAPIHandler) Get(id string) (Resource, bool)
- func (h *BasicAPIHandler) Index() map[string]Resource
- func (h *BasicAPIHandler) Name() string
- func (h *BasicAPIHandler) New() Resource
- func (h *BasicAPIHandler) Unmarshal(b []byte) (resource Resource, err error)
- type BasicStoppableWatcher
- type Capture
- type CaptureAPIHandler
- type CaptureResourceHandler
- type DetectConfig
- type Handler
- type HandlerFunc
- type Info
- type PacketInjectorAPI
- type PacketParamsReq
- type PcapAPI
- type Resource
- type ResourceHandler
- type ResourceWatcher
- type Server
- type StoppableWatcher
- type TopologyAPI
- type TopologyDetect
- type TopologyParam
- type WatcherCallback
Constants ¶
const (
DetectConfigFile = "etc/topology_detect.json"
)
Variables ¶
This section is empty.
Functions ¶
func NewCrudClientFromConfig ¶
func NewCrudClientFromConfig(authOptions *shttp.AuthenticationOpts) (*shttp.CrudClient, error)
NewCrudClientFromConfig creates a new REST client on /api
func NewRestClientFromConfig ¶
func NewRestClientFromConfig(authOptions *shttp.AuthenticationOpts) (*shttp.RestClient, error)
NewRestClientFromConfig creates a new REST client
func RegisterConfigAPI ¶
RegisterConfigAPI registers a configuration endpoint (read only) in API server
func RegisterPacketInjectorAPI ¶
func RegisterPacketInjectorAPI(pic *packet_injector.PacketInjectorClient, g *graph.Graph, r *shttp.Server)
RegisterPacketInjectorAPI registers a new packet injector ressource in the API
func RegisterPcapAPI ¶
RegisterPcapAPI registers a new pcap injector API
func RegisterTopologyAPI ¶
func RegisterTopologyAPI(r *shttp.Server, parser *traversal.GremlinTraversalParser, tdc *probes.TopologyDetectClient)
RegisterTopologyAPI registers a new topology query API
Types ¶
type Alert ¶
type Alert struct { Resource UUID string Name string `json:",omitempty"` Description string `json:",omitempty"` Expression string `json:",omitempty" valid:"nonzero"` Action string `json:",omitempty" valid:"regexp=^(|http://|https://|file://).*$"` Trigger string `json:",omitempty" valid:"regexp=^(graph|duration:.+|)$"` CreateTime time.Time }
Alert is a set of parameters, the Alert Action will Trigger according to its Expression.
type AlertAPIHandler ¶
type AlertAPIHandler struct {
BasicAPIHandler
}
AlertAPIHandler aims to exposes the Alert API.
func RegisterAlertAPI ¶
func RegisterAlertAPI(apiServer *Server) (*AlertAPIHandler, error)
RegisterAlertAPI registers an Alert's API to a designated API Server
type AlertResourceHandler ¶
type AlertResourceHandler struct {
ResourceHandler
}
AlertResourceHandler aims to creates and manage a new Alert.
func (*AlertResourceHandler) Name ¶
func (a *AlertResourceHandler) Name() string
Name returns ressource name "alert"
func (*AlertResourceHandler) New ¶
func (a *AlertResourceHandler) New() Resource
New creates a new alert
type BasicAPIHandler ¶
type BasicAPIHandler struct { ResourceHandler ResourceHandler EtcdKeyAPI etcd.KeysAPI }
BasicAPIHandler basic implementation of an Handler, should be used as embedded struct for the most part of the resources
func (*BasicAPIHandler) AsyncWatch ¶
func (h *BasicAPIHandler) AsyncWatch(f WatcherCallback) StoppableWatcher
AsyncWatch registers a new resource watcher
func (*BasicAPIHandler) Create ¶
func (h *BasicAPIHandler) Create(resource Resource) error
Create a new resource in Etcd
func (*BasicAPIHandler) Decorate ¶
func (h *BasicAPIHandler) Decorate(resource Resource)
Decorate the resource
func (*BasicAPIHandler) Delete ¶
func (h *BasicAPIHandler) Delete(id string) error
Delete a resource
func (*BasicAPIHandler) Get ¶
func (h *BasicAPIHandler) Get(id string) (Resource, bool)
Get a specific resource
func (*BasicAPIHandler) Index ¶
func (h *BasicAPIHandler) Index() map[string]Resource
Index returns the list of resource available in Etcd
func (*BasicAPIHandler) Name ¶
func (h *BasicAPIHandler) Name() string
Name returns the resource name
type BasicStoppableWatcher ¶
type BasicStoppableWatcher struct { StoppableWatcher // contains filtered or unexported fields }
BasicStoppableWatcher basic implementation of a ressources watcher
func (*BasicStoppableWatcher) Stop ¶
func (s *BasicStoppableWatcher) Stop()
Stop the resource watcher
type Capture ¶
type Capture struct { UUID string GremlinQuery string `json:"GremlinQuery,omitempty" valid:"isGremlinExpr"` BPFFilter string `json:"BPFFilter,omitempty" valid:"isBPFFilter"` Name string `json:"Name,omitempty"` Description string `json:"Description,omitempty"` Type string `json:"Type,omitempty"` Count int `json:"Count,omitempty"` PCAPSocket string `json:"PCAPSocket,omitempty"` Port int `json:"Port,omitempty"` }
Capture describes a capture API
func NewCapture ¶
NewCapture creates a new capture
type CaptureAPIHandler ¶
type CaptureAPIHandler struct { BasicAPIHandler Graph *graph.Graph }
CaptureAPIHandler based on BasicAPIHandler
func RegisterCaptureAPI ¶
func RegisterCaptureAPI(apiServer *Server, g *graph.Graph) (*CaptureAPIHandler, error)
RegisterCaptureAPI registers an new resource, capture
func (*CaptureAPIHandler) Create ¶
func (c *CaptureAPIHandler) Create(r Resource) error
Create tests that resource GremlinQuery does not exists already
func (*CaptureAPIHandler) Decorate ¶
func (c *CaptureAPIHandler) Decorate(resource Resource)
Decorate populate the capture resource
type CaptureResourceHandler ¶
type CaptureResourceHandler struct {
ResourceHandler
}
CaptureResourceHandler describes a capture ressouce handler
func (*CaptureResourceHandler) Name ¶
func (c *CaptureResourceHandler) Name() string
Name returns "capture"
func (*CaptureResourceHandler) New ¶
func (c *CaptureResourceHandler) New() Resource
New creates a new capture resource
type DetectConfig ¶
type Handler ¶
type Handler interface { Name() string New() Resource Index() map[string]Resource Get(id string) (Resource, bool) Decorate(resource Resource) Create(resource Resource) error Delete(id string) error AsyncWatch(f WatcherCallback) StoppableWatcher }
Handler describes resources for each API
type HandlerFunc ¶
type HandlerFunc func(w http.ResponseWriter, r *http.Request)
HandlerFunc describes an http(s) router handler callback function
type PacketInjectorAPI ¶
type PacketInjectorAPI struct { PIClient *packet_injector.PacketInjectorClient Graph *graph.Graph }
PacketInjectorAPI exposes the packet injector API
type PacketParamsReq ¶
type PacketParamsReq struct { Src string Dst string SrcIP string DstIP string SrcMAC string DstMAC string Type string Payload string TrackingID string ID int64 Count int64 Interval int64 }
PacketParamsReq packet injector API parameters
type ResourceHandler ¶
ResourceHandler aims to creates new resource of an API
type ResourceWatcher ¶
type ResourceWatcher interface {
AsyncWatch(f WatcherCallback) StoppableWatcher
}
ResourceWatcher asynchronous interface
type Server ¶
type Server struct { HTTPServer *shttp.Server EtcdKeyAPI etcd.KeysAPI ServiceType common.ServiceType // contains filtered or unexported fields }
Server object are created once for each ServiceType (agent or analyzer)
func NewAPI ¶
func NewAPI(server *shttp.Server, kapi etcd.KeysAPI, serviceType common.ServiceType) (*Server, error)
NewAPI creates a new API server based on http
func (*Server) GetHandler ¶
GetHandler returns the hander named hname
func (*Server) RegisterAPIHandler ¶
RegisterAPIHandler registers a new handler for an API
type TopologyAPI ¶
type TopologyAPI struct { TDClient *probes.TopologyDetectClient // contains filtered or unexported fields }
TopologyAPI exposes the topology query API
type TopologyDetect ¶
type TopologyParam ¶
type TopologyParam struct {
GremlinQuery string `json:"GremlinQuery,omitempty" valid:"isGremlinExpr"`
}
TopologyParam topology API parameter
type WatcherCallback ¶
WatcherCallback callback called by the ressources watcher