Documentation
¶
Index ¶
- Constants
- Variables
- func NewFactory(b bus.Bus) controller.Factory
- type Config
- func (m *Config) CloneMessageVT() protobuf_go_lite.CloneMessage
- func (m *Config) CloneVT() *Config
- func (this *Config) EqualMessageVT(thatMsg any) bool
- func (this *Config) EqualVT(that *Config) bool
- func (c *Config) EqualsConfig(other config.Config) bool
- func (c *Config) GetConfigID() string
- func (x *Config) GetObjectStoreId() string
- func (x *Config) GetSessionControllerId() string
- func (x *Config) GetVolumeId() string
- func (x *Config) MarshalJSON() ([]byte, error)
- func (x *Config) MarshalProtoJSON(s *json.MarshalState)
- func (x *Config) MarshalProtoText() string
- func (m *Config) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Config) MarshalToVT(dAtA []byte) (int, error)
- func (m *Config) MarshalVT() (dAtA []byte, err error)
- func (*Config) ProtoMessage()
- func (x *Config) Reset()
- func (m *Config) SizeVT() (n int)
- func (x *Config) String() string
- func (x *Config) UnmarshalJSON(b []byte) error
- func (x *Config) UnmarshalProtoJSON(s *json.UnmarshalState)
- func (m *Config) UnmarshalVT(dAtA []byte) error
- func (c *Config) Validate() error
- type Controller
- func (c *Controller) Close() error
- func (c *Controller) DeleteSession(ctx context.Context, ref *session.SessionRef) error
- func (c *Controller) GetSessionBroadcast() *broadcast.Broadcast
- func (c *Controller) GetSessionByIdx(ctx context.Context, idx uint32) (*session.SessionListEntry, error)
- func (c *Controller) GetSessionMetadata(ctx context.Context, idx uint32) (*session.SessionMetadata, error)
- func (c *Controller) HandleDirective(ctx context.Context, di directive.Instance) ([]directive.Resolver, error)
- func (c *Controller) ListSessions(ctx context.Context) ([]*session.SessionListEntry, error)
- func (c *Controller) RegisterSession(ctx context.Context, ref *session.SessionRef, ...) (*session.SessionListEntry, error)
- func (c *Controller) TransitionSession(ctx context.Context, source, destination *session.SessionRef) error
- func (c *Controller) UpdateSessionMetadata(ctx context.Context, ref *session.SessionRef, ...) error
Constants ¶
const ConfigID = ControllerID
ConfigID is the config identifier.
const ControllerID = "session"
ControllerID is the controller id.
Variables ¶
var Version = controller.MustParseVersion("0.0.1")
Version is the component version
Functions ¶
func NewFactory ¶
func NewFactory(b bus.Bus) controller.Factory
NewFactory constructs the component factory.
Types ¶
type Config ¶
type Config struct {
// SessionControllerId is the id for the session controller.
// Resolves LookupSessionController directives.
// Can be empty.
SessionControllerId string `protobuf:"bytes,1,opt,name=session_controller_id,json=sessionControllerId,proto3" json:"sessionControllerId,omitempty"`
// VolumeId is the volume id to store data.
// If empty, defaults to the plugin host volume.
VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId,proto3" json:"volumeId,omitempty"`
// ObjectStoreId is the object store id to store the session list.
// If empty, defaults to sessions/list.
ObjectStoreId string `protobuf:"bytes,3,opt,name=object_store_id,json=objectStoreId,proto3" json:"objectStoreId,omitempty"`
// contains filtered or unexported fields
}
Config configures the session storage controller.
func (*Config) CloneMessageVT ¶
func (m *Config) CloneMessageVT() protobuf_go_lite.CloneMessage
func (*Config) EqualMessageVT ¶
func (*Config) EqualsConfig ¶
EqualsConfig checks if the config is equal to another.
func (*Config) GetConfigID ¶
GetConfigID returns the unique string for this configuration type.
func (*Config) GetObjectStoreId ¶
func (*Config) GetSessionControllerId ¶
func (*Config) GetVolumeId ¶
func (*Config) MarshalJSON ¶
MarshalJSON marshals the Config to JSON.
func (*Config) MarshalProtoJSON ¶
func (x *Config) MarshalProtoJSON(s *json.MarshalState)
MarshalProtoJSON marshals the Config message to JSON.
func (*Config) MarshalProtoText ¶
func (*Config) MarshalToSizedBufferVT ¶
func (*Config) ProtoMessage ¶
func (*Config) ProtoMessage()
func (*Config) UnmarshalJSON ¶
UnmarshalJSON unmarshals the Config from JSON.
func (*Config) UnmarshalProtoJSON ¶
func (x *Config) UnmarshalProtoJSON(s *json.UnmarshalState)
UnmarshalProtoJSON unmarshals the Config message from JSON.
func (*Config) UnmarshalVT ¶
type Controller ¶
type Controller struct {
*bus.BusController[*Config]
// contains filtered or unexported fields
}
Controller is the session controller.
func (*Controller) Close ¶ added in v0.51.7
func (c *Controller) Close() error
Close releases controller-owned resources.
func (*Controller) DeleteSession ¶
func (c *Controller) DeleteSession(ctx context.Context, ref *session.SessionRef) error
DeleteSession removes the matching session ref from the list. Returns nil if not found.
func (*Controller) GetSessionBroadcast ¶
func (c *Controller) GetSessionBroadcast() *broadcast.Broadcast
GetSessionBroadcast returns the broadcast that fires when sessions change.
func (*Controller) GetSessionByIdx ¶
func (c *Controller) GetSessionByIdx(ctx context.Context, idx uint32) (*session.SessionListEntry, error)
GetSessionByIdx looks up the given session index. Returns nil, nil if not found.
func (*Controller) GetSessionMetadata ¶
func (c *Controller) GetSessionMetadata(ctx context.Context, idx uint32) (*session.SessionMetadata, error)
GetSessionMetadata returns the metadata for a session by index. Returns nil, nil if not found.
func (*Controller) HandleDirective ¶
func (c *Controller) HandleDirective(ctx context.Context, di directive.Instance) ([]directive.Resolver, error)
HandleDirective asks if the handler can resolve the directive. If it can, it returns a resolver. If not, returns nil. Any unexpected errors are returned for logging. It is safe to add a reference to the directive during this call.
func (*Controller) ListSessions ¶
func (c *Controller) ListSessions(ctx context.Context) ([]*session.SessionListEntry, error)
ListSessions lists the sessions in storage.
func (*Controller) RegisterSession ¶
func (c *Controller) RegisterSession(ctx context.Context, ref *session.SessionRef, metadata *session.SessionMetadata) (*session.SessionListEntry, error)
RegisterSession registers a session ref in storage or returns the existing matching entry. If metadata is non-nil, it is written to the session controller ObjectStore.
func (*Controller) TransitionSession ¶
func (c *Controller) TransitionSession(ctx context.Context, source, destination *session.SessionRef) error
TransitionSession replaces an attachment at its existing index after the destination has durably accepted its credential. Source credentials remain in their provider volume for recovery. Replaying the same transition is safe.
func (*Controller) UpdateSessionMetadata ¶
func (c *Controller) UpdateSessionMetadata(ctx context.Context, ref *session.SessionRef, metadata *session.SessionMetadata) error
UpdateSessionMetadata updates the metadata for a session by ref. Does nothing if no session entry matches the ref.