Documentation
¶
Index ¶
- Constants
- Variables
- func KeyFromArgs(ctx context.Context, resourcePrefix, name string) string
- func KeyFromResource(r corev2.Resource) string
- func NamespaceContext(ctx context.Context, namespace string) context.Context
- func NewNamespaceFromContext(ctx context.Context) string
- func NewNamespaceFromResource(resource types.MultitenantResource) string
- type AssetStore
- type AuthenticationStore
- type CheckConfigStore
- type ClusterIDStore
- type ClusterRoleBindingStore
- type ClusterRoleStore
- type EntityStore
- type ErrAlreadyExists
- type ErrDecode
- type ErrEncode
- type ErrInternal
- type ErrNamespaceMissing
- type ErrNotFound
- type ErrNotValid
- type EventFilterStore
- type EventStore
- type EventStoreProxy
- func (e *EventStoreProxy) DeleteEventByEntityCheck(ctx context.Context, entity, check string) error
- func (e *EventStoreProxy) GetEventByEntityCheck(ctx context.Context, entity, check string) (*types.Event, error)
- func (e *EventStoreProxy) GetEvents(ctx context.Context, pred *SelectionPredicate) ([]*corev2.Event, error)
- func (e *EventStoreProxy) GetEventsByEntity(ctx context.Context, entity string, pred *SelectionPredicate) ([]*corev2.Event, error)
- func (e *EventStoreProxy) UpdateEvent(ctx context.Context, event *types.Event) (old, new *types.Event, err error)
- func (e *EventStoreProxy) UpdateEventStore(to EventStore)
- type ExtensionRegistry
- type HandlerStore
- type HealthStore
- type HookConfigStore
- type Initializer
- type KeepaliveStore
- type KeyBuilder
- func (b KeyBuilder) Build(keys ...string) string
- func (b KeyBuilder) BuildPrefix(keys ...string) string
- func (b KeyBuilder) WithContext(ctx context.Context) KeyBuilder
- func (b KeyBuilder) WithNamespace(namespace string) KeyBuilder
- func (b KeyBuilder) WithResource(r types.MultitenantResource) KeyBuilder
- type MutatorStore
- type NamespaceStore
- type ResourceStore
- type RoleBindingStore
- type RoleStore
- type SelectionPredicate
- type SilencedStore
- type SplitKey
- type Store
- type TessenConfigStore
- type TokenStore
- type UserStore
- type WatchActionType
- type WatchEvent
- type WatchEventCheckConfig
- type WatchEventEntity
- type WatchEventHookConfig
- type WatchEventTessenConfig
- type Watcher
Constants ¶
const ( // WildcardValue is the symbol that denotes a wildcard namespace. WildcardValue = "*" // Root is the root of the sensu keyspace. Root = "/sensu.io" )
Variables ¶
var ErrNoExtension = errors.New("the extension does not exist")
ErrNoExtension is returned when a named extension does not exist.
Functions ¶
func KeyFromArgs ¶
KeyFromArgs determines the path to a resource in the store using the provided arguments
func KeyFromResource ¶
KeyFromResource determines the path to a resource in the store using the resource itself
func NamespaceContext ¶
NamespaceContext returns a context populated with the provided namespace.
func NewNamespaceFromContext ¶
NewNamespaceFromContext creates a new Namespace from a context.
func NewNamespaceFromResource ¶
func NewNamespaceFromResource(resource types.MultitenantResource) string
NewNamespaceFromResource creates a new Namespace from a MultitenantResource.
Types ¶
type AssetStore ¶
type AssetStore interface {
// DeleteAssetByName deletes an asset using the given name and the
// namespace stored in ctx.
DeleteAssetByName(ctx context.Context, name string) error
// GetAssets returns all assets in the given ctx's namespace. A nil
// slice with no error is returned if none were found.
GetAssets(ctx context.Context, pred *SelectionPredicate) ([]*types.Asset, error)
// GetAssetByName returns an asset using the given name and the namespace
// stored in ctx. The resulting asset is nil if none was found.
GetAssetByName(ctx context.Context, name string) (*types.Asset, error)
// UpdateAsset creates or updates a given asset.
UpdateAsset(ctx context.Context, asset *types.Asset) error
}
AssetStore provides methods for managing checks assets
type AuthenticationStore ¶
type AuthenticationStore interface {
// CreateJWTSecret create the given JWT secret and returns an error if it was
// unsuccessful or if a secret already exists.
CreateJWTSecret(secret []byte) error
// GetJWTSecret returns the JWT secret.
GetJWTSecret() ([]byte, error)
// UpdateJWTSecret updates the JWT secret with the given secret.
UpdateJWTSecret(secret []byte) error
}
AuthenticationStore provides methods for managing the JWT secret
type CheckConfigStore ¶
type CheckConfigStore interface {
// DeleteCheckConfigByName deletes a check's configuration using the given name
// and the namespace stored in ctx.
DeleteCheckConfigByName(ctx context.Context, name string) error
// GetCheckConfigs returns all checks configurations in the given ctx's
// namespace. A nil slice with no error is returned if none
// were found.
GetCheckConfigs(ctx context.Context, pred *SelectionPredicate) ([]*types.CheckConfig, error)
// GetCheckConfigByName returns a check's configuration using the given name
// and the namespace stored in ctx. The resulting check is
// nil if none was found.
GetCheckConfigByName(ctx context.Context, name string) (*types.CheckConfig, error)
// UpdateCheckConfig creates or updates a given check's configuration.
UpdateCheckConfig(ctx context.Context, check *types.CheckConfig) error
// GetCheckConfigWatcher returns a channel that emits CheckConfigWatchEvents notifying
// the caller that a CheckConfig was updated. If the watcher runs into a terminal error
// or the context passed is cancelled, then the channel will be closed. The caller must
// restart the watcher, if needed.
GetCheckConfigWatcher(ctx context.Context) <-chan WatchEventCheckConfig
}
CheckConfigStore provides methods for managing checks configuration
type ClusterIDStore ¶
type ClusterIDStore interface {
// CreateClusterID creates a sensu cluster id
CreateClusterID(context.Context, string) error
// GetClusterID gets the sensu cluster id
GetClusterID(context.Context) (string, error)
}
ClusterIDStore provides methods for managing the sensu cluster id
type ClusterRoleBindingStore ¶
type ClusterRoleBindingStore interface {
// Create a given cluster role binding
CreateClusterRoleBinding(ctx context.Context, clusterRoleBinding *types.ClusterRoleBinding) error
// CreateOrUpdateRole overwrites the given cluster role binding
CreateOrUpdateClusterRoleBinding(ctx context.Context, clusterRoleBinding *types.ClusterRoleBinding) error
// DeleteRole deletes a cluster role binding using the given name.
DeleteClusterRoleBinding(ctx context.Context, name string) error
// GetRole returns a cluster role binding using the given name. An error is
// returned if no binding was found
GetClusterRoleBinding(ctx context.Context, name string) (*types.ClusterRoleBinding, error)
// ListRoles returns all cluster role binding. An error is returned if no
// binding were found
ListClusterRoleBindings(ctx context.Context, pred *SelectionPredicate) (clusterRoleBindings []*types.ClusterRoleBinding, err error)
// UpdateRole creates or updates a given cluster role binding.
UpdateClusterRoleBinding(ctx context.Context, clusterRoleBinding *types.ClusterRoleBinding) error
}
ClusterRoleBindingStore provides methods for managing RBAC cluster role bindings
type ClusterRoleStore ¶
type ClusterRoleStore interface {
// Create a given cluster role
CreateClusterRole(ctx context.Context, clusterRole *types.ClusterRole) error
// CreateOrUpdateClusterRole overwrites the given cluster role
CreateOrUpdateClusterRole(ctx context.Context, clusterRole *types.ClusterRole) error
// DeleteClusterRole deletes a cluster role using the given name.
DeleteClusterRole(ctx context.Context, name string) error
// GetClusterRole returns a cluster role using the given name. An error is
// returned if no role was found
GetClusterRole(ctx context.Context, name string) (*types.ClusterRole, error)
// ListClusterRoles returns all cluster roles. An error is returned if no
// roles were found
ListClusterRoles(ctx context.Context, pred *SelectionPredicate) (clusterRoles []*types.ClusterRole, err error)
// UpdateClusterRole creates or updates a given cluster role.
UpdateClusterRole(ctx context.Context, clusterRole *types.ClusterRole) error
}
ClusterRoleStore provides methods for managing RBAC cluster roles and rules
type EntityStore ¶
type EntityStore interface {
// DeleteEntity deletes an entity using the given entity struct.
DeleteEntity(ctx context.Context, entity *types.Entity) error
// DeleteEntityByName deletes an entity using the given name and the
// namespace stored in ctx.
DeleteEntityByName(ctx context.Context, name string) error
// GetEntities returns all entities in the given ctx's namespace. A nil slice
// with no error is returned if none were found.
GetEntities(ctx context.Context, pred *SelectionPredicate) ([]*types.Entity, error)
// GetEntityByName returns an entity using the given name and the namespace stored
// in ctx. The resulting entity is nil if none was found.
GetEntityByName(ctx context.Context, name string) (*types.Entity, error)
// UpdateEntity creates or updates a given entity.
UpdateEntity(ctx context.Context, entity *types.Entity) error
GetEntityWatcher(context.Context) <-chan WatchEventEntity
}
EntityStore provides methods for managing entities
type ErrAlreadyExists ¶
type ErrAlreadyExists struct {
Key string
}
ErrAlreadyExists is returned when an object already exists
func (*ErrAlreadyExists) Error ¶
func (e *ErrAlreadyExists) Error() string
type ErrInternal ¶
type ErrInternal struct {
Message string
}
ErrInternal is returned when something generally bad happened while interacting with the store. Other, more specific errors should preferably be returned when appropriate.
func (*ErrInternal) Error ¶
func (e *ErrInternal) Error() string
type ErrNamespaceMissing ¶
type ErrNamespaceMissing struct {
Namespace string
}
ErrNamespaceMissing is returned when the user tries to manipulate a resource within a namespace that does not exist
func (*ErrNamespaceMissing) Error ¶
func (e *ErrNamespaceMissing) Error() string
type ErrNotFound ¶
type ErrNotFound struct {
Key string
}
ErrNotFound is returned when a key is not found in the store
func (*ErrNotFound) Error ¶
func (e *ErrNotFound) Error() string
type ErrNotValid ¶
type ErrNotValid struct {
Err error
}
ErrNotValid is returned when an object failed validation
func (*ErrNotValid) Error ¶
func (e *ErrNotValid) Error() string
type EventFilterStore ¶
type EventFilterStore interface {
// DeleteEventFilterByName deletes an event filter using the given name and the
// namespace stored in ctx.
DeleteEventFilterByName(ctx context.Context, name string) error
// GetEventFilters returns all filters in the given ctx's namespace. A nil
// slice with no error is returned if none were found.
GetEventFilters(ctx context.Context, pred *SelectionPredicate) ([]*types.EventFilter, error)
// GetEventFilterByName returns a filter using the given name and the
// namespace stored in ctx. The resulting filter is nil if none was found.
GetEventFilterByName(ctx context.Context, name string) (*types.EventFilter, error)
// UpdateEventFilter creates or updates a given filter.
UpdateEventFilter(ctx context.Context, filter *types.EventFilter) error
}
EventFilterStore provides methods for managing events filters
type EventStore ¶
type EventStore interface {
// DeleteEventByEntityCheck deletes an event using the given entity and check,
// within the namespace stored in ctx.
DeleteEventByEntityCheck(ctx context.Context, entity, check string) error
// GetEvents returns all events in the given ctx's namespace. A nil slice with
// no error is returned if none were found.
GetEvents(ctx context.Context, pred *SelectionPredicate) ([]*corev2.Event, error)
// GetEventsByEntity returns all events for the given entity within the ctx's
// namespace. A nil slice with no error is returned if none were found.
GetEventsByEntity(ctx context.Context, entity string, pred *SelectionPredicate) ([]*corev2.Event, error)
// GetEventByEntityCheck returns an event using the given entity and check,
// within the namespace stored in ctx. The resulting event
// is nil if none was found.
GetEventByEntityCheck(ctx context.Context, entity, check string) (*types.Event, error)
// UpdateEvent creates or updates a given event. It returns the updated
// event, which may be the same as the event that was passed in, and the
// previous event, if one existed, as well as any error that occurred.
UpdateEvent(ctx context.Context, event *types.Event) (old, new *types.Event, err error)
}
EventStore provides methods for managing events
type EventStoreProxy ¶
type EventStoreProxy struct {
// contains filtered or unexported fields
}
EventStoreProxy is a mechanism for providing an EventStore with a replaceable underlying implementation. It uses an atomic so that calls are not impeded by mutex overhead.
func NewEventStoreProxy ¶
func NewEventStoreProxy(s EventStore) *EventStoreProxy
func (*EventStoreProxy) DeleteEventByEntityCheck ¶
func (e *EventStoreProxy) DeleteEventByEntityCheck(ctx context.Context, entity, check string) error
func (*EventStoreProxy) GetEventByEntityCheck ¶
func (*EventStoreProxy) GetEvents ¶
func (e *EventStoreProxy) GetEvents(ctx context.Context, pred *SelectionPredicate) ([]*corev2.Event, error)
func (*EventStoreProxy) GetEventsByEntity ¶
func (e *EventStoreProxy) GetEventsByEntity(ctx context.Context, entity string, pred *SelectionPredicate) ([]*corev2.Event, error)
func (*EventStoreProxy) UpdateEvent ¶
func (*EventStoreProxy) UpdateEventStore ¶
func (e *EventStoreProxy) UpdateEventStore(to EventStore)
type ExtensionRegistry ¶
type ExtensionRegistry interface {
// RegisterExtension registers an extension. It associates an extension type and
// name with a URL. The registry assumes that the extension provides
// a handler and a mutator named 'name'.
RegisterExtension(context.Context, *types.Extension) error
// DeregisterExtension deregisters an extension. If the extension does not exist,
// nil error is returned.
DeregisterExtension(ctx context.Context, name string) error
// GetExtension gets the address of a registered extension. If the extension does
// not exist, ErrNoExtension is returned.
GetExtension(ctx context.Context, name string) (*types.Extension, error)
// GetExtensions gets all the extensions for the namespace in ctx.
GetExtensions(ctx context.Context, pred *SelectionPredicate) ([]*types.Extension, error)
}
ExtensionRegistry registers and tracks Sensu extensions.
type HandlerStore ¶
type HandlerStore interface {
// DeleteHandlerByName deletes a handler using the given name and the
// namespace stored in ctx.
DeleteHandlerByName(ctx context.Context, name string) error
// GetHandlers returns all handlers in the given ctx's namespace. A nil slice
// with no error is returned if none were found.
GetHandlers(ctx context.Context, pred *SelectionPredicate) ([]*types.Handler, error)
// GetHandlerByName returns a handler using the given name and the namespace
// stored in ctx. The resulting handler is nil if none was found.
GetHandlerByName(ctx context.Context, name string) (*types.Handler, error)
// UpdateHandler creates or updates a given handler.
UpdateHandler(ctx context.Context, handler *types.Handler) error
}
HandlerStore provides methods for managing events handlers
type HealthStore ¶
type HealthStore interface {
GetClusterHealth(ctx context.Context, cluster clientv3.Cluster, etcdClientTLSConfig *tls.Config) *types.HealthResponse
}
HealthStore provides methods for cluster health
type HookConfigStore ¶
type HookConfigStore interface {
// DeleteHookConfigByName deletes a hook's configuration using the given name
// and the namespace stored in ctx.
DeleteHookConfigByName(ctx context.Context, name string) error
// GetHookConfigs returns all hooks configurations in the given ctx's
// namespace. A nil slice with no error is returned if none
// were found.
GetHookConfigs(ctx context.Context, pred *SelectionPredicate) ([]*types.HookConfig, error)
// GetHookConfigByName returns a hook's configuration using the given name and
// the namespace stored in ctx. The resulting hook is nil if none was found.
GetHookConfigByName(ctx context.Context, name string) (*types.HookConfig, error)
// UpdateHookConfig creates or updates a given hook's configuration.
UpdateHookConfig(ctx context.Context, check *types.HookConfig) error
}
HookConfigStore provides methods for managing hooks configuration
type Initializer ¶
type Initializer interface {
// Close closes the session to the store and unlock any mutex
Close() error
// FlagAsInitialized marks the store as initialized
FlagAsInitialized() error
// IsInitialized returns a boolean error that indicates if the store has been
// initialized or not
IsInitialized() (bool, error)
// Lock locks a mutex to avoid competing writes
Lock() error
}
Initializer provides methods to verify if a store is initialized
type KeepaliveStore ¶
type KeepaliveStore interface {
// DeleteFailingKeepalive deletes a failing keepalive record for a given entity.
DeleteFailingKeepalive(ctx context.Context, entity *types.Entity) error
// GetFailingKeepalives returns a slice of failing keepalives.
GetFailingKeepalives(ctx context.Context) ([]*types.KeepaliveRecord, error)
// UpdateFailingKeepalive updates the given entity keepalive with the given expiration
// in unix timestamp format
UpdateFailingKeepalive(ctx context.Context, entity *types.Entity, expiration int64) error
}
KeepaliveStore provides methods for managing entities keepalives
type KeyBuilder ¶
type KeyBuilder struct {
// contains filtered or unexported fields
}
KeyBuilder builds multi-tenant resource keys.
func NewKeyBuilder ¶
func NewKeyBuilder(resourceName string) KeyBuilder
NewKeyBuilder creates a new KeyBuilder.
func (KeyBuilder) Build ¶
func (b KeyBuilder) Build(keys ...string) string
Build builds a key from the components it is given.
func (KeyBuilder) BuildPrefix ¶
func (b KeyBuilder) BuildPrefix(keys ...string) string
BuildPrefix can be used when building a key that will be used to retrieve a collection of records. Unlike standard build method it stops building the key when it first encounters a wildcard value.
func (KeyBuilder) WithContext ¶
func (b KeyBuilder) WithContext(ctx context.Context) KeyBuilder
WithContext adds a namespace from a context.
func (KeyBuilder) WithNamespace ¶
func (b KeyBuilder) WithNamespace(namespace string) KeyBuilder
WithNamespace adds a namespace to a key.
func (KeyBuilder) WithResource ¶
func (b KeyBuilder) WithResource(r types.MultitenantResource) KeyBuilder
WithResource adds a resource to a key.
type MutatorStore ¶
type MutatorStore interface {
// DeleteMutatorByName deletes a mutator using the given name and the
// namespace stored in ctx.
DeleteMutatorByName(ctx context.Context, name string) error
// GetMutators returns all mutators in the given ctx's namespace. A nil slice
// with no error is returned if none were found.
GetMutators(ctx context.Context, pred *SelectionPredicate) ([]*types.Mutator, error)
// GetMutatorByName returns a mutator using the given name and the
// namespace stored in ctx. The resulting mutator is nil if
// none was found.
GetMutatorByName(ctx context.Context, name string) (*types.Mutator, error)
// UpdateMutator creates or updates a given mutator.
UpdateMutator(ctx context.Context, mutator *types.Mutator) error
}
MutatorStore provides methods for managing events mutators
type NamespaceStore ¶
type NamespaceStore interface {
// CreateNamespace creates a given namespace
CreateNamespace(ctx context.Context, namespace *types.Namespace) error
// DeleteNamespace deletes a namespace using the given name.
DeleteNamespace(ctx context.Context, name string) error
// ListNamespaces returns all namespaces. A nil slice with no error is
// returned if none were found.
ListNamespaces(ctx context.Context, pred *SelectionPredicate) ([]*types.Namespace, error)
// GetNamespace returns a namespace using the given name. The
// result is nil if none was found.
GetNamespace(ctx context.Context, name string) (*types.Namespace, error)
// UpdateNamespace updates an existing namespace.
UpdateNamespace(ctx context.Context, org *types.Namespace) error
}
NamespaceStore provides methods for managing namespaces
type ResourceStore ¶
type ResourceStore interface {
CreateResource(ctx context.Context, resource corev2.Resource) error
CreateOrUpdateResource(ctx context.Context, resource corev2.Resource) error
DeleteResource(ctx context.Context, kind, name string) error
GetResource(ctx context.Context, name string, resource corev2.Resource) error
ListResources(ctx context.Context, kind string, resources interface{}, pred *SelectionPredicate) error
}
ResourceStore ...
type RoleBindingStore ¶
type RoleBindingStore interface {
// Create a given role binding
CreateRoleBinding(ctx context.Context, roleBinding *types.RoleBinding) error
// CreateOrUpdateRole overwrites the given role binding
CreateOrUpdateRoleBinding(ctx context.Context, roleBinding *types.RoleBinding) error
// DeleteRole deletes a role binding using the given name.
DeleteRoleBinding(ctx context.Context, name string) error
// GetRole returns a role binding using the given name. An error is returned
// if no binding was found
GetRoleBinding(ctx context.Context, name string) (*types.RoleBinding, error)
// ListRoles returns all role binding. An error is returned if no binding were
// found
ListRoleBindings(ctx context.Context, pred *SelectionPredicate) (roleBindings []*types.RoleBinding, err error)
// UpdateRole creates or updates a given role binding.
UpdateRoleBinding(ctx context.Context, roleBinding *types.RoleBinding) error
}
RoleBindingStore provides methods for managing RBAC role bindings
type RoleStore ¶
type RoleStore interface {
// Create a given role
CreateRole(ctx context.Context, role *types.Role) error
// CreateOrUpdateRole overwrites the given role
CreateOrUpdateRole(ctx context.Context, role *types.Role) error
// DeleteRole deletes a role using the given name.
DeleteRole(ctx context.Context, name string) error
// GetRole returns a role using the given name. An error is returned if no
// role was found
GetRole(ctx context.Context, name string) (*types.Role, error)
// ListRoles returns all roles. An error is returned if no roles were found
ListRoles(ctx context.Context, pred *SelectionPredicate) (roles []*types.Role, err error)
// UpdateRole creates or updates a given role.
UpdateRole(ctx context.Context, role *types.Role) error
}
RoleStore provides methods for managing RBAC roles and rules
type SelectionPredicate ¶
type SelectionPredicate struct {
// Continue provides the key from which the selection should start. If
// returned empty from the store, it indicates that there's no additional
// resources available
Continue string
// Limit indicates the number of resources to retrieve
Limit int64
// Subcollection represents a sub-collection of the primary collection
Subcollection string
}
SelectionPredicate represents the way to select resources from storage
type SilencedStore ¶
type SilencedStore interface {
// DeleteSilencedEntryByName deletes an entry using the given id.
DeleteSilencedEntryByName(ctx context.Context, id ...string) error
// GetSilencedEntries returns all entries. A nil slice with no error is
// returned if none were found.
GetSilencedEntries(ctx context.Context) ([]*types.Silenced, error)
// GetSilencedEntriesByCheckName returns all entries for the given check
// within the ctx's namespace. A nil slice with no error is
// returned if none were found.
GetSilencedEntriesByCheckName(ctx context.Context, check string) ([]*types.Silenced, error)
// GetSilencedEntriesByCheckName returns all entries for the given subscription
// within the ctx's namespace. A nil slice with no error is
// returned if none were found.
GetSilencedEntriesBySubscription(ctx context.Context, subscriptions ...string) ([]*types.Silenced, error)
// GetSilencedEntryByName returns an entry using the given id and the
// namespace stored in ctx. The resulting entry is nil if
// none was found.
GetSilencedEntryByName(ctx context.Context, id string) (*types.Silenced, error)
// UpdateHandler creates or updates a given entry.
UpdateSilencedEntry(ctx context.Context, entry *types.Silenced) error
// GetSilencedEntriesByName gets all the named silenced entries.
GetSilencedEntriesByName(ctx context.Context, id ...string) ([]*types.Silenced, error)
}
SilencedStore provides methods for managing silenced entries, consisting of entities, subscriptions and/or checks
type SplitKey ¶
SplitKey contains the component parts of a sensu resource key.
func ParseResourceKey ¶
ParseResourceKey splits a resource key into its component parts. It assumes the following key structure:
/root/resourcetype/namespace/resourcename With the leading slash being optional.
type Store ¶
type Store interface {
// AssetStore provides an interface for managing checks assets
AssetStore
// AuthenticationStore provides an interface for managing the JWT secret
AuthenticationStore
// CheckConfigStore provides an interface for managing checks configuration
CheckConfigStore
// ClusterIDStore provides an interface for managing the sensu cluster id
ClusterIDStore
// EntityStore provides an interface for managing entities
EntityStore
// EventStore provides an interface for managing events
EventStore
// EventFilterStore provides an interface for managing events filters
EventFilterStore
// HandlerStore provides an interface for managing events handlers
HandlerStore
// HealthStore provides an interface for getting cluster health information
HealthStore
// HookConfigStore provides an interface for managing hooks configuration
HookConfigStore
// KeepaliveStore provides an interface for managing entities keepalives
KeepaliveStore
// MutatorStore provides an interface for managing events mutators
MutatorStore
// NamespaceStore provides an interface for managing namespaces
NamespaceStore
// ClusterRoleStore provides an interface for managing cluster roles
ClusterRoleStore
// ClusterRoleBindingStore provides an interface for managing cluster role bindings
ClusterRoleBindingStore
// RoleStore provides an interface for managing roles
RoleStore
// RoleBindingStore provides an interface for managing role bindings
RoleBindingStore
// SilencedStore provides an interface for managing silenced entries,
// consisting of entities, subscriptions and/or checks
SilencedStore
// TessenConfigStore provides an interface for managing the tessen configuration
TessenConfigStore
// TokenStore provides an interface for managing the JWT access list
TokenStore
// UserStore provides an interface for managing users
UserStore
// ExtensionRegistry tracks third-party extensions.
ExtensionRegistry
// ResourceStore ...
ResourceStore
// NewInitializer returns the Initializer interfaces, which provides the
// required mechanism to verify if a store is initialized
NewInitializer() (Initializer, error)
}
Store is used to abstract the durable storage used by the Sensu backend processses. Each Sensu resources is represented by its own interface. A MockStore is available in order to mock a store implementation
type TessenConfigStore ¶
type TessenConfigStore interface {
// CreateOrUpdateTessenConfig creates or updates the tessen configuration
CreateOrUpdateTessenConfig(context.Context, *corev2.TessenConfig) error
// GetTessenConfig gets the tessen configuration
GetTessenConfig(context.Context) (*corev2.TessenConfig, error)
// GetTessenConfigWatcher returns a tessen config watcher
GetTessenConfigWatcher(context.Context) <-chan WatchEventTessenConfig
}
TessenConfigStore provides methods for managing the Tessen configuration
type TokenStore ¶
type TokenStore interface {
// AllowTokens adds the provided tokens to the JWT access list
AllowTokens(tokens ...*jwt.Token) error
// RevokeTokens removes tokens using the provided claims from the JWT access
// list
RevokeTokens(claims ...*corev2.Claims) error
// GetToken returns the claims of a given token ID, belonging to the given
// subject. An error is returned if no claims were found.
GetToken(subject, id string) (*types.Claims, error)
}
TokenStore provides methods for managing the JWT access list
type UserStore ¶
type UserStore interface {
// AuthenticateUser attempts to authenticate a user with the given username
// and hashed password. An error is returned if the user does not exist, is
// disabled or the given password does not match.
AuthenticateUser(ctx context.Context, username, password string) (*types.User, error)
// CreateUsern creates a new user with the given user struct.
CreateUser(user *types.User) error
// DeleteUser deletes a user using the given user struct.
DeleteUser(ctx context.Context, user *types.User) error
// GetUser returns a user using the given username.
GetUser(ctx context.Context, username string) (*types.User, error)
// GetUsers returns all enabled users. A nil slice with no error is
// returned if none were found.
GetUsers() ([]*types.User, error)
// GetUsers returns all users, including the disabled ones. A nil slice with
// no error is returned if none were found.
GetAllUsers(pred *SelectionPredicate) ([]*types.User, error)
// UpdateHandler updates a given user.
UpdateUser(user *types.User) error
}
UserStore provides methods for managing users
type WatchActionType ¶
type WatchActionType int
WatchActionType indicates what type of change was made to an object in the store.
const ( // WatchUnknown indicates that we received an unknown watch even tytpe // from etcd. WatchUnknown WatchActionType = iota // WatchCreate indicates that an object was created. WatchCreate // WatchUpdate indicates that an object was updated. WatchUpdate // WatchDelete indicates that an object was deleted. WatchDelete // WatchError indicates that an error was encountered WatchError )
func (WatchActionType) String ¶
func (t WatchActionType) String() string
type WatchEvent ¶
type WatchEvent struct {
Type WatchActionType
Key string
Object []byte
Err error
}
WatchEvent represents an event of a watched resource
type WatchEventCheckConfig ¶
type WatchEventCheckConfig struct {
CheckConfig *types.CheckConfig
Action WatchActionType
}
A WatchEventCheckConfig contains the modified store object and the action that occured during the modification.
type WatchEventEntity ¶
type WatchEventEntity struct {
Entity *corev2.Entity
Action WatchActionType
}
WatchEventEntity is a notification that the entity store has been updated.
type WatchEventHookConfig ¶
type WatchEventHookConfig struct {
HookConfig *types.HookConfig
Action WatchActionType
}
A WatchEventHookConfig contains the modified asset object and the action that occurred during the modification.
type WatchEventTessenConfig ¶
type WatchEventTessenConfig struct {
TessenConfig *corev2.TessenConfig
Action WatchActionType
}
WatchEventTessenConfig is a notification that the tessen config store has been updated.
type Watcher ¶
type Watcher interface {
Result() <-chan WatchEvent
}
Watcher represents a generic watcher