Documentation ¶
Index ¶
- Constants
- Variables
- func Decode(buf []byte, out interface{}) error
- func Encode(t MessageType, msg interface{}) ([]byte, error)
- func ValidStatus(s string) bool
- type ACL
- type ACLOp
- type ACLPolicy
- type ACLPolicyRequest
- type ACLRequest
- type ACLSpecificRequest
- type ACLs
- type CheckServiceNode
- type CheckServiceNodes
- type ChecksInStateRequest
- type CompoundResponse
- type Coordinate
- type CoordinateUpdateRequest
- type Coordinates
- type DCSpecificRequest
- type DatacenterMap
- type DeregisterRequest
- type DirEntries
- type DirEntry
- type EventFireRequest
- type EventFireResponse
- type HealthCheck
- type HealthChecks
- type IndexedACLs
- type IndexedCheckServiceNodes
- type IndexedCoordinate
- type IndexedCoordinates
- type IndexedDirEntries
- type IndexedHealthChecks
- type IndexedKeyList
- type IndexedNodeDump
- type IndexedNodeServices
- type IndexedNodes
- type IndexedPreparedQueries
- type IndexedServiceNodes
- type IndexedServices
- type IndexedSessions
- type KVSOp
- type KVSRequest
- type KeyListRequest
- type KeyRequest
- type KeyringOp
- type KeyringRequest
- type KeyringResponse
- type KeyringResponses
- type MessageType
- type Node
- type NodeDump
- type NodeInfo
- type NodeService
- type NodeServices
- type NodeSpecificRequest
- type Nodes
- type PreparedQueries
- type PreparedQuery
- type PreparedQueryExecuteRemoteRequest
- type PreparedQueryExecuteRequest
- type PreparedQueryExecuteResponse
- type PreparedQueryExplainResponse
- type PreparedQueryOp
- type PreparedQueryRequest
- type PreparedQuerySpecificRequest
- type QueryDNSOptions
- type QueryDatacenterOptions
- type QueryMeta
- type QueryOptions
- type QuerySource
- type QueryTemplateOptions
- type RPCInfo
- type RaftIndex
- type RegisterRequest
- type ServiceNode
- type ServiceNodes
- type ServiceQuery
- type ServiceSpecificRequest
- type Services
- type Session
- type SessionBehavior
- type SessionOp
- type SessionRequest
- type SessionSpecificRequest
- type Sessions
- type TombstoneOp
- type TombstoneRequest
- type WriteRequest
Constants ¶
const ( // HealthAny is special, and is used as a wild card, // not as a specific state. HealthAny = "any" HealthUnknown = "unknown" HealthPassing = "passing" HealthWarning = "warning" HealthCritical = "critical" )
const ( // Client tokens have rules applied ACLTypeClient = "client" // Management tokens have an always allow policy. // They are used for token management. ACLTypeManagement = "management" )
const ( KVSSet KVSOp = "set" KVSDelete = "delete" KVSDeleteCAS = "delete-cas" // Delete with check-and-set KVSDeleteTree = "delete-tree" KVSCAS = "cas" // Check-and-set KVSLock = "lock" // Lock a key KVSUnlock = "unlock" // Unlock a key )
const ( SessionTTLMax = 24 * time.Hour SessionTTLMultiplier = 2 )
const ( ACLSet ACLOp = "set" ACLForceSet = "force-set" // Deprecated, left to backwards compatibility ACLDelete = "delete" )
const ( KeyringList KeyringOp = "list" KeyringInstall = "install" KeyringUse = "use" KeyringRemove = "remove" )
const ( // MaxLockDelay provides a maximum LockDelay value for // a session. Any value above this will not be respected. MaxLockDelay = 60 * time.Second )
const ( // QueryTemplateTypeNamePrefixMatch uses the Name field of the query as // a prefix to select the template. QueryTemplateTypeNamePrefixMatch = "name_prefix_match" )
Variables ¶
Functions ¶
func Encode ¶
func Encode(t MessageType, msg interface{}) ([]byte, error)
Encode is used to encode a MsgPack object with type prefix
func ValidStatus ¶ added in v0.5.1
Types ¶
type ACLPolicyRequest ¶ added in v0.4.0
type ACLPolicyRequest struct { Datacenter string ACL string ETag string QueryOptions }
ACLPolicyRequest is used to request an ACL by ID, conditionally filtering on an ID
func (*ACLPolicyRequest) RequestDatacenter ¶ added in v0.4.0
func (r *ACLPolicyRequest) RequestDatacenter() string
type ACLRequest ¶ added in v0.4.0
type ACLRequest struct { Datacenter string Op ACLOp ACL ACL WriteRequest }
ACLRequest is used to create, update or delete an ACL
func (*ACLRequest) RequestDatacenter ¶ added in v0.4.0
func (r *ACLRequest) RequestDatacenter() string
type ACLSpecificRequest ¶ added in v0.4.0
type ACLSpecificRequest struct { Datacenter string ACL string QueryOptions }
ACLSpecificRequest is used to request an ACL by ID
func (*ACLSpecificRequest) RequestDatacenter ¶ added in v0.4.0
func (r *ACLSpecificRequest) RequestDatacenter() string
type CheckServiceNode ¶
type CheckServiceNode struct { Node *Node Service *NodeService Checks HealthChecks }
CheckServiceNode is used to provide the node, its service definition, as well as a HealthCheck that is associated.
type CheckServiceNodes ¶
type CheckServiceNodes []CheckServiceNode
func (CheckServiceNodes) Filter ¶ added in v0.6.0
func (nodes CheckServiceNodes) Filter(onlyPassing bool) CheckServiceNodes
Filter removes nodes that are failing health checks (and any non-passing check if that option is selected). Note that this returns the filtered results AND modifies the receiver for performance.
func (CheckServiceNodes) Shuffle ¶ added in v0.6.0
func (nodes CheckServiceNodes) Shuffle()
Shuffle does an in-place random shuffle using the Fisher-Yates algorithm.
type ChecksInStateRequest ¶
type ChecksInStateRequest struct { Datacenter string State string Source QuerySource QueryOptions }
ChecksInStateRequest is used to query for nodes in a state
func (*ChecksInStateRequest) RequestDatacenter ¶ added in v0.2.0
func (r *ChecksInStateRequest) RequestDatacenter() string
type CompoundResponse ¶ added in v0.5.0
type CompoundResponse interface { // Add adds a new response to the compound response Add(interface{}) // New returns an empty response object which can be passed around by // reference, and then passed to Add() later on. New() interface{} }
CompoundResponse is an interface for gathering multiple responses. It is used in cross-datacenter RPC calls where more than 1 datacenter is expected to reply.
type Coordinate ¶ added in v0.6.0
type Coordinate struct { Node string Coord *coordinate.Coordinate }
Coordinate stores a node name with its associated network coordinate.
type CoordinateUpdateRequest ¶ added in v0.6.0
type CoordinateUpdateRequest struct { Datacenter string Node string Coord *coordinate.Coordinate WriteRequest }
CoordinateUpdateRequest is used to update the network coordinate of a given node.
func (*CoordinateUpdateRequest) RequestDatacenter ¶ added in v0.6.0
func (c *CoordinateUpdateRequest) RequestDatacenter() string
RequestDatacenter returns the datacenter for a given update request.
type Coordinates ¶ added in v0.6.0
type Coordinates []*Coordinate
type DCSpecificRequest ¶
type DCSpecificRequest struct { Datacenter string Source QuerySource QueryOptions }
DCSpecificRequest is used to query about a specific DC
func (*DCSpecificRequest) RequestDatacenter ¶ added in v0.2.0
func (r *DCSpecificRequest) RequestDatacenter() string
type DatacenterMap ¶ added in v0.6.0
type DatacenterMap struct { Datacenter string Coordinates Coordinates }
DatacenterMap is used to represent a list of nodes with their raw coordinates, associated with a datacenter.
type DeregisterRequest ¶
type DeregisterRequest struct { Datacenter string Node string ServiceID string CheckID string WriteRequest }
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.
func (*DeregisterRequest) RequestDatacenter ¶ added in v0.2.0
func (r *DeregisterRequest) RequestDatacenter() string
type DirEntries ¶
type DirEntries []*DirEntry
type DirEntry ¶
type DirEntry struct { LockIndex uint64 Key string Flags uint64 Value []byte Session string `json:",omitempty"` RaftIndex }
DirEntry is used to represent a directory entry. This is used for values in our Key-Value store.
type EventFireRequest ¶ added in v0.4.0
type EventFireRequest struct { Datacenter string Name string Payload []byte // Not using WriteRequest so that any server can process // the request. It is a bit unusual... QueryOptions }
EventFireRequest is used to ask a server to fire a Serf event. It is a bit odd, since it doesn't depend on the catalog or leader. Any node can respond, so it's not quite like a standard write request. This is used only internally.
func (*EventFireRequest) RequestDatacenter ¶ added in v0.4.0
func (r *EventFireRequest) RequestDatacenter() string
type EventFireResponse ¶ added in v0.4.0
type EventFireResponse struct {
QueryMeta
}
EventFireResponse is used to respond to a fire request.
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 Output string // Holds output of script runs ServiceID string // optional associated service ServiceName string // optional service name RaftIndex }
HealthCheck represents a single check on a given node
func (*HealthCheck) IsSame ¶ added in v0.6.0
func (c *HealthCheck) IsSame(other *HealthCheck) bool
IsSame checks if one HealthCheck is the same as another, without looking at the Raft information (that's why we didn't call it IsEqual). This is useful for seeing if an update would be idempotent for all the functional parts of the structure.
type HealthChecks ¶
type HealthChecks []*HealthCheck
type IndexedACLs ¶ added in v0.4.0
type IndexedCheckServiceNodes ¶
type IndexedCheckServiceNodes struct { Nodes CheckServiceNodes QueryMeta }
type IndexedCoordinate ¶ added in v0.6.0
type IndexedCoordinate struct { Coord *coordinate.Coordinate QueryMeta }
IndexedCoordinate is used to represent a single node's coordinate from the state store.
type IndexedCoordinates ¶ added in v0.6.0
type IndexedCoordinates struct { Coordinates Coordinates QueryMeta }
IndexedCoordinates is used to represent a list of nodes and their corresponding raw coordinates.
type IndexedDirEntries ¶
type IndexedDirEntries struct { Entries DirEntries QueryMeta }
type IndexedHealthChecks ¶
type IndexedHealthChecks struct { HealthChecks HealthChecks QueryMeta }
type IndexedKeyList ¶ added in v0.2.0
type IndexedNodeDump ¶ added in v0.2.0
type IndexedNodeServices ¶
type IndexedNodeServices struct { NodeServices *NodeServices QueryMeta }
type IndexedNodes ¶
type IndexedPreparedQueries ¶ added in v0.6.0
type IndexedPreparedQueries struct { Queries PreparedQueries QueryMeta }
type IndexedServiceNodes ¶
type IndexedServiceNodes struct { ServiceNodes ServiceNodes QueryMeta }
type IndexedServices ¶
type IndexedSessions ¶ added in v0.3.0
type KVSRequest ¶
type KVSRequest struct { Datacenter string Op KVSOp // Which operation are we performing DirEnt DirEntry // Which directory entry WriteRequest }
KVSRequest is used to operate on the Key-Value store
func (*KVSRequest) RequestDatacenter ¶ added in v0.2.0
func (r *KVSRequest) RequestDatacenter() string
type KeyListRequest ¶ added in v0.2.0
type KeyListRequest struct { Datacenter string Prefix string Seperator string QueryOptions }
KeyListRequest is used to list keys
func (*KeyListRequest) RequestDatacenter ¶ added in v0.2.0
func (r *KeyListRequest) RequestDatacenter() string
type KeyRequest ¶
type KeyRequest struct { Datacenter string Key string QueryOptions }
KeyRequest is used to request a key, or key prefix
func (*KeyRequest) RequestDatacenter ¶ added in v0.2.0
func (r *KeyRequest) RequestDatacenter() string
type KeyringRequest ¶ added in v0.5.0
type KeyringRequest struct { Operation KeyringOp Key string Datacenter string Forwarded bool QueryOptions }
KeyringRequest encapsulates a request to modify an encryption keyring. It can be used for install, remove, or use key type operations.
func (*KeyringRequest) RequestDatacenter ¶ added in v0.5.0
func (r *KeyringRequest) RequestDatacenter() string
type KeyringResponse ¶ added in v0.5.0
type KeyringResponse struct { WAN bool Datacenter string Messages map[string]string Keys map[string]int NumNodes int Error string }
KeyringResponse is a unified key response and can be used for install, remove, use, as well as listing key queries.
type KeyringResponses ¶ added in v0.5.0
type KeyringResponses struct { Responses []*KeyringResponse QueryMeta }
KeyringResponses holds multiple responses to keyring queries. Each datacenter replies independently, and KeyringResponses is used as a container for the set of all responses.
func (*KeyringResponses) Add ¶ added in v0.5.0
func (r *KeyringResponses) Add(v interface{})
func (*KeyringResponses) New ¶ added in v0.5.0
func (r *KeyringResponses) New() interface{}
type MessageType ¶
type MessageType uint8
const ( RegisterRequestType MessageType = iota DeregisterRequestType KVSRequestType SessionRequestType ACLRequestType TombstoneRequestType CoordinateBatchUpdateType PreparedQueryRequestType )
const ( // IgnoreUnknownTypeFlag is set along with a MessageType // to indicate that the message type can be safely ignored // if it is not recognized. This is for future proofing, so // that new commands can be added in a way that won't cause // old servers to crash when the FSM attempts to process them. IgnoreUnknownTypeFlag MessageType = 128 )
type NodeDump ¶ added in v0.2.0
type NodeDump []*NodeInfo
NodeDump is used to dump all the nodes with all their associated data. This is currently used for the UI only, as it is rather expensive to generate.
type NodeInfo ¶ added in v0.2.0
type NodeInfo struct { Node string Address string TaggedAddresses map[string]string Services []*NodeService Checks []*HealthCheck }
NodeInfo is used to dump all associated information about a node. This is currently used for the UI only, as it is rather expensive to generate.
type NodeService ¶
type NodeService struct { ID string Service string Tags []string Address string Port int EnableTagOverride bool RaftIndex }
NodeService is a service provided by a node
func (*NodeService) IsSame ¶ added in v0.6.0
func (s *NodeService) IsSame(other *NodeService) bool
IsSame checks if one NodeService is the same as another, without looking at the Raft information (that's why we didn't call it IsEqual). This is useful for seeing if an update would be idempotent for all the functional parts of the structure.
func (*NodeService) ToServiceNode ¶ added in v0.6.0
func (s *NodeService) ToServiceNode(node, address string) *ServiceNode
ToServiceNode converts the given node service to a service node.
type NodeServices ¶
type NodeServices struct { Node *Node Services map[string]*NodeService }
type NodeSpecificRequest ¶
type NodeSpecificRequest struct { Datacenter string Node string QueryOptions }
NodeSpecificRequest is used to request the information about a single node
func (*NodeSpecificRequest) RequestDatacenter ¶ added in v0.2.0
func (r *NodeSpecificRequest) RequestDatacenter() string
type PreparedQueries ¶ added in v0.6.0
type PreparedQueries []*PreparedQuery
type PreparedQuery ¶ added in v0.6.0
type PreparedQuery struct { // ID is this UUID-based ID for the query, always generated by Consul. ID string // Name is an optional friendly name for the query supplied by the // user. NOTE - if this feature is used then it will reduce the security // of any read ACL associated with this query/service since this name // can be used to locate nodes with supplying any ACL. Name string // Session is an optional session to tie this query's lifetime to. If // this is omitted then the query will not expire. Session string // Token is the ACL token used when the query was created, and it is // used when a query is subsequently executed. This token, or a token // with management privileges, must be used to change the query later. Token string // Template is used to configure this query as a template, which will // respond to queries based on the Name, and then will be rendered // before it is executed. Template QueryTemplateOptions // Service defines a service query (leaving things open for other types // later). Service ServiceQuery // DNS has options that control how the results of this query are // served over DNS. DNS QueryDNSOptions RaftIndex }
PreparedQuery defines a complete prepared query, and is the structure we maintain in the state store.
func (*PreparedQuery) GetACLPrefix ¶ added in v0.6.4
func (pq *PreparedQuery) GetACLPrefix() (string, bool)
GetACLPrefix returns the prefix to look up the prepared_query ACL policy for this query, and whether the prefix applies to this query. You always need to check the ok value before using the prefix.
type PreparedQueryExecuteRemoteRequest ¶ added in v0.6.0
type PreparedQueryExecuteRemoteRequest struct { // Datacenter is the target this request is intended for. Datacenter string // Query is a copy of the query to execute. We have to ship the entire // query over since it won't be present in the remote state store. Query PreparedQuery // Limit will trim the resulting list down to the given limit. Limit int // QueryOptions (unfortunately named here) controls the consistency // settings for the the service lookups. QueryOptions }
PreparedQueryExecuteRemoteRequest is used when running a local query in a remote datacenter.
func (*PreparedQueryExecuteRemoteRequest) RequestDatacenter ¶ added in v0.6.0
func (q *PreparedQueryExecuteRemoteRequest) RequestDatacenter() string
RequestDatacenter returns the datacenter for a given request.
type PreparedQueryExecuteRequest ¶ added in v0.6.0
type PreparedQueryExecuteRequest struct { // Datacenter is the target this request is intended for. Datacenter string // QueryIDOrName is the ID of a query _or_ the name of one, either can // be provided. QueryIDOrName string // Limit will trim the resulting list down to the given limit. Limit int // Source is used to sort the results relative to a given node using // network coordinates. Source QuerySource // QueryOptions (unfortunately named here) controls the consistency // settings for the query lookup itself, as well as the service lookups. QueryOptions }
PreparedQueryExecuteRequest is used to execute a prepared query.
func (*PreparedQueryExecuteRequest) RequestDatacenter ¶ added in v0.6.0
func (q *PreparedQueryExecuteRequest) RequestDatacenter() string
RequestDatacenter returns the datacenter for a given request.
type PreparedQueryExecuteResponse ¶ added in v0.6.0
type PreparedQueryExecuteResponse struct { // Service is the service that was queried. Service string // Nodes has the nodes that were output by the query. Nodes CheckServiceNodes // DNS has the options for serving these results over DNS. DNS QueryDNSOptions // Datacenter is the datacenter that these results came from. Datacenter string // Failovers is a count of how many times we had to query a remote // datacenter. Failovers int // QueryMeta has freshness information about the query. QueryMeta }
PreparedQueryExecuteResponse has the results of executing a query.
type PreparedQueryExplainResponse ¶ added in v0.6.4
type PreparedQueryExplainResponse struct { // Query has the fully-rendered query. Query PreparedQuery // QueryMeta has freshness information about the query. QueryMeta }
PreparedQueryExplainResponse has the results when explaining a query/
type PreparedQueryOp ¶ added in v0.6.0
type PreparedQueryOp string
const ( PreparedQueryCreate PreparedQueryOp = "create" PreparedQueryUpdate PreparedQueryOp = "update" PreparedQueryDelete PreparedQueryOp = "delete" )
type PreparedQueryRequest ¶ added in v0.6.0
type PreparedQueryRequest struct { // Datacenter is the target this request is intended for. Datacenter string // Op is the operation to apply. Op PreparedQueryOp // Query is the query itself. Query *PreparedQuery // WriteRequest holds the ACL token to go along with this request. WriteRequest }
QueryRequest is used to create or change prepared queries.
func (*PreparedQueryRequest) RequestDatacenter ¶ added in v0.6.0
func (q *PreparedQueryRequest) RequestDatacenter() string
RequestDatacenter returns the datacenter for a given request.
type PreparedQuerySpecificRequest ¶ added in v0.6.0
type PreparedQuerySpecificRequest struct { // Datacenter is the target this request is intended for. Datacenter string // QueryID is the ID of a query. QueryID string // QueryOptions (unfortunately named here) controls the consistency // settings for the query lookup itself, as well as the service lookups. QueryOptions }
PreparedQuerySpecificRequest is used to get information about a prepared query.
func (*PreparedQuerySpecificRequest) RequestDatacenter ¶ added in v0.6.0
func (q *PreparedQuerySpecificRequest) RequestDatacenter() string
RequestDatacenter returns the datacenter for a given request.
type QueryDNSOptions ¶ added in v0.6.0
type QueryDNSOptions struct { // TTL is the time to live for the served DNS results. TTL string }
QueryDNSOptions controls settings when query results are served over DNS.
type QueryDatacenterOptions ¶ added in v0.6.0
type QueryDatacenterOptions struct { // NearestN is set to the number of remote datacenters to try, based on // network coordinates. NearestN int // Datacenters is a fixed list of datacenters to try after NearestN. We // never try a datacenter multiple times, so those are subtracted from // this list before proceeding. Datacenters []string }
QueryDatacenterOptions sets options about how we fail over if there are no healthy nodes in the local datacenter.
type QueryMeta ¶ added in v0.2.0
type QueryMeta struct { // This is the index associated with the read Index uint64 // If AllowStale is used, this is time elapsed since // last contact between the follower and leader. This // can be used to gauge staleness. LastContact time.Duration // Used to indicate if there is a known leader node KnownLeader bool }
QueryMeta allows a query response to include potentially useful metadata about a query
type QueryOptions ¶ added in v0.2.0
type QueryOptions struct { // Token is the ACL token ID. If not provided, the 'anonymous' // token is assumed for backwards compatibility. Token string // If set, wait until query exceeds given index. Must be provided // with MaxQueryTime. MinQueryIndex uint64 // Provided with MinQueryIndex to wait for change. MaxQueryTime time.Duration // If set, any follower can service the request. Results // may be arbitrarily stale. AllowStale bool // If set, the leader must verify leadership prior to // servicing the request. Prevents a stale read. RequireConsistent bool }
QueryOptions is used to specify various flags for read queries
func (QueryOptions) ACLToken ¶ added in v0.4.0
func (q QueryOptions) ACLToken() string
func (QueryOptions) AllowStaleRead ¶ added in v0.2.0
func (q QueryOptions) AllowStaleRead() bool
func (QueryOptions) IsRead ¶ added in v0.2.0
func (q QueryOptions) IsRead() bool
QueryOption only applies to reads, so always true
type QuerySource ¶ added in v0.6.0
QuerySource is used to pass along information about the source node in queries so that we can adjust the response based on its network coordinates.
type QueryTemplateOptions ¶ added in v0.6.4
type QueryTemplateOptions struct { // Type, if non-empty, means that this query is a template. This is // set to one of the QueryTemplateType* constants above. Type string // Regexp is an optional regular expression to use to parse the full // name, once the prefix match has selected a template. This can be // used to extract parts of the name and choose a service name, set // tags, etc. Regexp string }
QueryTemplateOptions controls settings if this query is a template.
type RPCInfo ¶ added in v0.2.0
type RPCInfo interface { RequestDatacenter() string IsRead() bool AllowStaleRead() bool ACLToken() string }
RPCInfo is used to describe common information about query
type RaftIndex ¶ added in v0.6.0
RaftIndex is used to track the index used while creating or modifying a given struct type.
type RegisterRequest ¶
type RegisterRequest struct { Datacenter string Node string Address string TaggedAddresses map[string]string Service *NodeService Check *HealthCheck Checks HealthChecks WriteRequest }
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.
func (*RegisterRequest) RequestDatacenter ¶ added in v0.2.0
func (r *RegisterRequest) RequestDatacenter() string
type ServiceNode ¶
type ServiceNode struct { Node string Address string ServiceID string ServiceName string ServiceTags []string ServiceAddress string ServicePort int ServiceEnableTagOverride bool RaftIndex }
ServiceNode represents a node that is part of a service
func (*ServiceNode) Clone ¶ added in v0.6.0
func (s *ServiceNode) Clone() *ServiceNode
Clone returns a clone of the given service node.
func (*ServiceNode) ToNodeService ¶ added in v0.6.0
func (s *ServiceNode) ToNodeService() *NodeService
ToNodeService converts the given service node to a node service.
type ServiceNodes ¶
type ServiceNodes []*ServiceNode
type ServiceQuery ¶ added in v0.6.0
type ServiceQuery struct { // Service is the service to query. Service string // Failover controls what we do if there are no healthy nodes in the // local datacenter. Failover QueryDatacenterOptions // If OnlyPassing is true then we will only include nodes with passing // health checks (critical AND warning checks will cause a node to be // discarded) OnlyPassing bool // Tags are a set of required and/or disallowed tags. If a tag is in // this list it must be present. If the tag is preceded with "!" then // it is disallowed. Tags []string }
ServiceQuery is used to query for a set of healthy nodes offering a specific service.
type ServiceSpecificRequest ¶
type ServiceSpecificRequest struct { Datacenter string ServiceName string ServiceTag string TagFilter bool // Controls tag filtering Source QuerySource QueryOptions }
ServiceSpecificRequest is used to query about a specific service
func (*ServiceSpecificRequest) RequestDatacenter ¶ added in v0.2.0
func (r *ServiceSpecificRequest) RequestDatacenter() string
type Services ¶
Used to return information about a provided services. Maps service name to available tags
type Session ¶ added in v0.3.0
type Session struct { ID string Name string Node string Checks []string LockDelay time.Duration Behavior SessionBehavior // What to do when session is invalidated TTL string RaftIndex }
Session is used to represent an open session in the KV store. This issued to associate node checks with acquired locks.
type SessionBehavior ¶ added in v0.5.0
type SessionBehavior string
const ( SessionKeysRelease SessionBehavior = "release" SessionKeysDelete = "delete" )
type SessionOp ¶ added in v0.3.0
type SessionOp string
const ( SessionCreate SessionOp = "create" SessionDestroy = "destroy" )
type SessionRequest ¶ added in v0.3.0
type SessionRequest struct { Datacenter string Op SessionOp // Which operation are we performing Session Session // Which session WriteRequest }
SessionRequest is used to operate on sessions
func (*SessionRequest) RequestDatacenter ¶ added in v0.3.0
func (r *SessionRequest) RequestDatacenter() string
type SessionSpecificRequest ¶ added in v0.3.0
type SessionSpecificRequest struct { Datacenter string Session string QueryOptions }
SessionSpecificRequest is used to request a session by ID
func (*SessionSpecificRequest) RequestDatacenter ¶ added in v0.3.0
func (r *SessionSpecificRequest) RequestDatacenter() string
type TombstoneOp ¶ added in v0.5.0
type TombstoneOp string
const (
TombstoneReap TombstoneOp = "reap"
)
type TombstoneRequest ¶ added in v0.5.0
type TombstoneRequest struct { Datacenter string Op TombstoneOp ReapIndex uint64 WriteRequest }
TombstoneRequest is used to trigger a reaping of the tombstones
func (*TombstoneRequest) RequestDatacenter ¶ added in v0.5.0
func (r *TombstoneRequest) RequestDatacenter() string
type WriteRequest ¶ added in v0.2.0
type WriteRequest struct { // Token is the ACL token ID. If not provided, the 'anonymous' // token is assumed for backwards compatibility. Token string }
func (WriteRequest) ACLToken ¶ added in v0.4.0
func (w WriteRequest) ACLToken() string
func (WriteRequest) AllowStaleRead ¶ added in v0.2.0
func (w WriteRequest) AllowStaleRead() bool
func (WriteRequest) IsRead ¶ added in v0.2.0
func (w WriteRequest) IsRead() bool
WriteRequest only applies to writes, always false