graph

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Feb 23, 2016 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MaxAlertMessageQueue = 1000
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Alert

type Alert struct {
	Router *mux.Router
	Graph  *Graph
	// contains filtered or unexported fields
}

func NewAlert

func NewAlert(g *Graph, router *mux.Router) *Alert

func (*Alert) AddEventListener

func (a *Alert) AddEventListener(l AlertEventListener)

func (*Alert) AlertDelete

func (a *Alert) AlertDelete(w http.ResponseWriter, r *http.Request)

func (*Alert) AlertIndex

func (a *Alert) AlertIndex(w http.ResponseWriter, r *http.Request)

func (*Alert) AlertInsert

func (a *Alert) AlertInsert(w http.ResponseWriter, r *http.Request)

func (*Alert) AlertShow

func (a *Alert) AlertShow(w http.ResponseWriter, r *http.Request)

func (*Alert) DelEventListener

func (a *Alert) DelEventListener(l AlertEventListener)

func (*Alert) EvalNodes

func (a *Alert) EvalNodes()

func (*Alert) OnConnected

func (a *Alert) OnConnected()

func (*Alert) OnDisconnected

func (a *Alert) OnDisconnected()

func (*Alert) OnEdgeAdded

func (a *Alert) OnEdgeAdded(e *Edge)

func (*Alert) OnEdgeDeleted

func (a *Alert) OnEdgeDeleted(e *Edge)

func (*Alert) OnEdgeUpdated

func (a *Alert) OnEdgeUpdated(e *Edge)

func (*Alert) OnNodeAdded

func (a *Alert) OnNodeAdded(n *Node)

func (*Alert) OnNodeDeleted

func (a *Alert) OnNodeDeleted(n *Node)

func (*Alert) OnNodeUpdated

func (a *Alert) OnNodeUpdated(n *Node)

func (*Alert) Register

func (a *Alert) Register(atp AlertTestParam) *AlertTest

func (*Alert) RegisterRPCEndpoints added in v0.2.0

func (a *Alert) RegisterRPCEndpoints()

func (*Alert) UnRegister

func (a *Alert) UnRegister(atp AlertTestParam)

remove all the alerts than match a least one atp field

type AlertEventListener

type AlertEventListener interface {
	OnAlert(n *AlertMessage)
}

type AlertMessage

type AlertMessage struct {
	UUID       uuid.UUID
	Type       AlertType
	Timestamp  time.Time
	Count      int
	Reason     string
	ReasonData interface{}
}

func (*AlertMessage) Marshal

func (am *AlertMessage) Marshal() []byte

func (*AlertMessage) String

func (am *AlertMessage) String() string

type AlertTest

type AlertTest struct {
	AlertTestParam
	UUID       *uuid.UUID
	CreateTime time.Time

	Type  AlertType
	Count int
}

type AlertTestParam

type AlertTestParam struct {
	Name        string
	Description string
	Select      string
	Test        string
	Action      string
}

type AlertType

type AlertType int
const (
	FIXED AlertType = 1 + iota
	THRESHOLD
)

type AsyncClient

type AsyncClient struct {
	Addr string
	Port int
	Path string
	// contains filtered or unexported fields
}

func NewAsyncClient

func NewAsyncClient(addr string, port int, path string) *AsyncClient

func (*AsyncClient) AddListener

func (c *AsyncClient) AddListener(l EventListener)

func (*AsyncClient) Connect

func (c *AsyncClient) Connect()

func (*AsyncClient) Disconnect

func (c *AsyncClient) Disconnect()

func (*AsyncClient) IsConnected

func (c *AsyncClient) IsConnected() bool

func (*AsyncClient) SendWSMessage

func (c *AsyncClient) SendWSMessage(m WSMessage)

type ClientType

type ClientType int
const (
	GRAPHCLIENT ClientType = 1 + iota
	ALERTCLIENT
)

type Edge

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

func (*Edge) MarshalJSON

func (e *Edge) MarshalJSON() ([]byte, error)

func (*Edge) Metadata added in v0.2.0

func (e *Edge) Metadata() Metadata

func (*Edge) String

func (e *Edge) String() string

type EventListener

type EventListener interface {
	OnConnected()
	OnDisconnected()
}

type Forwarder

type Forwarder struct {
	Client *AsyncClient
	Graph  *Graph
}

func NewForwarder

func NewForwarder(c *AsyncClient, g *Graph) *Forwarder

func (*Forwarder) OnConnected

func (c *Forwarder) OnConnected()

func (*Forwarder) OnDisconnected

func (c *Forwarder) OnDisconnected()

func (*Forwarder) OnEdgeAdded

func (c *Forwarder) OnEdgeAdded(e *Edge)

func (*Forwarder) OnEdgeDeleted

func (c *Forwarder) OnEdgeDeleted(e *Edge)

func (*Forwarder) OnEdgeUpdated

func (c *Forwarder) OnEdgeUpdated(e *Edge)

func (*Forwarder) OnNodeAdded

func (c *Forwarder) OnNodeAdded(n *Node)

func (*Forwarder) OnNodeDeleted

func (c *Forwarder) OnNodeDeleted(n *Node)

func (*Forwarder) OnNodeUpdated

func (c *Forwarder) OnNodeUpdated(n *Node)

type Graph

type Graph struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewGraph

func NewGraph(b GraphBackend) (*Graph, error)

func (*Graph) AddEdge

func (g *Graph) AddEdge(e *Edge) bool

func (*Graph) AddEventListener

func (g *Graph) AddEventListener(l GraphEventListener)

func (*Graph) AddMetadata added in v0.2.0

func (g *Graph) AddMetadata(e interface{}, k string, v interface{})

func (*Graph) AddNode

func (g *Graph) AddNode(n *Node) bool

func (*Graph) AreLinked

func (g *Graph) AreLinked(n1 *Node, n2 *Node) bool

func (*Graph) DelEdge

func (g *Graph) DelEdge(e *Edge)

func (*Graph) DelNode

func (g *Graph) DelNode(n *Node)

func (*Graph) DelSubGraph

func (g *Graph) DelSubGraph(n *Node)

func (*Graph) GetAncestorsTo

func (g *Graph) GetAncestorsTo(n *Node, f Metadata) ([]*Node, bool)

func (*Graph) GetEdge

func (g *Graph) GetEdge(i Identifier) *Edge

func (*Graph) GetEdges

func (g *Graph) GetEdges() []*Edge

func (*Graph) GetNode

func (g *Graph) GetNode(i Identifier) *Node

func (*Graph) GetNodes

func (g *Graph) GetNodes() []*Node
func (g *Graph) Link(n1 *Node, n2 *Node)

func (*Graph) LookupChildren

func (g *Graph) LookupChildren(n *Node, f Metadata) []*Node

func (*Graph) LookupFirstChild added in v0.2.0

func (g *Graph) LookupFirstChild(n *Node, f Metadata) *Node

func (*Graph) LookupFirstNode

func (g *Graph) LookupFirstNode(m Metadata) *Node

func (*Graph) LookupNodes

func (g *Graph) LookupNodes(m Metadata) []*Node

func (*Graph) LookupNodesFromKey

func (g *Graph) LookupNodesFromKey(key string) []*Node

func (*Graph) LookupParentNodes

func (g *Graph) LookupParentNodes(n *Node, f Metadata) []*Node

func (*Graph) MarshalJSON

func (g *Graph) MarshalJSON() ([]byte, error)

func (*Graph) NewEdge

func (g *Graph) NewEdge(i Identifier, p *Node, c *Node, m Metadata) *Edge

func (*Graph) NewNode

func (g *Graph) NewNode(i Identifier, m Metadata) *Node

func (*Graph) NotifyEdgeAdded

func (g *Graph) NotifyEdgeAdded(e *Edge)

func (*Graph) NotifyEdgeDeleted

func (g *Graph) NotifyEdgeDeleted(e *Edge)

func (*Graph) NotifyEdgeUpdated

func (g *Graph) NotifyEdgeUpdated(e *Edge)

func (*Graph) NotifyNodeAdded

func (g *Graph) NotifyNodeAdded(n *Node)

func (*Graph) NotifyNodeDeleted

func (g *Graph) NotifyNodeDeleted(n *Node)

func (*Graph) NotifyNodeUpdated

func (g *Graph) NotifyNodeUpdated(n *Node)

func (*Graph) Replace

func (g *Graph) Replace(o *Node, n *Node, m Metadata) *Node

func (*Graph) SetMetadata

func (g *Graph) SetMetadata(e interface{}, m Metadata)

func (*Graph) String

func (g *Graph) String() string
func (g *Graph) Unlink(n1 *Node, n2 *Node)

type GraphBackend

type GraphBackend interface {
	AddNode(n *Node) bool
	DelNode(n *Node) bool
	GetNode(i Identifier) *Node
	GetNodeEdges(n *Node) []*Edge

	AddEdge(e *Edge) bool
	DelEdge(e *Edge) bool
	GetEdge(i Identifier) *Edge
	GetEdgeNodes(e *Edge) (*Node, *Node)

	AddMetadata(e interface{}, k string, v interface{}) bool
	SetMetadata(e interface{}, m Metadata) bool

	GetNodes() []*Node
	GetEdges() []*Edge
}

func BackendFromConfig

func BackendFromConfig() (GraphBackend, error)

type GraphEventListener

type GraphEventListener interface {
	OnNodeUpdated(n *Node)
	OnNodeAdded(n *Node)
	OnNodeDeleted(n *Node)
	OnEdgeUpdated(e *Edge)
	OnEdgeAdded(e *Edge)
	OnEdgeDeleted(e *Edge)
}

type GremlinBackend

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

func NewGremlinBackend

func NewGremlinBackend(addr string, port int) (*GremlinBackend, error)

func (GremlinBackend) AddEdge

func (g GremlinBackend) AddEdge(e *Edge) bool

func (GremlinBackend) AddMetadata added in v0.2.0

func (g GremlinBackend) AddMetadata(i interface{}, k string, v interface{}) bool

func (GremlinBackend) AddNode

func (g GremlinBackend) AddNode(n *Node) bool

func (GremlinBackend) DelEdge

func (g GremlinBackend) DelEdge(e *Edge) bool

func (GremlinBackend) DelNode

func (g GremlinBackend) DelNode(n *Node) bool

func (GremlinBackend) GetEdge

func (g GremlinBackend) GetEdge(i Identifier) *Edge

func (GremlinBackend) GetEdgeNodes

func (g GremlinBackend) GetEdgeNodes(e *Edge) (*Node, *Node)

func (GremlinBackend) GetEdges

func (g GremlinBackend) GetEdges() []*Edge

func (GremlinBackend) GetNode

func (g GremlinBackend) GetNode(i Identifier) *Node

func (GremlinBackend) GetNodeEdges

func (g GremlinBackend) GetNodeEdges(n *Node) []*Edge

func (GremlinBackend) GetNodes

func (g GremlinBackend) GetNodes() []*Node

func (GremlinBackend) SetMetadata

func (g GremlinBackend) SetMetadata(i interface{}, meta Metadata) bool

type Identifier

type Identifier string

func GenID

func GenID() Identifier

type MemoryBackend

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

func NewMemoryBackend

func NewMemoryBackend() (*MemoryBackend, error)

func (MemoryBackend) AddEdge

func (m MemoryBackend) AddEdge(e *Edge) bool

func (MemoryBackend) AddMetadata added in v0.2.0

func (m MemoryBackend) AddMetadata(i interface{}, k string, v interface{}) bool

func (MemoryBackend) AddNode

func (m MemoryBackend) AddNode(n *Node) bool

func (MemoryBackend) DelEdge

func (m MemoryBackend) DelEdge(e *Edge) bool

func (MemoryBackend) DelNode

func (m MemoryBackend) DelNode(n *Node) bool

func (MemoryBackend) GetEdge

func (m MemoryBackend) GetEdge(i Identifier) *Edge

func (MemoryBackend) GetEdgeNodes

func (m MemoryBackend) GetEdgeNodes(e *Edge) (*Node, *Node)

func (MemoryBackend) GetEdges

func (m MemoryBackend) GetEdges() []*Edge

func (MemoryBackend) GetNode

func (m MemoryBackend) GetNode(i Identifier) *Node

func (MemoryBackend) GetNodeEdges

func (m MemoryBackend) GetNodeEdges(n *Node) []*Edge

func (MemoryBackend) GetNodes

func (m MemoryBackend) GetNodes() []*Node

func (MemoryBackend) SetMetadata

func (m MemoryBackend) SetMetadata(i interface{}, meta Metadata) bool

type MemoryBackendEdge

type MemoryBackendEdge struct {
	*Edge
}

func (MemoryBackendEdge) Metadata added in v0.2.0

func (e MemoryBackendEdge) Metadata() Metadata

func (MemoryBackendEdge) String

func (e MemoryBackendEdge) String() string

type MemoryBackendNode

type MemoryBackendNode struct {
	*Node
	// contains filtered or unexported fields
}

func (MemoryBackendNode) Metadata added in v0.2.0

func (e MemoryBackendNode) Metadata() Metadata

func (MemoryBackendNode) String

func (e MemoryBackendNode) String() string

type Metadata added in v0.2.0

type Metadata map[string]interface{}

func (*Metadata) String added in v0.2.0

func (m *Metadata) String() string

type Node

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

func (*Node) MarshalJSON

func (n *Node) MarshalJSON() ([]byte, error)

func (*Node) Metadata added in v0.2.0

func (e *Node) Metadata() Metadata

func (*Node) String

func (e *Node) String() string

type Server

type Server struct {
	Graph  *Graph
	Alert  *Alert
	Router *mux.Router

	Host string
	// contains filtered or unexported fields
}

func NewServer

func NewServer(g *Graph, a *Alert, router *mux.Router, pongWait time.Duration) *Server

func NewServerFromConfig

func NewServerFromConfig(g *Graph, a *Alert, router *mux.Router) (*Server, error)

func (*Server) ListenAndServe

func (s *Server) ListenAndServe()

func (*Server) OnEdgeAdded

func (s *Server) OnEdgeAdded(e *Edge)

func (*Server) OnEdgeDeleted

func (s *Server) OnEdgeDeleted(e *Edge)

func (*Server) OnEdgeUpdated

func (s *Server) OnEdgeUpdated(e *Edge)

func (*Server) OnNodeAdded

func (s *Server) OnNodeAdded(n *Node)

func (*Server) OnNodeDeleted

func (s *Server) OnNodeDeleted(n *Node)

func (*Server) OnNodeUpdated

func (s *Server) OnNodeUpdated(n *Node)

func (*Server) Stop

func (s *Server) Stop()

type WSClient

type WSClient struct {
	Type ClientType
	// contains filtered or unexported fields
}

func (*WSClient) OnAlert

func (c *WSClient) OnAlert(amsg *AlertMessage)

Called by alert.EvalNodes()

type WSMessage

type WSMessage struct {
	Type string
	Obj  interface{}
}

func UnmarshalWSMessage

func UnmarshalWSMessage(b []byte) (WSMessage, error)

func (WSMessage) Marshal

func (g WSMessage) Marshal() []byte

func (WSMessage) String

func (g WSMessage) String() string

type WSServer

type WSServer struct {
	Graph *Graph
	Alert *Alert
	// contains filtered or unexported fields
}

func (*WSServer) ListenAndServe

func (s *WSServer) ListenAndServe()

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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