server

package
v0.16.0 Latest Latest
Warning

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

Go to latest
Published: Jan 29, 2018 License: Apache-2.0 Imports: 27 Imported by: 18

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterConfigAPI

func RegisterConfigAPI(r *shttp.Server)

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

func RegisterPcapAPI

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

RegisterPcapAPI registers a new pcap injector API

func RegisterStatusAPI

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

RegisterStatus registers the status endpoint

func RegisterTopologyAPI

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

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) (*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) (*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 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 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) (*PacketInjectorAPI, error)

RegisterPacketInjectorAPI registers a new packet injector resource in the API

func (*PacketInjectorAPI) Create

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

type PacketInjectorResourceHandler

type PacketInjectorResourceHandler struct {
	ResourceHandler
}

PacketInjectorResourceHandler describes a packet injector resource handler

func (*PacketInjectorResourceHandler) Name

func (*PacketInjectorResourceHandler) New

type PcapAPI

type PcapAPI struct {
	Storage storage.Storage
}

PcapAPI exposes the pcap injector API

type ResourceHandler

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

types.ResourceHandler aims to creates new resource of an API

type ResourceWatcher

type ResourceWatcher interface {
	AsyncWatch(f WatcherCallback) StoppableWatcher
}

types.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

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

GetHandler returns the hander named hname

func (*Server) RegisterAPIHandler

func (a *Server) RegisterAPIHandler(handler Handler) error

RegisterAPIHandler registers a new handler for an API

type StatusReporter

type StatusReporter interface {
	GetStatus() interface{}
}

WSSpeaker 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) (*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

Jump to

Keyboard shortcuts

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