server

package
v0.19.1 Latest Latest
Warning

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

Go to latest
Published: Sep 14, 2018 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterConfigAPI

func RegisterConfigAPI(r *shttp.Server, authBackend shttp.AuthenticationBackend)

RegisterConfigAPI registers a configuration endpoint (read only) in API server

func RegisterPcapAPI

func RegisterPcapAPI(r *shttp.Server, store storage.Storage, authBackend shttp.AuthenticationBackend)

RegisterPcapAPI registers a new pcap injector API

func RegisterStatusAPI

func RegisterStatusAPI(s *shttp.Server, r StatusReporter, authBackend shttp.AuthenticationBackend)

RegisterStatusAPI registers the status API endpoint

func RegisterTopologyAPI

func RegisterTopologyAPI(r *shttp.Server, g *graph.Graph, parser *traversal.GremlinTraversalParser, authBackend shttp.AuthenticationBackend)

RegisterTopologyAPI registers a new topology query API

Types

type AlertAPIHandler

type AlertAPIHandler struct {
	BasicAPIHandler
}

AlertAPIHandler aims to exposes the Alert API.

func RegisterAlertAPI

func RegisterAlertAPI(apiServer *Server, authBackend shttp.AuthenticationBackend) (*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 resource name "alert"

func (*AlertResourceHandler) New

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 resource

func (*BasicAPIHandler) AsyncWatch

AsyncWatch registers a new resource watcher

func (*BasicAPIHandler) Create

func (h *BasicAPIHandler) Create(resource types.Resource) error

Create a new resource in Etcd

func (*BasicAPIHandler) Decorate

func (h *BasicAPIHandler) Decorate(resource types.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) (types.Resource, bool)

Get a specific resource

func (*BasicAPIHandler) Index

func (h *BasicAPIHandler) Index() map[string]types.Resource

Index returns the list of resource available in Etcd

func (*BasicAPIHandler) Name

func (h *BasicAPIHandler) Name() string

Name returns the resource name

func (*BasicAPIHandler) New

func (h *BasicAPIHandler) New() types.Resource

New creates a new resource

func (*BasicAPIHandler) Unmarshal

func (h *BasicAPIHandler) Unmarshal(b []byte) (resource types.Resource, err error)

Unmarshal deserialize a resource

func (*BasicAPIHandler) Update

func (h *BasicAPIHandler) Update(id string, resource types.Resource) error

Update a resource

type BasicStoppableWatcher

type BasicStoppableWatcher struct {
	StoppableWatcher
	// contains filtered or unexported fields
}

BasicStoppableWatcher basic implementation of a resource watcher

func (*BasicStoppableWatcher) Stop

func (s *BasicStoppableWatcher) Stop()

Stop the resource watcher

type CaptureAPIHandler

type CaptureAPIHandler struct {
	BasicAPIHandler
	Graph *graph.Graph
}

CaptureAPIHandler based on BasicAPIHandler

func RegisterCaptureAPI

func RegisterCaptureAPI(apiServer *Server, g *graph.Graph, authBackend shttp.AuthenticationBackend) (*CaptureAPIHandler, error)

RegisterCaptureAPI registers an new resource, capture

func (*CaptureAPIHandler) Create

func (c *CaptureAPIHandler) Create(r types.Resource) error

Create tests that resource GremlinQuery does not exists already

func (*CaptureAPIHandler) Decorate

func (c *CaptureAPIHandler) Decorate(resource types.Resource)

Decorate populates 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

New creates a new capture resource

type EdgeRuleAPI added in v0.19.1

type EdgeRuleAPI struct {
	BasicAPIHandler
	Graph *graph.Graph
}

EdgeRuleAPI based on BasicAPIHandler

func RegisterEdgeRuleAPI added in v0.19.1

func RegisterEdgeRuleAPI(apiServer *Server, g *graph.Graph, authBackend shttp.AuthenticationBackend) (*EdgeRuleAPI, error)

RegisterEdgeRuleAPI registers an EdgeRule's API to a designated API Server

type EdgeRuleResourceHandler added in v0.19.1

type EdgeRuleResourceHandler struct {
	ResourceHandler
}

EdgeRuleResourceHandler describes a edge rule resource handler

func (*EdgeRuleResourceHandler) Name added in v0.19.1

func (erh *EdgeRuleResourceHandler) Name() string

Name returns resource name "edgerule"

func (*EdgeRuleResourceHandler) New added in v0.19.1

New creates a new EdgeRule

type Handler

type Handler interface {
	Name() string
	New() types.Resource
	Index() map[string]types.Resource
	Get(id string) (types.Resource, bool)
	Decorate(resource types.Resource)
	Create(resource types.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 Info

type Info struct {
	Host    string
	Version string
	Service string
}

Info for each host describes his API version and service (agent or analyzer)

type NodeRuleAPI added in v0.19.1

type NodeRuleAPI struct {
	BasicAPIHandler
	Graph *graph.Graph
}

NodeRuleAPI based on BasicAPIHandler

func RegisterNodeRuleAPI added in v0.19.1

func RegisterNodeRuleAPI(apiServer *Server, g *graph.Graph, authBackend shttp.AuthenticationBackend) (*NodeRuleAPI, error)

RegisterNodeRuleAPI register a new node rule api handler

func (*NodeRuleAPI) Create added in v0.19.1

func (nra *NodeRuleAPI) Create(r types.Resource) error

type NodeRuleResourceHandler added in v0.19.1

type NodeRuleResourceHandler struct {
	ResourceHandler
}

NodeRuleResourceHandler describes a node resource handler

func (*NodeRuleResourceHandler) Name added in v0.19.1

func (nrh *NodeRuleResourceHandler) Name() string

Name returns resource name "noderule"

func (*NodeRuleResourceHandler) New added in v0.19.1

New creates a new node rule

type PacketInjectorAPI

type PacketInjectorAPI struct {
	BasicAPIHandler
	Graph      *graph.Graph
	TrackingID chan string
}

PacketInjectorAPI exposes the packet injector API

func RegisterPacketInjectorAPI

func RegisterPacketInjectorAPI(g *graph.Graph, apiServer *Server, authBackend shttp.AuthenticationBackend) (*PacketInjectorAPI, error)

RegisterPacketInjectorAPI registers a new packet injector resource in the API

func (*PacketInjectorAPI) Create

func (pi *PacketInjectorAPI) Create(r types.Resource) error

Create allocates a new packet injection

type PcapAPI

type PcapAPI struct {
	Storage storage.Storage
}

PcapAPI exposes the pcap injector API

type ResourceHandler

type ResourceHandler interface {
	Name() string
	New() types.Resource
}

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, authBackend shttp.AuthenticationBackend) (*Server, error)

NewAPI creates a new API server based on http

func (*Server) GetHandler

func (a *Server) GetHandler(hname string) Handler

GetHandler returns the hander named hname

func (*Server) RegisterAPIHandler

func (a *Server) RegisterAPIHandler(handler Handler, authBackend shttp.AuthenticationBackend) error

RegisterAPIHandler registers a new handler for an API

type StatusReporter

type StatusReporter interface {
	GetStatus() interface{}
}

StatusReporter is the interface to report the status of a service

type StoppableWatcher

type StoppableWatcher interface {
	Stop()
}

StoppableWatcher interface

type TopologyAPI

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

TopologyAPI exposes the topology query API

type UserMetadataAPIHandler

type UserMetadataAPIHandler struct {
	BasicAPIHandler
	Graph *graph.Graph
}

UserMetadataAPIHandler based on BasicAPIHandler

func RegisterUserMetadataAPI

func RegisterUserMetadataAPI(apiServer *Server, g *graph.Graph, authBackend shttp.AuthenticationBackend) (*UserMetadataAPIHandler, error)

RegisterUserMetadataAPI registers a new user metadata api handler

func (*UserMetadataAPIHandler) Create

Create tests that whether the resource is duplicate or unique

type UserMetadataResourceHandler

type UserMetadataResourceHandler struct {
}

UserMetadataResourceHandler describes a user metadata resource handler

func (*UserMetadataResourceHandler) Name

Name return "usermetadata"

func (*UserMetadataResourceHandler) New

New creates a new user metadata resource

type WatcherCallback

type WatcherCallback func(action string, id string, resource types.Resource)

WatcherCallback callback called by the resource watcher

type WorkflowAPIHandler added in v0.19.1

type WorkflowAPIHandler struct {
	BasicAPIHandler
}

WorkflowAPIHandler based on BasicAPIHandler

func RegisterWorkflowAPI added in v0.19.1

func RegisterWorkflowAPI(apiServer *Server, authBackend shttp.AuthenticationBackend) (*WorkflowAPIHandler, error)

RegisterWorkflowAPI registers a new workflow api handler

func (*WorkflowAPIHandler) Create added in v0.19.1

func (w *WorkflowAPIHandler) Create(r types.Resource) error

Create tests whether the resource is a duplicate or is unique

func (*WorkflowAPIHandler) Get added in v0.19.1

func (*WorkflowAPIHandler) Index added in v0.19.1

func (w *WorkflowAPIHandler) Index() map[string]types.Resource

type WorkflowResourceHandler added in v0.19.1

type WorkflowResourceHandler struct {
}

WorkflowResourceHandler describes a workflow resource handler

func (*WorkflowResourceHandler) Name added in v0.19.1

func (w *WorkflowResourceHandler) Name() string

Name return "workflow"

func (*WorkflowResourceHandler) New added in v0.19.1

New creates a new workflow resource

Source Files

  • alert.go
  • capture.go
  • config.go
  • edgerule.go
  • handler.go
  • noderule.go
  • packet_injector.go
  • pcap.go
  • server.go
  • status.go
  • topology.go
  • user_metadata.go
  • workflow.go

Jump to

Keyboard shortcuts

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