Documentation ¶
Index ¶
- Constants
- Variables
- func CreateTestCSIPlugin(s *StateStore, id string) func()
- func CreateTestCSIPluginNodeOnly(s *StateStore, id string) func()
- func NewChangeTrackerDB(db *memdb.MemDB, publisher *stream.EventBroker, changesFn changeProcessor) *changeTrackerDB
- func RegisterSchemaFactories(factories ...SchemaFactory)
- func TestBadCSIState(t testing.TB, store *StateStore) error
- type Changes
- type IndexEntry
- type QueryFn
- type ReadTxn
- type ScalingPolicyTargetFieldIndex
- type SchemaFactories
- type SchemaFactory
- type SliceIterator
- type SortOption
- type StateRestore
- func (r *StateRestore) ACLPolicyRestore(policy *structs.ACLPolicy) error
- func (r *StateRestore) ACLTokenRestore(token *structs.ACLToken) error
- func (r *StateRestore) Abort()
- func (r *StateRestore) AllocRestore(alloc *structs.Allocation) error
- func (r *StateRestore) CSIPluginRestore(plugin *structs.CSIPlugin) error
- func (r *StateRestore) CSIVolumeRestore(volume *structs.CSIVolume) error
- func (r *StateRestore) ClusterMetadataRestore(meta *structs.ClusterMetadata) error
- func (r *StateRestore) Commit() error
- func (r *StateRestore) DeploymentRestore(deployment *structs.Deployment) error
- func (r *StateRestore) EvalRestore(eval *structs.Evaluation) error
- func (r *StateRestore) IndexRestore(idx *IndexEntry) error
- func (r *StateRestore) JobRestore(job *structs.Job) error
- func (r *StateRestore) JobSummaryRestore(jobSummary *structs.JobSummary) error
- func (r *StateRestore) JobVersionRestore(version *structs.Job) error
- func (r *StateRestore) NamespaceRestore(ns *structs.Namespace) error
- func (r *StateRestore) NodeRestore(node *structs.Node) error
- func (r *StateRestore) OneTimeTokenRestore(token *structs.OneTimeToken) error
- func (r *StateRestore) PeriodicLaunchRestore(launch *structs.PeriodicLaunch) error
- func (r *StateRestore) SITokenAccessorRestore(accessor *structs.SITokenAccessor) error
- func (r *StateRestore) ScalingEventsRestore(jobEvents *structs.JobScalingEvents) error
- func (r *StateRestore) ScalingPolicyRestore(scalingPolicy *structs.ScalingPolicy) error
- func (r *StateRestore) SchedulerConfigRestore(schedConfig *structs.SchedulerConfiguration) error
- func (r *StateRestore) ServiceRegistrationRestore(service *structs.ServiceRegistration) error
- func (r *StateRestore) VaultAccessorRestore(accessor *structs.VaultAccessor) error
- type StateSnapshot
- func (s *StateSnapshot) DenormalizeAllocationDiffSlice(allocDiffs []*structs.AllocationDiff) ([]*structs.Allocation, error)
- func (s *StateSnapshot) DenormalizeAllocationSlice(allocs []*structs.Allocation) ([]*structs.Allocation, error)
- func (s *StateSnapshot) DenormalizeAllocationsMap(nodeAllocations map[string][]*structs.Allocation) error
- type StateStore
- func (s *StateStore) ACLPolicies(ws memdb.WatchSet) (memdb.ResultIterator, error)
- func (s *StateStore) ACLPolicyByName(ws memdb.WatchSet, name string) (*structs.ACLPolicy, error)
- func (s *StateStore) ACLPolicyByNamePrefix(ws memdb.WatchSet, prefix string) (memdb.ResultIterator, error)
- func (s *StateStore) ACLTokenByAccessorID(ws memdb.WatchSet, id string) (*structs.ACLToken, error)
- func (s *StateStore) ACLTokenByAccessorIDPrefix(ws memdb.WatchSet, prefix string, sort SortOption) (memdb.ResultIterator, error)
- func (s *StateStore) ACLTokenBySecretID(ws memdb.WatchSet, secretID string) (*structs.ACLToken, error)
- func (s *StateStore) ACLTokens(ws memdb.WatchSet, sort SortOption) (memdb.ResultIterator, error)
- func (s *StateStore) ACLTokensByGlobal(ws memdb.WatchSet, globalVal bool, sort SortOption) (memdb.ResultIterator, error)
- func (s *StateStore) Abandon()
- func (s *StateStore) AbandonCh() <-chan struct{}
- func (s *StateStore) AllocByID(ws memdb.WatchSet, id string) (*structs.Allocation, error)
- func (s *StateStore) Allocs(ws memdb.WatchSet, sort SortOption) (memdb.ResultIterator, error)
- func (s *StateStore) AllocsByDeployment(ws memdb.WatchSet, deploymentID string) ([]*structs.Allocation, error)
- func (s *StateStore) AllocsByEval(ws memdb.WatchSet, evalID string) ([]*structs.Allocation, error)
- func (s *StateStore) AllocsByIDPrefix(ws memdb.WatchSet, namespace, id string, sort SortOption) (memdb.ResultIterator, error)
- func (s *StateStore) AllocsByIDPrefixAllNSs(ws memdb.WatchSet, prefix string) (memdb.ResultIterator, error)
- func (s *StateStore) AllocsByJob(ws memdb.WatchSet, namespace, jobID string, anyCreateIndex bool) ([]*structs.Allocation, error)
- func (s *StateStore) AllocsByNamespace(ws memdb.WatchSet, namespace string) (memdb.ResultIterator, error)
- func (s *StateStore) AllocsByNamespaceOrdered(ws memdb.WatchSet, namespace string, sort SortOption) (memdb.ResultIterator, error)
- func (s *StateStore) AllocsByNode(ws memdb.WatchSet, node string) ([]*structs.Allocation, error)
- func (s *StateStore) AllocsByNodeTerminal(ws memdb.WatchSet, node string, terminal bool) ([]*structs.Allocation, error)
- func (s *StateStore) AutopilotCASConfig(index, cidx uint64, config *structs.AutopilotConfig) (bool, error)
- func (s *StateStore) AutopilotConfig() (uint64, *structs.AutopilotConfig, error)
- func (s *StateStore) AutopilotSetConfig(index uint64, config *structs.AutopilotConfig) error
- func (s *StateStore) BatchUpdateNodeDrain(msgType structs.MessageType, index uint64, updatedAt int64, ...) error
- func (s *StateStore) BlockingQuery(query QueryFn, minIndex uint64, ctx context.Context) (resp interface{}, index uint64, err error)
- func (s *StateStore) BootstrapACLTokens(msgType structs.MessageType, index uint64, resetIndex uint64, ...) error
- func (s *StateStore) CSIPluginByID(ws memdb.WatchSet, id string) (*structs.CSIPlugin, error)
- func (s *StateStore) CSIPluginByIDTxn(txn Txn, ws memdb.WatchSet, id string) (*structs.CSIPlugin, error)
- func (s *StateStore) CSIPluginDenormalize(ws memdb.WatchSet, plug *structs.CSIPlugin) (*structs.CSIPlugin, error)
- func (s *StateStore) CSIPluginDenormalizeTxn(txn Txn, ws memdb.WatchSet, plug *structs.CSIPlugin) (*structs.CSIPlugin, error)
- func (s *StateStore) CSIPlugins(ws memdb.WatchSet) (memdb.ResultIterator, error)
- func (s *StateStore) CSIPluginsByIDPrefix(ws memdb.WatchSet, pluginID string) (memdb.ResultIterator, error)
- func (s *StateStore) CSIVolumeByID(ws memdb.WatchSet, namespace, id string) (*structs.CSIVolume, error)
- func (s *StateStore) CSIVolumeClaim(index uint64, namespace, id string, claim *structs.CSIVolumeClaim) error
- func (s *StateStore) CSIVolumeDenormalize(ws memdb.WatchSet, vol *structs.CSIVolume) (*structs.CSIVolume, error)
- func (s *StateStore) CSIVolumeDenormalizePlugins(ws memdb.WatchSet, vol *structs.CSIVolume) (*structs.CSIVolume, error)
- func (s *StateStore) CSIVolumeDeregister(index uint64, namespace string, ids []string, force bool) error
- func (s *StateStore) CSIVolumes(ws memdb.WatchSet) (memdb.ResultIterator, error)
- func (s *StateStore) CSIVolumesByIDPrefix(ws memdb.WatchSet, namespace, volumeID string) (memdb.ResultIterator, error)
- func (s *StateStore) CSIVolumesByNamespace(ws memdb.WatchSet, namespace, prefix string) (memdb.ResultIterator, error)
- func (s *StateStore) CSIVolumesByNodeID(ws memdb.WatchSet, prefix, nodeID string) (memdb.ResultIterator, error)
- func (s *StateStore) CSIVolumesByPluginID(ws memdb.WatchSet, namespace, prefix, pluginID string) (memdb.ResultIterator, error)
- func (s *StateStore) CanBootstrapACLToken() (bool, uint64, error)
- func (s *StateStore) ClusterMetadata(ws memdb.WatchSet) (*structs.ClusterMetadata, error)
- func (s *StateStore) ClusterSetMetadata(index uint64, meta *structs.ClusterMetadata) error
- func (s *StateStore) Config() *StateStoreConfig
- func (s *StateStore) DeleteACLPolicies(msgType structs.MessageType, index uint64, names []string) error
- func (s *StateStore) DeleteACLTokens(msgType structs.MessageType, index uint64, ids []string) error
- func (s *StateStore) DeleteCSIPlugin(index uint64, id string) error
- func (s *StateStore) DeleteDeployment(index uint64, deploymentIDs []string) error
- func (s *StateStore) DeleteEval(index uint64, evals []string, allocs []string) error
- func (s *StateStore) DeleteJob(index uint64, namespace, jobID string) error
- func (s *StateStore) DeleteJobSummary(index uint64, namespace, id string) error
- func (s *StateStore) DeleteJobTxn(index uint64, namespace, jobID string, txn Txn) error
- func (s *StateStore) DeleteNamespaces(index uint64, names []string) error
- func (s *StateStore) DeleteNode(msgType structs.MessageType, index uint64, nodes []string) error
- func (s *StateStore) DeleteOneTimeTokens(msgType structs.MessageType, index uint64, ids []string) error
- func (s *StateStore) DeletePeriodicLaunch(index uint64, namespace, jobID string) error
- func (s *StateStore) DeletePeriodicLaunchTxn(index uint64, namespace, jobID string, txn Txn) error
- func (s *StateStore) DeleteSITokenAccessors(index uint64, accessors []*structs.SITokenAccessor) error
- func (s *StateStore) DeleteScalingPolicies(index uint64, ids []string) error
- func (s *StateStore) DeleteScalingPoliciesTxn(index uint64, ids []string, txn *txn) error
- func (s *StateStore) DeleteServiceRegistrationByID(msgType structs.MessageType, index uint64, namespace, id string) error
- func (s *StateStore) DeleteServiceRegistrationByNodeID(msgType structs.MessageType, index uint64, nodeID string) error
- func (s *StateStore) DeleteVaultAccessors(index uint64, accessors []*structs.VaultAccessor) error
- func (s *StateStore) DeploymentByID(ws memdb.WatchSet, deploymentID string) (*structs.Deployment, error)
- func (s *StateStore) Deployments(ws memdb.WatchSet, sort SortOption) (memdb.ResultIterator, error)
- func (s *StateStore) DeploymentsByIDPrefix(ws memdb.WatchSet, namespace, deploymentID string, sort SortOption) (memdb.ResultIterator, error)
- func (s *StateStore) DeploymentsByJobID(ws memdb.WatchSet, namespace, jobID string, all bool) ([]*structs.Deployment, error)
- func (s *StateStore) DeploymentsByNamespace(ws memdb.WatchSet, namespace string) (memdb.ResultIterator, error)
- func (s *StateStore) DeploymentsByNamespaceOrdered(ws memdb.WatchSet, namespace string, sort SortOption) (memdb.ResultIterator, error)
- func (s *StateStore) EvalByID(ws memdb.WatchSet, id string) (*structs.Evaluation, error)
- func (s *StateStore) Evals(ws memdb.WatchSet, sort SortOption) (memdb.ResultIterator, error)
- func (s *StateStore) EvalsByIDPrefix(ws memdb.WatchSet, namespace, id string, sort SortOption) (memdb.ResultIterator, error)
- func (s *StateStore) EvalsByJob(ws memdb.WatchSet, namespace, jobID string) ([]*structs.Evaluation, error)
- func (s *StateStore) EvalsByNamespace(ws memdb.WatchSet, namespace string) (memdb.ResultIterator, error)
- func (s *StateStore) EvalsByNamespaceOrdered(ws memdb.WatchSet, namespace string, sort SortOption) (memdb.ResultIterator, error)
- func (s *StateStore) EvalsRelatedToID(ws memdb.WatchSet, id string) ([]*structs.EvaluationStub, error)
- func (s *StateStore) EventBroker() (*stream.EventBroker, error)
- func (s *StateStore) ExpireOneTimeTokens(msgType structs.MessageType, index uint64) error
- func (s *StateStore) GetServiceRegistrationByID(ws memdb.WatchSet, namespace, id string) (*structs.ServiceRegistration, error)
- func (s *StateStore) GetServiceRegistrationByName(ws memdb.WatchSet, namespace, name string) (memdb.ResultIterator, error)
- func (s *StateStore) GetServiceRegistrations(ws memdb.WatchSet) (memdb.ResultIterator, error)
- func (s *StateStore) GetServiceRegistrationsByAllocID(ws memdb.WatchSet, allocID string) (memdb.ResultIterator, error)
- func (s *StateStore) GetServiceRegistrationsByJobID(ws memdb.WatchSet, namespace, jobID string) (memdb.ResultIterator, error)
- func (s *StateStore) GetServiceRegistrationsByNamespace(ws memdb.WatchSet, namespace string) (memdb.ResultIterator, error)
- func (s *StateStore) GetServiceRegistrationsByNodeID(ws memdb.WatchSet, nodeID string) ([]*structs.ServiceRegistration, error)
- func (s *StateStore) Index(name string) (uint64, error)
- func (s *StateStore) Indexes() (memdb.ResultIterator, error)
- func (s *StateStore) JobByID(ws memdb.WatchSet, namespace, id string) (*structs.Job, error)
- func (s *StateStore) JobByIDAndVersion(ws memdb.WatchSet, namespace, id string, version uint64) (*structs.Job, error)
- func (s *StateStore) JobByIDTxn(ws memdb.WatchSet, namespace, id string, txn Txn) (*structs.Job, error)
- func (s *StateStore) JobSummaries(ws memdb.WatchSet) (memdb.ResultIterator, error)
- func (s *StateStore) JobSummaryByID(ws memdb.WatchSet, namespace, jobID string) (*structs.JobSummary, error)
- func (s *StateStore) JobSummaryByPrefix(ws memdb.WatchSet, namespace, id string) (memdb.ResultIterator, error)
- func (s *StateStore) JobVersions(ws memdb.WatchSet) (memdb.ResultIterator, error)
- func (s *StateStore) JobVersionsByID(ws memdb.WatchSet, namespace, id string) ([]*structs.Job, error)
- func (s *StateStore) Jobs(ws memdb.WatchSet) (memdb.ResultIterator, error)
- func (s *StateStore) JobsByGC(ws memdb.WatchSet, gc bool) (memdb.ResultIterator, error)
- func (s *StateStore) JobsByIDPrefix(ws memdb.WatchSet, namespace, id string) (memdb.ResultIterator, error)
- func (s *StateStore) JobsByNamespace(ws memdb.WatchSet, namespace string) (memdb.ResultIterator, error)
- func (s *StateStore) JobsByPeriodic(ws memdb.WatchSet, periodic bool) (memdb.ResultIterator, error)
- func (s *StateStore) JobsByScheduler(ws memdb.WatchSet, schedulerType string) (memdb.ResultIterator, error)
- func (s *StateStore) LatestDeploymentByJobID(ws memdb.WatchSet, namespace, jobID string) (*structs.Deployment, error)
- func (s *StateStore) LatestIndex() (uint64, error)
- func (s *StateStore) NamespaceByName(ws memdb.WatchSet, name string) (*structs.Namespace, error)
- func (s *StateStore) NamespaceNames() ([]string, error)
- func (s *StateStore) Namespaces(ws memdb.WatchSet) (memdb.ResultIterator, error)
- func (s *StateStore) NamespacesByNamePrefix(ws memdb.WatchSet, namePrefix string) (memdb.ResultIterator, error)
- func (s *StateStore) NewWatchSet() memdb.WatchSet
- func (s *StateStore) NodeByID(ws memdb.WatchSet, nodeID string) (*structs.Node, error)
- func (s *StateStore) NodeBySecretID(ws memdb.WatchSet, secretID string) (*structs.Node, error)
- func (s *StateStore) Nodes(ws memdb.WatchSet) (memdb.ResultIterator, error)
- func (s *StateStore) NodesByIDPrefix(ws memdb.WatchSet, nodeID string) (memdb.ResultIterator, error)
- func (s *StateStore) OneTimeTokenBySecret(ws memdb.WatchSet, secret string) (*structs.OneTimeToken, error)
- func (s *StateStore) PeriodicLaunchByID(ws memdb.WatchSet, namespace, id string) (*structs.PeriodicLaunch, error)
- func (s *StateStore) PeriodicLaunches(ws memdb.WatchSet) (memdb.ResultIterator, error)
- func (s *StateStore) ReconcileJobSummaries(index uint64) error
- func (s *StateStore) Restore() (*StateRestore, error)
- func (s *StateStore) SITokenAccessor(ws memdb.WatchSet, accessorID string) (*structs.SITokenAccessor, error)
- func (s *StateStore) SITokenAccessors(ws memdb.WatchSet) (memdb.ResultIterator, error)
- func (s *StateStore) SITokenAccessorsByAlloc(ws memdb.WatchSet, allocID string) ([]*structs.SITokenAccessor, error)
- func (s *StateStore) SITokenAccessorsByNode(ws memdb.WatchSet, nodeID string) ([]*structs.SITokenAccessor, error)
- func (s *StateStore) ScalingEvents(ws memdb.WatchSet) (memdb.ResultIterator, error)
- func (s *StateStore) ScalingEventsByJob(ws memdb.WatchSet, namespace, jobID string) (map[string][]*structs.ScalingEvent, uint64, error)
- func (s *StateStore) ScalingPolicies(ws memdb.WatchSet) (memdb.ResultIterator, error)
- func (s *StateStore) ScalingPoliciesByIDPrefix(ws memdb.WatchSet, namespace string, prefix string) (memdb.ResultIterator, error)
- func (s *StateStore) ScalingPoliciesByJob(ws memdb.WatchSet, namespace, jobID, policyType string) (memdb.ResultIterator, error)
- func (s *StateStore) ScalingPoliciesByJobTxn(ws memdb.WatchSet, namespace, jobID string, txn *txn) (memdb.ResultIterator, error)
- func (s *StateStore) ScalingPoliciesByNamespace(ws memdb.WatchSet, namespace, typ string) (memdb.ResultIterator, error)
- func (s *StateStore) ScalingPoliciesByTypePrefix(ws memdb.WatchSet, t string) (memdb.ResultIterator, error)
- func (s *StateStore) ScalingPolicyByID(ws memdb.WatchSet, id string) (*structs.ScalingPolicy, error)
- func (s *StateStore) ScalingPolicyByTargetAndType(ws memdb.WatchSet, target map[string]string, typ string) (*structs.ScalingPolicy, error)
- func (s *StateStore) SchedulerCASConfig(index, cidx uint64, config *structs.SchedulerConfiguration) (bool, error)
- func (s *StateStore) SchedulerConfig() (uint64, *structs.SchedulerConfiguration, error)
- func (s *StateStore) SchedulerSetConfig(index uint64, config *structs.SchedulerConfiguration) error
- func (s *StateStore) Snapshot() (*StateSnapshot, error)
- func (s *StateStore) SnapshotMinIndex(ctx context.Context, index uint64) (*StateSnapshot, error)
- func (s *StateStore) StopEventBroker()
- func (s *StateStore) UpdateAllocDesiredTransitionTxn(txn *txn, index uint64, allocID string, transition *structs.DesiredTransition) error
- func (s *StateStore) UpdateAllocsDesiredTransitions(msgType structs.MessageType, index uint64, ...) error
- func (s *StateStore) UpdateAllocsFromClient(msgType structs.MessageType, index uint64, allocs []*structs.Allocation) error
- func (s *StateStore) UpdateDeploymentAllocHealth(msgType structs.MessageType, index uint64, ...) error
- func (s *StateStore) UpdateDeploymentPromotion(msgType structs.MessageType, index uint64, ...) error
- func (s *StateStore) UpdateDeploymentStatus(msgType structs.MessageType, index uint64, ...) error
- func (s *StateStore) UpdateJobStability(index uint64, namespace, jobID string, jobVersion uint64, stable bool) error
- func (s *StateStore) UpdateNodeDrain(msgType structs.MessageType, index uint64, nodeID string, ...) error
- func (s *StateStore) UpdateNodeEligibility(msgType structs.MessageType, index uint64, nodeID string, eligibility string, ...) error
- func (s *StateStore) UpdateNodeStatus(msgType structs.MessageType, index uint64, nodeID, status string, ...) error
- func (s *StateStore) UpsertACLPolicies(msgType structs.MessageType, index uint64, policies []*structs.ACLPolicy) error
- func (s *StateStore) UpsertACLTokens(msgType structs.MessageType, index uint64, tokens []*structs.ACLToken) error
- func (s *StateStore) UpsertAllocs(msgType structs.MessageType, index uint64, allocs []*structs.Allocation) error
- func (s *StateStore) UpsertCSIPlugin(index uint64, plug *structs.CSIPlugin) error
- func (s *StateStore) UpsertCSIVolume(index uint64, volumes []*structs.CSIVolume) error
- func (s *StateStore) UpsertDeployment(index uint64, deployment *structs.Deployment) error
- func (s *StateStore) UpsertEvals(msgType structs.MessageType, index uint64, evals []*structs.Evaluation) error
- func (s *StateStore) UpsertEvalsTxn(index uint64, evals []*structs.Evaluation, txn Txn) error
- func (s *StateStore) UpsertJob(msgType structs.MessageType, index uint64, job *structs.Job) error
- func (s *StateStore) UpsertJobSummary(index uint64, jobSummary *structs.JobSummary) error
- func (s *StateStore) UpsertJobTxn(index uint64, job *structs.Job, txn Txn) error
- func (s *StateStore) UpsertNamespaces(index uint64, namespaces []*structs.Namespace) error
- func (s *StateStore) UpsertNode(msgType structs.MessageType, index uint64, node *structs.Node) error
- func (s *StateStore) UpsertNodeEvents(msgType structs.MessageType, index uint64, ...) error
- func (s *StateStore) UpsertOneTimeToken(msgType structs.MessageType, index uint64, token *structs.OneTimeToken) error
- func (s *StateStore) UpsertPeriodicLaunch(index uint64, launch *structs.PeriodicLaunch) error
- func (s *StateStore) UpsertPlanResults(msgType structs.MessageType, index uint64, ...) error
- func (s *StateStore) UpsertSITokenAccessors(index uint64, accessors []*structs.SITokenAccessor) error
- func (s *StateStore) UpsertScalingEvent(index uint64, req *structs.ScalingEventRequest) error
- func (s *StateStore) UpsertScalingPolicies(index uint64, scalingPolicies []*structs.ScalingPolicy) error
- func (s *StateStore) UpsertScalingPoliciesTxn(index uint64, scalingPolicies []*structs.ScalingPolicy, txn *txn) error
- func (s *StateStore) UpsertServiceRegistrations(msgType structs.MessageType, index uint64, ...) error
- func (s *StateStore) UpsertVaultAccessor(index uint64, accessors []*structs.VaultAccessor) error
- func (s *StateStore) VaultAccessor(ws memdb.WatchSet, accessor string) (*structs.VaultAccessor, error)
- func (s *StateStore) VaultAccessors(ws memdb.WatchSet) (memdb.ResultIterator, error)
- func (s *StateStore) VaultAccessorsByAlloc(ws memdb.WatchSet, allocID string) ([]*structs.VaultAccessor, error)
- func (s *StateStore) VaultAccessorsByNode(ws memdb.WatchSet, nodeID string) ([]*structs.VaultAccessor, error)
- func (s *StateStore) WithWriteTransaction(msgType structs.MessageType, index uint64, fn func(Txn) error) error
- type StateStoreConfig
- type Txn
Constants ¶
const ( TableNamespaces = "namespaces" TableServiceRegistrations = "service_registrations" )
const ( // NodeRegisterEventRegistered is the message used when the node becomes // registered. NodeRegisterEventRegistered = "Node registered" // NodeRegisterEventReregistered is the message used when the node becomes // re-registered. NodeRegisterEventReregistered = "Node re-registered" )
Variables ¶
var MsgTypeEvents = map[structs.MessageType]string{ structs.NodeRegisterRequestType: structs.TypeNodeRegistration, structs.NodeDeregisterRequestType: structs.TypeNodeDeregistration, structs.UpsertNodeEventsType: structs.TypeNodeEvent, structs.EvalUpdateRequestType: structs.TypeEvalUpdated, structs.AllocClientUpdateRequestType: structs.TypeAllocationUpdated, structs.JobRegisterRequestType: structs.TypeJobRegistered, structs.AllocUpdateRequestType: structs.TypeAllocationUpdated, structs.NodeUpdateStatusRequestType: structs.TypeNodeEvent, structs.JobDeregisterRequestType: structs.TypeJobDeregistered, structs.JobBatchDeregisterRequestType: structs.TypeJobBatchDeregistered, structs.AllocUpdateDesiredTransitionRequestType: structs.TypeAllocationUpdateDesiredStatus, structs.NodeUpdateEligibilityRequestType: structs.TypeNodeDrain, structs.NodeUpdateDrainRequestType: structs.TypeNodeDrain, structs.BatchNodeUpdateDrainRequestType: structs.TypeNodeDrain, structs.DeploymentStatusUpdateRequestType: structs.TypeDeploymentUpdate, structs.DeploymentPromoteRequestType: structs.TypeDeploymentPromotion, structs.DeploymentAllocHealthRequestType: structs.TypeDeploymentAllocHealth, structs.ApplyPlanResultsRequestType: structs.TypePlanResult, structs.ACLTokenDeleteRequestType: structs.TypeACLTokenDeleted, structs.ACLTokenUpsertRequestType: structs.TypeACLTokenUpserted, structs.ACLPolicyDeleteRequestType: structs.TypeACLPolicyDeleted, structs.ACLPolicyUpsertRequestType: structs.TypeACLPolicyUpserted, structs.ServiceRegistrationUpsertRequestType: structs.TypeServiceRegistration, structs.ServiceRegistrationDeleteByIDRequestType: structs.TypeServiceDeregistration, structs.ServiceRegistrationDeleteByNodeIDRequestType: structs.TypeServiceDeregistration, }
Functions ¶
func CreateTestCSIPlugin ¶ added in v0.11.0
func CreateTestCSIPlugin(s *StateStore, id string) func()
CreateTestCSIPlugin is a helper that generates the node + fingerprint results necessary to create a CSIPlugin by directly inserting into the state store. The plugin requires a controller.
func CreateTestCSIPluginNodeOnly ¶ added in v0.12.2
func CreateTestCSIPluginNodeOnly(s *StateStore, id string) func()
CreateTestCSIPluginNodeOnly is a helper that generates the node + fingerprint results necessary to create a CSIPlugin by directly inserting into the state store. The plugin does not require a controller. In tests that exercise volume registration, this prevents an error attempting to RPC the node.
func NewChangeTrackerDB ¶ added in v1.0.0
func NewChangeTrackerDB(db *memdb.MemDB, publisher *stream.EventBroker, changesFn changeProcessor) *changeTrackerDB
func RegisterSchemaFactories ¶ added in v0.7.0
func RegisterSchemaFactories(factories ...SchemaFactory)
RegisterSchemaFactories is used to register a table schema.
func TestBadCSIState ¶ added in v1.0.17
func TestBadCSIState(t testing.TB, store *StateStore) error
Types ¶
type Changes ¶ added in v1.0.0
type Changes struct { // Index is the latest index at the time these changes were committed. Index uint64 Changes memdb.Changes MsgType structs.MessageType }
Changes wraps a memdb.Changes to include the index at which these changes were made.
type IndexEntry ¶
IndexEntry is used with the "index" table for managing the latest Raft index affecting a table.
type QueryFn ¶ added in v0.7.0
type QueryFn func(memdb.WatchSet, *StateStore) (resp interface{}, index uint64, err error)
QueryFn is the definition of a function that can be used to implement a basic blocking query against the state store.
type ReadTxn ¶ added in v1.0.0
type ReadTxn interface { Get(table, index string, args ...interface{}) (memdb.ResultIterator, error) First(table, index string, args ...interface{}) (interface{}, error) FirstWatch(table, index string, args ...interface{}) (<-chan struct{}, interface{}, error) Abort() }
ReadTxn is implemented by memdb.Txn to perform read operations.
type ScalingPolicyTargetFieldIndex ¶ added in v0.11.0
type ScalingPolicyTargetFieldIndex struct { Field string // AllowMissing controls if the field should be ignored if the field is // not provided. AllowMissing bool }
StringFieldIndex is used to extract a field from an object using reflection and builds an index on that field.
func (*ScalingPolicyTargetFieldIndex) FromArgs ¶ added in v0.11.0
func (s *ScalingPolicyTargetFieldIndex) FromArgs(args ...interface{}) ([]byte, error)
FromArgs is used to build an exact index lookup based on arguments
func (*ScalingPolicyTargetFieldIndex) FromObject ¶ added in v0.11.0
func (s *ScalingPolicyTargetFieldIndex) FromObject(obj interface{}) (bool, []byte, error)
FromObject is used to extract an index value from an object or to indicate that the index value is missing.
func (*ScalingPolicyTargetFieldIndex) PrefixFromArgs ¶ added in v0.11.0
func (s *ScalingPolicyTargetFieldIndex) PrefixFromArgs(args ...interface{}) ([]byte, error)
PrefixFromArgs returns a prefix that should be used for scanning based on the arguments
type SchemaFactories ¶ added in v0.7.0
type SchemaFactories []SchemaFactory
func GetFactories ¶ added in v0.7.0
func GetFactories() SchemaFactories
type SchemaFactory ¶ added in v0.7.0
type SchemaFactory func() *memdb.TableSchema
SchemaFactory is the factory method for returning a TableSchema
type SliceIterator ¶ added in v0.11.0
type SliceIterator struct {
// contains filtered or unexported fields
}
func NewSliceIterator ¶ added in v0.11.0
func NewSliceIterator() *SliceIterator
func (*SliceIterator) Add ¶ added in v0.11.0
func (i *SliceIterator) Add(datum interface{})
func (*SliceIterator) Next ¶ added in v0.11.0
func (i *SliceIterator) Next() interface{}
func (*SliceIterator) WatchCh ¶ added in v0.11.0
func (i *SliceIterator) WatchCh() <-chan struct{}
type SortOption ¶ added in v1.3.0
type SortOption bool
SortOption represents how results can be sorted.
const ( // SortDefault indicates that the result should be returned using the // default go-memdb ResultIterator order. SortDefault SortOption = false // SortReverse indicates that the result should be returned using the // reversed go-memdb ResultIterator order. SortReverse SortOption = true )
type StateRestore ¶
type StateRestore struct {
// contains filtered or unexported fields
}
StateRestore is used to optimize the performance when restoring state by only using a single large transaction instead of thousands of sub transactions.
func (*StateRestore) ACLPolicyRestore ¶ added in v0.7.0
func (r *StateRestore) ACLPolicyRestore(policy *structs.ACLPolicy) error
ACLPolicyRestore is used to restore an ACL policy
func (*StateRestore) ACLTokenRestore ¶ added in v0.7.0
func (r *StateRestore) ACLTokenRestore(token *structs.ACLToken) error
ACLTokenRestore is used to restore an ACL token
func (*StateRestore) Abort ¶
func (r *StateRestore) Abort()
Abort is used to abort the restore operation
func (*StateRestore) AllocRestore ¶
func (r *StateRestore) AllocRestore(alloc *structs.Allocation) error
AllocRestore is used to restore an allocation
func (*StateRestore) CSIPluginRestore ¶ added in v0.11.0
func (r *StateRestore) CSIPluginRestore(plugin *structs.CSIPlugin) error
CSIPluginRestore is used to restore a CSI plugin
func (*StateRestore) CSIVolumeRestore ¶ added in v0.11.0
func (r *StateRestore) CSIVolumeRestore(volume *structs.CSIVolume) error
CSIVolumeRestore is used to restore a CSI volume
func (*StateRestore) ClusterMetadataRestore ¶ added in v0.10.4
func (r *StateRestore) ClusterMetadataRestore(meta *structs.ClusterMetadata) error
func (*StateRestore) Commit ¶
func (r *StateRestore) Commit() error
Commit is used to commit the restore operation
func (*StateRestore) DeploymentRestore ¶ added in v0.6.0
func (r *StateRestore) DeploymentRestore(deployment *structs.Deployment) error
DeploymentRestore is used to restore a deployment
func (*StateRestore) EvalRestore ¶
func (r *StateRestore) EvalRestore(eval *structs.Evaluation) error
EvalRestore is used to restore an evaluation
func (*StateRestore) IndexRestore ¶
func (r *StateRestore) IndexRestore(idx *IndexEntry) error
IndexRestore is used to restore an index
func (*StateRestore) JobRestore ¶
func (r *StateRestore) JobRestore(job *structs.Job) error
JobRestore is used to restore a job
func (*StateRestore) JobSummaryRestore ¶ added in v0.4.1
func (r *StateRestore) JobSummaryRestore(jobSummary *structs.JobSummary) error
JobSummaryRestore is used to restore a job summary
func (*StateRestore) JobVersionRestore ¶ added in v0.6.0
func (r *StateRestore) JobVersionRestore(version *structs.Job) error
JobVersionRestore is used to restore a job version
func (*StateRestore) NamespaceRestore ¶ added in v1.0.0
func (r *StateRestore) NamespaceRestore(ns *structs.Namespace) error
NamespaceRestore is used to restore a namespace
func (*StateRestore) NodeRestore ¶
func (r *StateRestore) NodeRestore(node *structs.Node) error
NodeRestore is used to restore a node
func (*StateRestore) OneTimeTokenRestore ¶ added in v1.1.0
func (r *StateRestore) OneTimeTokenRestore(token *structs.OneTimeToken) error
OneTimeTokenRestore is used to restore a one-time token
func (*StateRestore) PeriodicLaunchRestore ¶ added in v0.3.0
func (r *StateRestore) PeriodicLaunchRestore(launch *structs.PeriodicLaunch) error
PeriodicLaunchRestore is used to restore a periodic launch.
func (*StateRestore) SITokenAccessorRestore ¶ added in v0.10.4
func (r *StateRestore) SITokenAccessorRestore(accessor *structs.SITokenAccessor) error
SITokenAccessorRestore is used to restore an SI token accessor
func (*StateRestore) ScalingEventsRestore ¶ added in v0.11.0
func (r *StateRestore) ScalingEventsRestore(jobEvents *structs.JobScalingEvents) error
ScalingEventsRestore is used to restore scaling events for a job
func (*StateRestore) ScalingPolicyRestore ¶ added in v0.11.0
func (r *StateRestore) ScalingPolicyRestore(scalingPolicy *structs.ScalingPolicy) error
ScalingPolicyRestore is used to restore a scaling policy
func (*StateRestore) SchedulerConfigRestore ¶ added in v0.9.0
func (r *StateRestore) SchedulerConfigRestore(schedConfig *structs.SchedulerConfiguration) error
func (*StateRestore) ServiceRegistrationRestore ¶ added in v1.3.0
func (r *StateRestore) ServiceRegistrationRestore(service *structs.ServiceRegistration) error
ServiceRegistrationRestore is used to restore a single service registration into the service_registrations table.
func (*StateRestore) VaultAccessorRestore ¶ added in v0.5.0
func (r *StateRestore) VaultAccessorRestore(accessor *structs.VaultAccessor) error
VaultAccessorRestore is used to restore a vault accessor
type StateSnapshot ¶
type StateSnapshot struct {
StateStore
}
StateSnapshot is used to provide a point-in-time snapshot
func (*StateSnapshot) DenormalizeAllocationDiffSlice ¶ added in v0.9.2
func (s *StateSnapshot) DenormalizeAllocationDiffSlice(allocDiffs []*structs.AllocationDiff) ([]*structs.Allocation, error)
DenormalizeAllocationDiffSlice queries the Allocation for each AllocationDiff and merges the updated attributes with the existing Allocation, and attaches the Job provided.
This should only be called on terminal alloc, particularly stopped or preempted allocs
func (*StateSnapshot) DenormalizeAllocationSlice ¶ added in v0.9.2
func (s *StateSnapshot) DenormalizeAllocationSlice(allocs []*structs.Allocation) ([]*structs.Allocation, error)
DenormalizeAllocationSlice queries the Allocation for each allocation diff represented as an Allocation and merges the updated attributes with the existing Allocation, and attaches the Job provided.
This should only be called on terminal allocs, particularly stopped or preempted allocs
func (*StateSnapshot) DenormalizeAllocationsMap ¶ added in v0.9.2
func (s *StateSnapshot) DenormalizeAllocationsMap(nodeAllocations map[string][]*structs.Allocation) error
DenormalizeAllocationsMap takes in a map of nodes to allocations, and queries the Allocation for each of the Allocation diffs and merges the updated attributes with the existing Allocation, and attaches the Job provided
type StateStore ¶
type StateStore struct {
// contains filtered or unexported fields
}
The StateStore is responsible for maintaining all the Nomad state. It is manipulated by the FSM which maintains consistency through the use of Raft. The goals of the StateStore are to provide high concurrency for read operations without blocking writes, and to provide write availability in the face of reads. EVERY object returned as a result of a read against the state store should be considered a constant and NEVER modified in place.
func NewStateStore ¶
func NewStateStore(config *StateStoreConfig) (*StateStore, error)
NewStateStore is used to create a new state store
func TestStateStore ¶ added in v0.7.0
func TestStateStore(t testing.TB) *StateStore
func TestStateStoreCfg ¶ added in v1.0.0
func TestStateStoreCfg(t testing.TB, cfg *StateStoreConfig) *StateStore
func (*StateStore) ACLPolicies ¶ added in v0.7.0
func (s *StateStore) ACLPolicies(ws memdb.WatchSet) (memdb.ResultIterator, error)
ACLPolicies returns an iterator over all the acl policies
func (*StateStore) ACLPolicyByName ¶ added in v0.7.0
func (s *StateStore) ACLPolicyByName(ws memdb.WatchSet, name string) (*structs.ACLPolicy, error)
ACLPolicyByName is used to lookup a policy by name
func (*StateStore) ACLPolicyByNamePrefix ¶ added in v0.7.0
func (s *StateStore) ACLPolicyByNamePrefix(ws memdb.WatchSet, prefix string) (memdb.ResultIterator, error)
ACLPolicyByNamePrefix is used to lookup policies by prefix
func (*StateStore) ACLTokenByAccessorID ¶ added in v0.7.0
func (s *StateStore) ACLTokenByAccessorID(ws memdb.WatchSet, id string) (*structs.ACLToken, error)
ACLTokenByAccessorID is used to lookup a token by accessor ID
func (*StateStore) ACLTokenByAccessorIDPrefix ¶ added in v0.7.0
func (s *StateStore) ACLTokenByAccessorIDPrefix(ws memdb.WatchSet, prefix string, sort SortOption) (memdb.ResultIterator, error)
ACLTokenByAccessorIDPrefix is used to lookup tokens by prefix
func (*StateStore) ACLTokenBySecretID ¶ added in v0.7.0
func (s *StateStore) ACLTokenBySecretID(ws memdb.WatchSet, secretID string) (*structs.ACLToken, error)
ACLTokenBySecretID is used to lookup a token by secret ID
func (*StateStore) ACLTokens ¶ added in v0.7.0
func (s *StateStore) ACLTokens(ws memdb.WatchSet, sort SortOption) (memdb.ResultIterator, error)
ACLTokens returns an iterator over all the tokens
func (*StateStore) ACLTokensByGlobal ¶ added in v0.7.0
func (s *StateStore) ACLTokensByGlobal(ws memdb.WatchSet, globalVal bool, sort SortOption) (memdb.ResultIterator, error)
ACLTokensByGlobal returns an iterator over all the tokens filtered by global value
func (*StateStore) Abandon ¶ added in v0.5.5
func (s *StateStore) Abandon()
Abandon is used to signal that the given state store has been abandoned. Calling this more than one time will panic.
func (*StateStore) AbandonCh ¶ added in v0.5.5
func (s *StateStore) AbandonCh() <-chan struct{}
AbandonCh returns a channel you can wait on to know if the state store was abandoned.
func (*StateStore) AllocByID ¶
func (s *StateStore) AllocByID(ws memdb.WatchSet, id string) (*structs.Allocation, error)
AllocByID is used to lookup an allocation by its ID
func (*StateStore) Allocs ¶
func (s *StateStore) Allocs(ws memdb.WatchSet, sort SortOption) (memdb.ResultIterator, error)
Allocs returns an iterator over all the evaluations.
func (*StateStore) AllocsByDeployment ¶ added in v0.6.0
func (s *StateStore) AllocsByDeployment(ws memdb.WatchSet, deploymentID string) ([]*structs.Allocation, error)
AllocsByDeployment returns all the allocations by deployment id
func (*StateStore) AllocsByEval ¶
func (s *StateStore) AllocsByEval(ws memdb.WatchSet, evalID string) ([]*structs.Allocation, error)
AllocsByEval returns all the allocations by eval id
func (*StateStore) AllocsByIDPrefix ¶ added in v0.3.0
func (s *StateStore) AllocsByIDPrefix(ws memdb.WatchSet, namespace, id string, sort SortOption) (memdb.ResultIterator, error)
AllocsByIDPrefix is used to lookup allocs by prefix
func (*StateStore) AllocsByIDPrefixAllNSs ¶ added in v1.0.0
func (s *StateStore) AllocsByIDPrefixAllNSs(ws memdb.WatchSet, prefix string) (memdb.ResultIterator, error)
AllocsByIDPrefixAllNSs is used to lookup allocs by prefix.
func (*StateStore) AllocsByJob ¶
func (s *StateStore) AllocsByJob(ws memdb.WatchSet, namespace, jobID string, anyCreateIndex bool) ([]*structs.Allocation, error)
AllocsByJob returns allocations by job id
func (*StateStore) AllocsByNamespace ¶ added in v0.7.0
func (s *StateStore) AllocsByNamespace(ws memdb.WatchSet, namespace string) (memdb.ResultIterator, error)
AllocsByNamespace returns an iterator over all the allocations in the namespace
func (*StateStore) AllocsByNamespaceOrdered ¶ added in v1.3.0
func (s *StateStore) AllocsByNamespaceOrdered(ws memdb.WatchSet, namespace string, sort SortOption) (memdb.ResultIterator, error)
func (*StateStore) AllocsByNode ¶
func (s *StateStore) AllocsByNode(ws memdb.WatchSet, node string) ([]*structs.Allocation, error)
AllocsByNode returns all the allocations by node
func (*StateStore) AllocsByNodeTerminal ¶ added in v0.3.0
func (s *StateStore) AllocsByNodeTerminal(ws memdb.WatchSet, node string, terminal bool) ([]*structs.Allocation, error)
AllocsByNodeTerminal returns all the allocations by node and terminal status.
func (*StateStore) AutopilotCASConfig ¶ added in v0.8.0
func (s *StateStore) AutopilotCASConfig(index, cidx uint64, config *structs.AutopilotConfig) (bool, error)
AutopilotCASConfig is used to try updating the Autopilot configuration with a given Raft index. If the CAS index specified is not equal to the last observed index for the config, then the call is a noop,
func (*StateStore) AutopilotConfig ¶ added in v0.8.0
func (s *StateStore) AutopilotConfig() (uint64, *structs.AutopilotConfig, error)
AutopilotConfig is used to get the current Autopilot configuration.
func (*StateStore) AutopilotSetConfig ¶ added in v0.8.0
func (s *StateStore) AutopilotSetConfig(index uint64, config *structs.AutopilotConfig) error
AutopilotSetConfig is used to set the current Autopilot configuration.
func (*StateStore) BatchUpdateNodeDrain ¶ added in v0.8.0
func (s *StateStore) BatchUpdateNodeDrain(msgType structs.MessageType, index uint64, updatedAt int64, updates map[string]*structs.DrainUpdate, events map[string]*structs.NodeEvent) error
BatchUpdateNodeDrain is used to update the drain of a node set of nodes. This is currently only called when node drain is completed by the drainer.
func (*StateStore) BlockingQuery ¶ added in v0.7.0
func (s *StateStore) BlockingQuery(query QueryFn, minIndex uint64, ctx context.Context) ( resp interface{}, index uint64, err error)
BlockingQuery takes a query function and runs the function until the minimum query index is met or until the passed context is cancelled.
func (*StateStore) BootstrapACLTokens ¶ added in v0.7.0
func (s *StateStore) BootstrapACLTokens(msgType structs.MessageType, index uint64, resetIndex uint64, token *structs.ACLToken) error
BootstrapACLTokens is used to create an initial ACL token.
func (*StateStore) CSIPluginByID ¶ added in v0.11.0
func (s *StateStore) CSIPluginByID(ws memdb.WatchSet, id string) (*structs.CSIPlugin, error)
CSIPluginByID returns a named CSIPlugin. This method creates a new transaction so you should not call it from within another transaction.
func (*StateStore) CSIPluginByIDTxn ¶ added in v1.0.0
func (s *StateStore) CSIPluginByIDTxn(txn Txn, ws memdb.WatchSet, id string) (*structs.CSIPlugin, error)
CSIPluginByIDTxn returns a named CSIPlugin
func (*StateStore) CSIPluginDenormalize ¶ added in v0.11.0
func (s *StateStore) CSIPluginDenormalize(ws memdb.WatchSet, plug *structs.CSIPlugin) (*structs.CSIPlugin, error)
CSIPluginDenormalize returns a CSIPlugin with allocation details. Always called on a copy of the plugin.
func (*StateStore) CSIPluginDenormalizeTxn ¶ added in v1.0.0
func (*StateStore) CSIPlugins ¶ added in v0.11.0
func (s *StateStore) CSIPlugins(ws memdb.WatchSet) (memdb.ResultIterator, error)
CSIPlugins returns the unfiltered list of all plugin health status
func (*StateStore) CSIPluginsByIDPrefix ¶ added in v0.11.0
func (s *StateStore) CSIPluginsByIDPrefix(ws memdb.WatchSet, pluginID string) (memdb.ResultIterator, error)
CSIPluginsByIDPrefix supports search
func (*StateStore) CSIVolumeByID ¶ added in v0.11.0
func (s *StateStore) CSIVolumeByID(ws memdb.WatchSet, namespace, id string) (*structs.CSIVolume, error)
CSIVolumeByID is used to lookup a single volume. Returns a copy of the volume because its plugins and allocations are denormalized to provide accurate Health.
func (*StateStore) CSIVolumeClaim ¶ added in v0.11.0
func (s *StateStore) CSIVolumeClaim(index uint64, namespace, id string, claim *structs.CSIVolumeClaim) error
CSIVolumeClaim updates the volume's claim count and allocation list
func (*StateStore) CSIVolumeDenormalize ¶ added in v0.11.0
func (s *StateStore) CSIVolumeDenormalize(ws memdb.WatchSet, vol *structs.CSIVolume) (*structs.CSIVolume, error)
CSIVolumeDenormalize returns a CSIVolume with its current Allocations and Claims, including creating new PastClaims for terminal or garbage collected allocations. This ensures we have a consistent state. Note that it mutates the original volume and so should always be called on a Copy after reading from the state store.
func (*StateStore) CSIVolumeDenormalizePlugins ¶ added in v0.11.0
func (s *StateStore) CSIVolumeDenormalizePlugins(ws memdb.WatchSet, vol *structs.CSIVolume) (*structs.CSIVolume, error)
CSIVolumeDenormalizePlugins returns a CSIVolume with current health and plugins, but without allocations. Use this for current volume metadata, handling lists of volumes. Use CSIVolumeDenormalize for volumes containing both health and current allocations.
func (*StateStore) CSIVolumeDeregister ¶ added in v0.11.0
func (s *StateStore) CSIVolumeDeregister(index uint64, namespace string, ids []string, force bool) error
CSIVolumeDeregister removes the volume from the server
func (*StateStore) CSIVolumes ¶ added in v0.11.0
func (s *StateStore) CSIVolumes(ws memdb.WatchSet) (memdb.ResultIterator, error)
CSIVolumes returns the unfiltered list of all volumes. Caller should snapshot if it wants to also denormalize the plugins.
func (*StateStore) CSIVolumesByIDPrefix ¶ added in v0.11.0
func (s *StateStore) CSIVolumesByIDPrefix(ws memdb.WatchSet, namespace, volumeID string) (memdb.ResultIterator, error)
CSIVolumesByIDPrefix supports search. Caller should snapshot if it wants to also denormalize the plugins. If using a prefix with the wildcard namespace, the results will not use the index prefix.
func (*StateStore) CSIVolumesByNamespace ¶ added in v0.11.0
func (s *StateStore) CSIVolumesByNamespace(ws memdb.WatchSet, namespace, prefix string) (memdb.ResultIterator, error)
CSIVolumesByNamespace looks up the entire csi_volumes table
func (*StateStore) CSIVolumesByNodeID ¶ added in v0.11.0
func (s *StateStore) CSIVolumesByNodeID(ws memdb.WatchSet, prefix, nodeID string) (memdb.ResultIterator, error)
CSIVolumesByNodeID looks up CSIVolumes in use on a node. Caller should snapshot if it wants to also denormalize the plugins.
func (*StateStore) CSIVolumesByPluginID ¶ added in v0.11.0
func (s *StateStore) CSIVolumesByPluginID(ws memdb.WatchSet, namespace, prefix, pluginID string) (memdb.ResultIterator, error)
CSIVolumesByPluginID looks up csi_volumes by pluginID. Caller should snapshot if it wants to also denormalize the plugins.
func (*StateStore) CanBootstrapACLToken ¶ added in v0.7.0
func (s *StateStore) CanBootstrapACLToken() (bool, uint64, error)
CanBootstrapACLToken checks if bootstrapping is possible and returns the reset index
func (*StateStore) ClusterMetadata ¶ added in v0.10.4
func (s *StateStore) ClusterMetadata(ws memdb.WatchSet) (*structs.ClusterMetadata, error)
func (*StateStore) ClusterSetMetadata ¶ added in v0.10.4
func (s *StateStore) ClusterSetMetadata(index uint64, meta *structs.ClusterMetadata) error
func (*StateStore) Config ¶ added in v0.7.0
func (s *StateStore) Config() *StateStoreConfig
Config returns the state store configuration.
func (*StateStore) DeleteACLPolicies ¶ added in v0.7.0
func (s *StateStore) DeleteACLPolicies(msgType structs.MessageType, index uint64, names []string) error
DeleteACLPolicies deletes the policies with the given names
func (*StateStore) DeleteACLTokens ¶ added in v0.7.0
func (s *StateStore) DeleteACLTokens(msgType structs.MessageType, index uint64, ids []string) error
DeleteACLTokens deletes the tokens with the given accessor ids
func (*StateStore) DeleteCSIPlugin ¶ added in v0.11.2
func (s *StateStore) DeleteCSIPlugin(index uint64, id string) error
DeleteCSIPlugin deletes the plugin if it's not in use.
func (*StateStore) DeleteDeployment ¶ added in v0.6.0
func (s *StateStore) DeleteDeployment(index uint64, deploymentIDs []string) error
DeleteDeployment is used to delete a set of deployments by ID
func (*StateStore) DeleteEval ¶
func (s *StateStore) DeleteEval(index uint64, evals []string, allocs []string) error
DeleteEval is used to delete an evaluation
func (*StateStore) DeleteJob ¶
func (s *StateStore) DeleteJob(index uint64, namespace, jobID string) error
DeleteJob is used to deregister a job
func (*StateStore) DeleteJobSummary ¶ added in v0.4.1
func (s *StateStore) DeleteJobSummary(index uint64, namespace, id string) error
DeleteJobSummary deletes the job summary with the given ID. This is for testing purposes only.
func (*StateStore) DeleteJobTxn ¶ added in v0.8.7
func (s *StateStore) DeleteJobTxn(index uint64, namespace, jobID string, txn Txn) error
DeleteJobTxn is used to deregister a job, like DeleteJob, but in a transaction. Useful for when making multiple modifications atomically
func (*StateStore) DeleteNamespaces ¶ added in v1.0.0
func (s *StateStore) DeleteNamespaces(index uint64, names []string) error
DeleteNamespaces is used to remove a set of namespaces
func (*StateStore) DeleteNode ¶
func (s *StateStore) DeleteNode(msgType structs.MessageType, index uint64, nodes []string) error
DeleteNode deregisters a batch of nodes
func (*StateStore) DeleteOneTimeTokens ¶ added in v1.1.0
func (s *StateStore) DeleteOneTimeTokens(msgType structs.MessageType, index uint64, ids []string) error
DeleteOneTimeTokens deletes the tokens with the given ACLToken Accessor IDs
func (*StateStore) DeletePeriodicLaunch ¶ added in v0.3.0
func (s *StateStore) DeletePeriodicLaunch(index uint64, namespace, jobID string) error
DeletePeriodicLaunch is used to delete the periodic launch
func (*StateStore) DeletePeriodicLaunchTxn ¶ added in v0.8.7
func (s *StateStore) DeletePeriodicLaunchTxn(index uint64, namespace, jobID string, txn Txn) error
DeletePeriodicLaunchTxn is used to delete the periodic launch, like DeletePeriodicLaunch but in a transaction. Useful for when making multiple modifications atomically
func (*StateStore) DeleteSITokenAccessors ¶ added in v0.10.4
func (s *StateStore) DeleteSITokenAccessors(index uint64, accessors []*structs.SITokenAccessor) error
DeleteSITokenAccessors is used to delete a set of Service Identity token accessors.
func (*StateStore) DeleteScalingPolicies ¶ added in v0.11.0
func (s *StateStore) DeleteScalingPolicies(index uint64, ids []string) error
func (*StateStore) DeleteScalingPoliciesTxn ¶ added in v0.11.0
func (s *StateStore) DeleteScalingPoliciesTxn(index uint64, ids []string, txn *txn) error
DeleteScalingPoliciesTxn is used to delete a set of scaling policies by ID.
func (*StateStore) DeleteServiceRegistrationByID ¶ added in v1.3.0
func (s *StateStore) DeleteServiceRegistrationByID( msgType structs.MessageType, index uint64, namespace, id string) error
DeleteServiceRegistrationByID is responsible for deleting a single service registration based on it's ID and namespace. If the service registration is not found within state, an error will be returned.
func (*StateStore) DeleteServiceRegistrationByNodeID ¶ added in v1.3.0
func (s *StateStore) DeleteServiceRegistrationByNodeID( msgType structs.MessageType, index uint64, nodeID string) error
DeleteServiceRegistrationByNodeID deletes all service registrations that belong on a single node. If there are no registrations tied to the nodeID, the call will noop without an error.
func (*StateStore) DeleteVaultAccessors ¶ added in v0.5.0
func (s *StateStore) DeleteVaultAccessors(index uint64, accessors []*structs.VaultAccessor) error
DeleteVaultAccessors is used to delete a set of Vault Accessors
func (*StateStore) DeploymentByID ¶ added in v0.6.0
func (s *StateStore) DeploymentByID(ws memdb.WatchSet, deploymentID string) (*structs.Deployment, error)
func (*StateStore) Deployments ¶ added in v0.6.0
func (s *StateStore) Deployments(ws memdb.WatchSet, sort SortOption) (memdb.ResultIterator, error)
func (*StateStore) DeploymentsByIDPrefix ¶ added in v0.6.0
func (s *StateStore) DeploymentsByIDPrefix(ws memdb.WatchSet, namespace, deploymentID string, sort SortOption) (memdb.ResultIterator, error)
func (*StateStore) DeploymentsByJobID ¶ added in v0.6.0
func (s *StateStore) DeploymentsByJobID(ws memdb.WatchSet, namespace, jobID string, all bool) ([]*structs.Deployment, error)
func (*StateStore) DeploymentsByNamespace ¶ added in v0.7.0
func (s *StateStore) DeploymentsByNamespace(ws memdb.WatchSet, namespace string) (memdb.ResultIterator, error)
func (*StateStore) DeploymentsByNamespaceOrdered ¶ added in v1.3.0
func (s *StateStore) DeploymentsByNamespaceOrdered(ws memdb.WatchSet, namespace string, sort SortOption) (memdb.ResultIterator, error)
func (*StateStore) EvalByID ¶
func (s *StateStore) EvalByID(ws memdb.WatchSet, id string) (*structs.Evaluation, error)
EvalByID is used to lookup an eval by its ID
func (*StateStore) Evals ¶
func (s *StateStore) Evals(ws memdb.WatchSet, sort SortOption) (memdb.ResultIterator, error)
Evals returns an iterator over all the evaluations in ascending or descending order of CreationIndex as determined by the reverse parameter.
func (*StateStore) EvalsByIDPrefix ¶ added in v0.3.0
func (s *StateStore) EvalsByIDPrefix(ws memdb.WatchSet, namespace, id string, sort SortOption) (memdb.ResultIterator, error)
EvalsByIDPrefix is used to lookup evaluations by prefix in a particular namespace
func (*StateStore) EvalsByJob ¶
func (s *StateStore) EvalsByJob(ws memdb.WatchSet, namespace, jobID string) ([]*structs.Evaluation, error)
EvalsByJob returns all the evaluations by job id
func (*StateStore) EvalsByNamespace ¶ added in v0.7.0
func (s *StateStore) EvalsByNamespace(ws memdb.WatchSet, namespace string) (memdb.ResultIterator, error)
EvalsByNamespace returns an iterator over all evaluations in no particular order.
todo(shoenig): can this be removed?
func (*StateStore) EvalsByNamespaceOrdered ¶ added in v1.3.0
func (s *StateStore) EvalsByNamespaceOrdered(ws memdb.WatchSet, namespace string, sort SortOption) (memdb.ResultIterator, error)
func (*StateStore) EvalsRelatedToID ¶ added in v1.3.0
func (s *StateStore) EvalsRelatedToID(ws memdb.WatchSet, id string) ([]*structs.EvaluationStub, error)
EvalsRelatedToID is used to retrieve the evals that are related (next, previous, or blocked) to the provided eval ID.
func (*StateStore) EventBroker ¶ added in v1.0.0
func (s *StateStore) EventBroker() (*stream.EventBroker, error)
func (*StateStore) ExpireOneTimeTokens ¶ added in v1.1.0
func (s *StateStore) ExpireOneTimeTokens(msgType structs.MessageType, index uint64) error
ExpireOneTimeTokens deletes tokens that have expired
func (*StateStore) GetServiceRegistrationByID ¶ added in v1.3.0
func (s *StateStore) GetServiceRegistrationByID( ws memdb.WatchSet, namespace, id string) (*structs.ServiceRegistration, error)
GetServiceRegistrationByID returns a single registration. The registration will be nil, if no matching entry was found; it is the responsibility of the caller to check for this.
func (*StateStore) GetServiceRegistrationByName ¶ added in v1.3.0
func (s *StateStore) GetServiceRegistrationByName( ws memdb.WatchSet, namespace, name string) (memdb.ResultIterator, error)
GetServiceRegistrationByName returns an iterator that contains all service registrations whose namespace and name match the input parameters. This func therefore represents how to identify a single, collection of services that are logically grouped together.
func (*StateStore) GetServiceRegistrations ¶ added in v1.3.0
func (s *StateStore) GetServiceRegistrations(ws memdb.WatchSet) (memdb.ResultIterator, error)
GetServiceRegistrations returns an iterator that contains all service registrations stored within state. This is primarily useful when performing listings which use the namespace wildcard operator. The caller is responsible for ensuring ACL access is confirmed, or filtering is performed before responding.
func (*StateStore) GetServiceRegistrationsByAllocID ¶ added in v1.3.0
func (s *StateStore) GetServiceRegistrationsByAllocID( ws memdb.WatchSet, allocID string) (memdb.ResultIterator, error)
GetServiceRegistrationsByAllocID returns an iterator containing all the service registrations corresponding to a single allocation.
func (*StateStore) GetServiceRegistrationsByJobID ¶ added in v1.3.0
func (s *StateStore) GetServiceRegistrationsByJobID( ws memdb.WatchSet, namespace, jobID string) (memdb.ResultIterator, error)
GetServiceRegistrationsByJobID returns an iterator containing all the service registrations corresponding to a single job.
func (*StateStore) GetServiceRegistrationsByNamespace ¶ added in v1.3.0
func (s *StateStore) GetServiceRegistrationsByNamespace( ws memdb.WatchSet, namespace string) (memdb.ResultIterator, error)
GetServiceRegistrationsByNamespace returns an iterator that contains all registrations belonging to the provided namespace.
func (*StateStore) GetServiceRegistrationsByNodeID ¶ added in v1.3.0
func (s *StateStore) GetServiceRegistrationsByNodeID( ws memdb.WatchSet, nodeID string) ([]*structs.ServiceRegistration, error)
GetServiceRegistrationsByNodeID identifies all service registrations tied to the specified nodeID. This is useful for performing an in-memory lookup in order to avoid calling DeleteServiceRegistrationByNodeID via a Raft message.
func (*StateStore) Index ¶
func (s *StateStore) Index(name string) (uint64, error)
Index finds the matching index value
func (*StateStore) Indexes ¶
func (s *StateStore) Indexes() (memdb.ResultIterator, error)
Indexes returns an iterator over all the indexes
func (*StateStore) JobByID ¶
func (s *StateStore) JobByID(ws memdb.WatchSet, namespace, id string) (*structs.Job, error)
JobByID is used to lookup a job by its ID. JobByID returns the current/latest job version.
func (*StateStore) JobByIDAndVersion ¶ added in v0.6.0
func (s *StateStore) JobByIDAndVersion(ws memdb.WatchSet, namespace, id string, version uint64) (*structs.Job, error)
JobByIDAndVersion returns the job identified by its ID and Version. The passed watchset may be nil.
func (*StateStore) JobByIDTxn ¶ added in v0.8.7
func (s *StateStore) JobByIDTxn(ws memdb.WatchSet, namespace, id string, txn Txn) (*structs.Job, error)
JobByIDTxn is used to lookup a job by its ID, like JobByID. JobByID returns the job version accessible through in the transaction
func (*StateStore) JobSummaries ¶ added in v0.4.1
func (s *StateStore) JobSummaries(ws memdb.WatchSet) (memdb.ResultIterator, error)
JobSummaries walks the entire job summary table and returns all the job summary objects
func (*StateStore) JobSummaryByID ¶ added in v0.4.1
func (s *StateStore) JobSummaryByID(ws memdb.WatchSet, namespace, jobID string) (*structs.JobSummary, error)
JobSummaryByID returns a job summary object which matches a specific id.
func (*StateStore) JobSummaryByPrefix ¶ added in v0.4.1
func (s *StateStore) JobSummaryByPrefix(ws memdb.WatchSet, namespace, id string) (memdb.ResultIterator, error)
JobSummaryByPrefix is used to look up Job Summary by id prefix
func (*StateStore) JobVersions ¶ added in v0.6.0
func (s *StateStore) JobVersions(ws memdb.WatchSet) (memdb.ResultIterator, error)
func (*StateStore) JobVersionsByID ¶ added in v0.6.0
func (s *StateStore) JobVersionsByID(ws memdb.WatchSet, namespace, id string) ([]*structs.Job, error)
JobVersionsByID returns all the tracked versions of a job.
func (*StateStore) Jobs ¶
func (s *StateStore) Jobs(ws memdb.WatchSet) (memdb.ResultIterator, error)
Jobs returns an iterator over all the jobs
func (*StateStore) JobsByGC ¶ added in v0.3.0
func (s *StateStore) JobsByGC(ws memdb.WatchSet, gc bool) (memdb.ResultIterator, error)
JobsByGC returns an iterator over all jobs eligible or ineligible for garbage collection.
func (*StateStore) JobsByIDPrefix ¶ added in v0.3.0
func (s *StateStore) JobsByIDPrefix(ws memdb.WatchSet, namespace, id string) (memdb.ResultIterator, error)
JobsByIDPrefix is used to lookup a job by prefix. If querying all namespaces the prefix will not be filtered by an index.
func (*StateStore) JobsByNamespace ¶ added in v0.7.0
func (s *StateStore) JobsByNamespace(ws memdb.WatchSet, namespace string) (memdb.ResultIterator, error)
JobsByNamespace returns an iterator over all the jobs for the given namespace
func (*StateStore) JobsByPeriodic ¶ added in v0.3.0
func (s *StateStore) JobsByPeriodic(ws memdb.WatchSet, periodic bool) (memdb.ResultIterator, error)
JobsByPeriodic returns an iterator over all the periodic or non-periodic jobs.
func (*StateStore) JobsByScheduler ¶ added in v0.2.0
func (s *StateStore) JobsByScheduler(ws memdb.WatchSet, schedulerType string) (memdb.ResultIterator, error)
JobsByScheduler returns an iterator over all the jobs with the specific scheduler type.
func (*StateStore) LatestDeploymentByJobID ¶ added in v0.6.0
func (s *StateStore) LatestDeploymentByJobID(ws memdb.WatchSet, namespace, jobID string) (*structs.Deployment, error)
LatestDeploymentByJobID returns the latest deployment for the given job. The latest is determined strictly by CreateIndex.
func (*StateStore) LatestIndex ¶ added in v0.4.0
func (s *StateStore) LatestIndex() (uint64, error)
LatestIndex returns the greatest index value for all indexes.
func (*StateStore) NamespaceByName ¶ added in v1.0.0
func (s *StateStore) NamespaceByName(ws memdb.WatchSet, name string) (*structs.Namespace, error)
NamespaceByName is used to lookup a namespace by name
func (*StateStore) NamespaceNames ¶ added in v0.12.0
func (s *StateStore) NamespaceNames() ([]string, error)
func (*StateStore) Namespaces ¶ added in v1.0.0
func (s *StateStore) Namespaces(ws memdb.WatchSet) (memdb.ResultIterator, error)
Namespaces returns an iterator over all the namespaces
func (*StateStore) NamespacesByNamePrefix ¶ added in v1.0.0
func (s *StateStore) NamespacesByNamePrefix(ws memdb.WatchSet, namePrefix string) (memdb.ResultIterator, error)
NamespacesByNamePrefix is used to lookup namespaces by prefix
func (*StateStore) NewWatchSet ¶ added in v1.0.0
func (s *StateStore) NewWatchSet() memdb.WatchSet
NewWatchSet returns a new memdb.WatchSet that adds the state stores abandonCh as a watcher. This is important in that it will notify when this specific state store is no longer valid, usually due to a new snapshot being loaded
func (*StateStore) NodeByID ¶
func (s *StateStore) NodeByID(ws memdb.WatchSet, nodeID string) (*structs.Node, error)
NodeByID is used to lookup a node by ID
func (*StateStore) NodeBySecretID ¶ added in v0.7.0
func (s *StateStore) NodeBySecretID(ws memdb.WatchSet, secretID string) (*structs.Node, error)
NodeBySecretID is used to lookup a node by SecretID
func (*StateStore) Nodes ¶
func (s *StateStore) Nodes(ws memdb.WatchSet) (memdb.ResultIterator, error)
Nodes returns an iterator over all the nodes
func (*StateStore) NodesByIDPrefix ¶ added in v0.3.0
func (s *StateStore) NodesByIDPrefix(ws memdb.WatchSet, nodeID string) (memdb.ResultIterator, error)
NodesByIDPrefix is used to lookup nodes by prefix
func (*StateStore) OneTimeTokenBySecret ¶ added in v1.1.0
func (s *StateStore) OneTimeTokenBySecret(ws memdb.WatchSet, secret string) (*structs.OneTimeToken, error)
OneTimeTokenBySecret is used to lookup a token by secret
func (*StateStore) PeriodicLaunchByID ¶ added in v0.3.0
func (s *StateStore) PeriodicLaunchByID(ws memdb.WatchSet, namespace, id string) (*structs.PeriodicLaunch, error)
PeriodicLaunchByID is used to lookup a periodic launch by the periodic job ID.
func (*StateStore) PeriodicLaunches ¶ added in v0.3.0
func (s *StateStore) PeriodicLaunches(ws memdb.WatchSet) (memdb.ResultIterator, error)
PeriodicLaunches returns an iterator over all the periodic launches
func (*StateStore) ReconcileJobSummaries ¶ added in v0.4.1
func (s *StateStore) ReconcileJobSummaries(index uint64) error
ReconcileJobSummaries re-creates summaries for all jobs present in the state store
func (*StateStore) Restore ¶
func (s *StateStore) Restore() (*StateRestore, error)
Restore is used to optimize the efficiency of rebuilding state by minimizing the number of transactions and checking overhead.
func (*StateStore) SITokenAccessor ¶ added in v0.10.4
func (s *StateStore) SITokenAccessor(ws memdb.WatchSet, accessorID string) (*structs.SITokenAccessor, error)
SITokenAccessor returns the given Service Identity token accessor.
func (*StateStore) SITokenAccessors ¶ added in v0.10.4
func (s *StateStore) SITokenAccessors(ws memdb.WatchSet) (memdb.ResultIterator, error)
SITokenAccessors returns an iterator of Service Identity token accessors.
func (*StateStore) SITokenAccessorsByAlloc ¶ added in v0.10.4
func (s *StateStore) SITokenAccessorsByAlloc(ws memdb.WatchSet, allocID string) ([]*structs.SITokenAccessor, error)
SITokenAccessorsByAlloc returns all the Service Identity token accessors by alloc ID.
func (*StateStore) SITokenAccessorsByNode ¶ added in v0.10.4
func (s *StateStore) SITokenAccessorsByNode(ws memdb.WatchSet, nodeID string) ([]*structs.SITokenAccessor, error)
SITokenAccessorsByNode returns all the Service Identity token accessors by node ID.
func (*StateStore) ScalingEvents ¶ added in v0.11.0
func (s *StateStore) ScalingEvents(ws memdb.WatchSet) (memdb.ResultIterator, error)
ScalingEvents returns an iterator over all the job scaling events
func (*StateStore) ScalingEventsByJob ¶ added in v0.11.0
func (s *StateStore) ScalingEventsByJob(ws memdb.WatchSet, namespace, jobID string) (map[string][]*structs.ScalingEvent, uint64, error)
func (*StateStore) ScalingPolicies ¶ added in v0.11.0
func (s *StateStore) ScalingPolicies(ws memdb.WatchSet) (memdb.ResultIterator, error)
ScalingPolicies returns an iterator over all the scaling policies
func (*StateStore) ScalingPoliciesByIDPrefix ¶ added in v1.0.0
func (s *StateStore) ScalingPoliciesByIDPrefix(ws memdb.WatchSet, namespace string, prefix string) (memdb.ResultIterator, error)
func (*StateStore) ScalingPoliciesByJob ¶ added in v0.11.0
func (s *StateStore) ScalingPoliciesByJob(ws memdb.WatchSet, namespace, jobID, policyType string) (memdb.ResultIterator, error)
func (*StateStore) ScalingPoliciesByJobTxn ¶ added in v0.11.0
func (s *StateStore) ScalingPoliciesByJobTxn(ws memdb.WatchSet, namespace, jobID string, txn *txn) (memdb.ResultIterator, error)
func (*StateStore) ScalingPoliciesByNamespace ¶ added in v0.11.0
func (s *StateStore) ScalingPoliciesByNamespace(ws memdb.WatchSet, namespace, typ string) (memdb.ResultIterator, error)
func (*StateStore) ScalingPoliciesByTypePrefix ¶ added in v1.0.0
func (s *StateStore) ScalingPoliciesByTypePrefix(ws memdb.WatchSet, t string) (memdb.ResultIterator, error)
ScalingPoliciesByTypePrefix returns an iterator over scaling policies with a certain type prefix.
func (*StateStore) ScalingPolicyByID ¶ added in v0.11.0
func (s *StateStore) ScalingPolicyByID(ws memdb.WatchSet, id string) (*structs.ScalingPolicy, error)
func (*StateStore) ScalingPolicyByTargetAndType ¶ added in v1.0.0
func (s *StateStore) ScalingPolicyByTargetAndType(ws memdb.WatchSet, target map[string]string, typ string) (*structs.ScalingPolicy, error)
ScalingPolicyByTargetAndType returns a fully-qualified policy against a target and policy type, or nil if it does not exist. This method does not honor the watchset on the policy type, just the target.
func (*StateStore) SchedulerCASConfig ¶ added in v0.9.0
func (s *StateStore) SchedulerCASConfig(index, cidx uint64, config *structs.SchedulerConfiguration) (bool, error)
SchedulerCASConfig is used to update the scheduler configuration with a given Raft index. If the CAS index specified is not equal to the last observed index for the config, then the call is a noop.
func (*StateStore) SchedulerConfig ¶ added in v0.9.0
func (s *StateStore) SchedulerConfig() (uint64, *structs.SchedulerConfiguration, error)
SchedulerConfig is used to get the current Scheduler configuration.
func (*StateStore) SchedulerSetConfig ¶ added in v0.9.0
func (s *StateStore) SchedulerSetConfig(index uint64, config *structs.SchedulerConfiguration) error
SchedulerSetConfig is used to set the current Scheduler configuration.
func (*StateStore) Snapshot ¶
func (s *StateStore) Snapshot() (*StateSnapshot, error)
Snapshot is used to create a point in time snapshot. Because we use MemDB, we just need to snapshot the state of the underlying database.
func (*StateStore) SnapshotMinIndex ¶ added in v0.9.4
func (s *StateStore) SnapshotMinIndex(ctx context.Context, index uint64) (*StateSnapshot, error)
SnapshotMinIndex is used to create a state snapshot where the index is guaranteed to be greater than or equal to the index parameter.
Some server operations (such as scheduling) exchange objects via RPC concurrent with Raft log application, so they must ensure the state store snapshot they are operating on is at or after the index the objects retrieved via RPC were applied to the Raft log at.
Callers should maintain their own timer metric as the time this method blocks indicates Raft log application latency relative to scheduling.
func (*StateStore) StopEventBroker ¶ added in v1.0.0
func (s *StateStore) StopEventBroker()
StopEventBroker calls the cancel func for the state stores event publisher. It should be called during server shutdown.
func (*StateStore) UpdateAllocDesiredTransitionTxn ¶ added in v1.2.4
func (s *StateStore) UpdateAllocDesiredTransitionTxn( txn *txn, index uint64, allocID string, transition *structs.DesiredTransition) error
UpdateAllocDesiredTransitionTxn is used to nest an update of an allocations desired transition
func (*StateStore) UpdateAllocsDesiredTransitions ¶ added in v0.8.0
func (s *StateStore) UpdateAllocsDesiredTransitions(msgType structs.MessageType, index uint64, allocs map[string]*structs.DesiredTransition, evals []*structs.Evaluation) error
UpdateAllocsDesiredTransitions is used to update a set of allocations desired transitions.
func (*StateStore) UpdateAllocsFromClient ¶ added in v0.3.0
func (s *StateStore) UpdateAllocsFromClient(msgType structs.MessageType, index uint64, allocs []*structs.Allocation) error
UpdateAllocsFromClient is used to update an allocation based on input from a client. While the schedulers are the authority on the allocation for most things, some updates are authoritative from the client. Specifically, the desired state comes from the schedulers, while the actual state comes from clients.
func (*StateStore) UpdateDeploymentAllocHealth ¶ added in v0.6.0
func (s *StateStore) UpdateDeploymentAllocHealth(msgType structs.MessageType, index uint64, req *structs.ApplyDeploymentAllocHealthRequest) error
UpdateDeploymentAllocHealth is used to update the health of allocations as part of the deployment and potentially make a evaluation
func (*StateStore) UpdateDeploymentPromotion ¶ added in v0.6.0
func (s *StateStore) UpdateDeploymentPromotion(msgType structs.MessageType, index uint64, req *structs.ApplyDeploymentPromoteRequest) error
UpdateDeploymentPromotion is used to promote canaries in a deployment and potentially make a evaluation
func (*StateStore) UpdateDeploymentStatus ¶ added in v0.6.0
func (s *StateStore) UpdateDeploymentStatus(msgType structs.MessageType, index uint64, req *structs.DeploymentStatusUpdateRequest) error
UpdateDeploymentStatus is used to make deployment status updates and potentially make a evaluation
func (*StateStore) UpdateJobStability ¶ added in v0.6.0
func (s *StateStore) UpdateJobStability(index uint64, namespace, jobID string, jobVersion uint64, stable bool) error
UpdateJobStability updates the stability of the given job and version to the desired status.
func (*StateStore) UpdateNodeDrain ¶
func (s *StateStore) UpdateNodeDrain(msgType structs.MessageType, index uint64, nodeID string, drain *structs.DrainStrategy, markEligible bool, updatedAt int64, event *structs.NodeEvent, drainMeta map[string]string, accessorId string) error
UpdateNodeDrain is used to update the drain of a node
func (*StateStore) UpdateNodeEligibility ¶ added in v0.8.0
func (s *StateStore) UpdateNodeEligibility(msgType structs.MessageType, index uint64, nodeID string, eligibility string, updatedAt int64, event *structs.NodeEvent) error
UpdateNodeEligibility is used to update the scheduling eligibility of a node
func (*StateStore) UpdateNodeStatus ¶
func (s *StateStore) UpdateNodeStatus(msgType structs.MessageType, index uint64, nodeID, status string, updatedAt int64, event *structs.NodeEvent) error
UpdateNodeStatus is used to update the status of a node
func (*StateStore) UpsertACLPolicies ¶ added in v0.7.0
func (s *StateStore) UpsertACLPolicies(msgType structs.MessageType, index uint64, policies []*structs.ACLPolicy) error
UpsertACLPolicies is used to create or update a set of ACL policies
func (*StateStore) UpsertACLTokens ¶ added in v0.7.0
func (s *StateStore) UpsertACLTokens(msgType structs.MessageType, index uint64, tokens []*structs.ACLToken) error
UpsertACLTokens is used to create or update a set of ACL tokens
func (*StateStore) UpsertAllocs ¶
func (s *StateStore) UpsertAllocs(msgType structs.MessageType, index uint64, allocs []*structs.Allocation) error
UpsertAllocs is used to evict a set of allocations and allocate new ones at the same time.
func (*StateStore) UpsertCSIPlugin ¶ added in v0.11.2
func (s *StateStore) UpsertCSIPlugin(index uint64, plug *structs.CSIPlugin) error
UpsertCSIPlugin writes the plugin to the state store. Note: there is currently no raft message for this, as it's intended to support testing use cases.
func (*StateStore) UpsertCSIVolume ¶ added in v1.3.0
func (s *StateStore) UpsertCSIVolume(index uint64, volumes []*structs.CSIVolume) error
UpsertCSIVolume inserts a volume in the state store.
func (*StateStore) UpsertDeployment ¶ added in v0.6.0
func (s *StateStore) UpsertDeployment(index uint64, deployment *structs.Deployment) error
UpsertDeployment is used to insert a new deployment. If cancelPrior is set to true, all prior deployments for the same job will be cancelled.
func (*StateStore) UpsertEvals ¶
func (s *StateStore) UpsertEvals(msgType structs.MessageType, index uint64, evals []*structs.Evaluation) error
UpsertEvals is used to upsert a set of evaluations
func (*StateStore) UpsertEvalsTxn ¶ added in v0.8.7
func (s *StateStore) UpsertEvalsTxn(index uint64, evals []*structs.Evaluation, txn Txn) error
UpsertEvalsTxn is used to upsert a set of evaluations, like UpsertEvals but in a transaction. Useful for when making multiple modifications atomically.
func (*StateStore) UpsertJob ¶
func (s *StateStore) UpsertJob(msgType structs.MessageType, index uint64, job *structs.Job) error
UpsertJob is used to register a job or update a job definition
func (*StateStore) UpsertJobSummary ¶ added in v0.4.1
func (s *StateStore) UpsertJobSummary(index uint64, jobSummary *structs.JobSummary) error
UpsertJobSummary upserts a job summary into the state store.
func (*StateStore) UpsertJobTxn ¶ added in v0.8.7
UpsertJobTxn is used to register a job or update a job definition, like UpsertJob, but in a transaction. Useful for when making multiple modifications atomically
func (*StateStore) UpsertNamespaces ¶ added in v1.0.0
func (s *StateStore) UpsertNamespaces(index uint64, namespaces []*structs.Namespace) error
UpsertNamespaces is used to register or update a set of namespaces.
func (*StateStore) UpsertNode ¶
func (s *StateStore) UpsertNode(msgType structs.MessageType, index uint64, node *structs.Node) error
UpsertNode is used to register a node or update a node definition This is assumed to be triggered by the client, so we retain the value of drain/eligibility which is set by the scheduler.
func (*StateStore) UpsertNodeEvents ¶ added in v0.8.0
func (s *StateStore) UpsertNodeEvents(msgType structs.MessageType, index uint64, nodeEvents map[string][]*structs.NodeEvent) error
UpsertNodeEvents adds the node events to the nodes, rotating events as necessary.
func (*StateStore) UpsertOneTimeToken ¶ added in v1.1.0
func (s *StateStore) UpsertOneTimeToken(msgType structs.MessageType, index uint64, token *structs.OneTimeToken) error
UpsertOneTimeToken is used to create or update a set of ACL tokens. Validating that we're not upserting an already-expired token is made the responsibility of the caller to facilitate testing.
func (*StateStore) UpsertPeriodicLaunch ¶ added in v0.3.0
func (s *StateStore) UpsertPeriodicLaunch(index uint64, launch *structs.PeriodicLaunch) error
UpsertPeriodicLaunch is used to register a launch or update it.
func (*StateStore) UpsertPlanResults ¶ added in v0.6.0
func (s *StateStore) UpsertPlanResults(msgType structs.MessageType, index uint64, results *structs.ApplyPlanResultsRequest) error
UpsertPlanResults is used to upsert the results of a plan.
func (*StateStore) UpsertSITokenAccessors ¶ added in v0.10.4
func (s *StateStore) UpsertSITokenAccessors(index uint64, accessors []*structs.SITokenAccessor) error
UpsertSITokenAccessors is used to register a set of Service Identity token accessors.
func (*StateStore) UpsertScalingEvent ¶ added in v0.11.0
func (s *StateStore) UpsertScalingEvent(index uint64, req *structs.ScalingEventRequest) error
UpsertScalingEvent is used to insert a new scaling event. Only the most recent JobTrackedScalingEvents will be kept.
func (*StateStore) UpsertScalingPolicies ¶ added in v0.11.0
func (s *StateStore) UpsertScalingPolicies(index uint64, scalingPolicies []*structs.ScalingPolicy) error
UpsertScalingPolicies is used to insert a new scaling policy.
func (*StateStore) UpsertScalingPoliciesTxn ¶ added in v0.11.0
func (s *StateStore) UpsertScalingPoliciesTxn(index uint64, scalingPolicies []*structs.ScalingPolicy, txn *txn) error
UpsertScalingPoliciesTxn is used to insert a new scaling policy.
func (*StateStore) UpsertServiceRegistrations ¶ added in v1.3.0
func (s *StateStore) UpsertServiceRegistrations( msgType structs.MessageType, index uint64, services []*structs.ServiceRegistration) error
UpsertServiceRegistrations is used to insert a number of service registrations into the state store. It uses a single write transaction for efficiency, however, any error means no entries will be committed.
func (*StateStore) UpsertVaultAccessor ¶ added in v0.5.0
func (s *StateStore) UpsertVaultAccessor(index uint64, accessors []*structs.VaultAccessor) error
UpsertVaultAccessor is used to register a set of Vault Accessors.
func (*StateStore) VaultAccessor ¶ added in v0.5.0
func (s *StateStore) VaultAccessor(ws memdb.WatchSet, accessor string) (*structs.VaultAccessor, error)
VaultAccessor returns the given Vault accessor
func (*StateStore) VaultAccessors ¶ added in v0.5.0
func (s *StateStore) VaultAccessors(ws memdb.WatchSet) (memdb.ResultIterator, error)
VaultAccessors returns an iterator of Vault accessors.
func (*StateStore) VaultAccessorsByAlloc ¶ added in v0.5.0
func (s *StateStore) VaultAccessorsByAlloc(ws memdb.WatchSet, allocID string) ([]*structs.VaultAccessor, error)
VaultAccessorsByAlloc returns all the Vault accessors by alloc id
func (*StateStore) VaultAccessorsByNode ¶ added in v0.5.0
func (s *StateStore) VaultAccessorsByNode(ws memdb.WatchSet, nodeID string) ([]*structs.VaultAccessor, error)
VaultAccessorsByNode returns all the Vault accessors by node id
func (*StateStore) WithWriteTransaction ¶ added in v0.8.7
func (s *StateStore) WithWriteTransaction(msgType structs.MessageType, index uint64, fn func(Txn) error) error
WithWriteTransaction executes the passed function within a write transaction, and returns its result. If the invocation returns no error, the transaction is committed; otherwise, it's aborted.
type StateStoreConfig ¶ added in v0.7.0
type StateStoreConfig struct { // Logger is used to output the state store's logs Logger hclog.Logger // Region is the region of the server embedding the state store. Region string // EnablePublisher is used to enable or disable the event publisher EnablePublisher bool // EventBufferSize configures the amount of events to hold in memory EventBufferSize int64 }
StateStoreConfig is used to configure a new state store
func TestStateStorePublisher ¶ added in v1.0.0
func TestStateStorePublisher(t testing.TB) *StateStoreConfig