Documentation
¶
Index ¶
- Constants
- Variables
- func Decode(buf []byte, out interface{}) error
- func Encode(t MessageType, msg interface{}) ([]byte, error)
- type BlockingQuery
- type CheckServiceNode
- type CheckServiceNodes
- type ChecksInStateRequest
- type DCSpecificRequest
- type DeregisterRequest
- type DirEntries
- type DirEntry
- type HealthCheck
- type HealthChecks
- type IndexedCheckServiceNodes
- type IndexedDirEntries
- type IndexedHealthChecks
- type IndexedNodeServices
- type IndexedNodes
- type IndexedServiceNodes
- type IndexedServices
- type KVSOp
- type KVSRequest
- type KeyRequest
- type MessageType
- type Node
- type NodeService
- type NodeServices
- type NodeSpecificRequest
- type Nodes
- type RegisterRequest
- type ServiceNode
- type ServiceNodes
- type ServiceSpecificRequest
- type Services
Constants ¶
const ( HealthUnknown = "unknown" HealthPassing = "passing" HealthWarning = "warning" HealthCritical = "critical" )
const ( KVSSet KVSOp = "set" KVSDelete = "delete" KVSDeleteTree = "delete-tree" KVSCAS = "cas" // Check-and-set )
Variables ¶
Functions ¶
func Encode ¶
func Encode(t MessageType, msg interface{}) ([]byte, error)
Encode is used to encode a MsgPack object with type prefix
Types ¶
type BlockingQuery ¶
type BlockingQuery struct {
// If set, wait until query exceeds given index
MinQueryIndex uint64
// Provided with MinQueryIndex to wait for change
MaxQueryTime time.Duration
}
BlockingQuery is used to block on a query and wait for a change. Either both fields, or neither must be provided.
type CheckServiceNode ¶
type CheckServiceNode struct {
Node Node
Service NodeService
Checks HealthChecks
}
CheckServiceNode is used to provide the node, it's service definition, as well as a HealthCheck that is associated
type CheckServiceNodes ¶
type CheckServiceNodes []CheckServiceNode
type ChecksInStateRequest ¶
type ChecksInStateRequest struct {
Datacenter string
State string
BlockingQuery
}
ChecksInStateRequest is used to query for nodes in a state
type DCSpecificRequest ¶
type DCSpecificRequest struct {
Datacenter string
BlockingQuery
}
DCSpecificRequest is used to query about a specific DC
type DeregisterRequest ¶
DeregisterRequest is used for the Catalog.Deregister endpoint to deregister a node as providing a service. If no service is provided the entire node is deregistered.
type DirEntries ¶
type DirEntries []*DirEntry
type DirEntry ¶
DirEntry is used to represent a directory entry. This is used for values in our Key-Value store.
type HealthCheck ¶
type HealthCheck struct {
Node string
CheckID string // Unique per-node ID
Name string // Check name
Status string // The current check status
Notes string // Additional notes with the status
ServiceID string // optional associated service
ServiceName string // optional service name
}
HealthCheck represents a single check on a given node
type HealthChecks ¶
type HealthChecks []*HealthCheck
type IndexedCheckServiceNodes ¶
type IndexedCheckServiceNodes struct {
Index uint64
Nodes CheckServiceNodes
}
type IndexedDirEntries ¶
type IndexedDirEntries struct {
Index uint64
Entries DirEntries
}
type IndexedHealthChecks ¶
type IndexedHealthChecks struct {
Index uint64
HealthChecks HealthChecks
}
type IndexedNodeServices ¶
type IndexedNodeServices struct {
Index uint64
NodeServices *NodeServices
}
type IndexedNodes ¶
type IndexedServiceNodes ¶
type IndexedServiceNodes struct {
Index uint64
ServiceNodes ServiceNodes
}
type IndexedServices ¶
type KVSRequest ¶
type KVSRequest struct {
Datacenter string
Op KVSOp // Which operation are we performing
DirEnt DirEntry // Which directory entry
}
KVSRequest is used to operate on the Key-Value store
type KeyRequest ¶
type KeyRequest struct {
Datacenter string
Key string
BlockingQuery
}
KeyRequest is used to request a key, or key prefix
type MessageType ¶
type MessageType uint8
const ( RegisterRequestType MessageType = iota DeregisterRequestType KVSRequestType )
type NodeService ¶
NodeService is a service provided by a node
type NodeServices ¶
type NodeServices struct {
Node Node
Services map[string]*NodeService
}
type NodeSpecificRequest ¶
type NodeSpecificRequest struct {
Datacenter string
Node string
BlockingQuery
}
NodeSpecificRequest is used to request the information about a single node
type RegisterRequest ¶
type RegisterRequest struct {
Datacenter string
Node string
Address string
Service *NodeService
Check *HealthCheck
}
RegisterRequest is used for the Catalog.Register endpoint to register a node as providing a service. If no service is provided, the node is registered.
type ServiceNode ¶
type ServiceNode struct {
Node string
Address string
ServiceID string
ServiceName string
ServiceTags []string
ServicePort int
}
ServiceNode represents a node that is part of a service
type ServiceNodes ¶
type ServiceNodes []ServiceNode
type ServiceSpecificRequest ¶
type ServiceSpecificRequest struct {
Datacenter string
ServiceName string
ServiceTag string
TagFilter bool // Controls tag filtering
BlockingQuery
}
ServiceSpecificRequest is used to query about a specific node