Documentation ¶
Overview ¶
Package storage contains the storage subsystem for the uniter, responding to changes in storage attachments (lifecycle, volume/filesystem details) by queuing hooks and managing the storage attachments' lifecycle.
Index ¶
- func NewResolver(storage *Attachments) resolver.Resolver
- type Attachments
- func (a *Attachments) CommitHook(hi hook.Info) error
- func (a *Attachments) Empty() bool
- func (a *Attachments) Pending() int
- func (a *Attachments) SetDying() error
- func (a *Attachments) Storage(tag names.StorageTag) (jujuc.ContextStorageAttachment, error)
- func (a *Attachments) StorageTags() ([]names.StorageTag, error)
- func (a *Attachments) ValidateHook(hi hook.Info) error
- type StorageAccessor
- type StorageResolverOperations
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewResolver ¶
func NewResolver(storage *Attachments) resolver.Resolver
NewResolver returns a new storage resolver.
Types ¶
type Attachments ¶
type Attachments struct {
// contains filtered or unexported fields
}
Attachments generates storage hooks in response to changes to storage attachments, and provides access to information about storage attachments to hooks.
func NewAttachments ¶
func NewAttachments( st StorageAccessor, tag names.UnitTag, storageStateDir string, abort <-chan struct{}, ) (*Attachments, error)
NewAttachments returns a new Attachments.
func (*Attachments) CommitHook ¶
func (a *Attachments) CommitHook(hi hook.Info) error
CommitHook persists the state change encoded in the supplied storage hook, or returns an error if the hook is invalid given current state.
func (*Attachments) Empty ¶
func (a *Attachments) Empty() bool
Empty reports whether or not there are any active storage attachments.
func (*Attachments) Pending ¶
func (a *Attachments) Pending() int
Pending reports the number of storage attachments whose hooks have yet to be run and committed.
func (*Attachments) SetDying ¶
func (a *Attachments) SetDying() error
SetDying ensures that any unprovisioned storage attachments are removed from state.
func (*Attachments) Storage ¶
func (a *Attachments) Storage(tag names.StorageTag) (jujuc.ContextStorageAttachment, error)
Storage returns the ContextStorage with the supplied tag if it was found, and whether it was found.
func (*Attachments) StorageTags ¶
func (a *Attachments) StorageTags() ([]names.StorageTag, error)
StorageTags returns the names.StorageTags for the active storage attachments.
func (*Attachments) ValidateHook ¶
func (a *Attachments) ValidateHook(hi hook.Info) error
ValidateHook validates the hook against the current state.
type StorageAccessor ¶
type StorageAccessor interface { // StorageAttachment returns details of the storage attachment // with the specified unit and storage tags. StorageAttachment(names.StorageTag, names.UnitTag) (params.StorageAttachment, error) // UnitStorageAttachments returns details of all of the storage // attachments for the unit with the specified tag. UnitStorageAttachments(names.UnitTag) ([]params.StorageAttachmentId, error) // DestroyUnitStorageAttachments ensures that all storage // attachments for the specified unit will be removed at // some point in the future. DestroyUnitStorageAttachments(names.UnitTag) error // RemoveStorageAttachment removes that the storage attachment // with the specified unit and storage tags. This method is only // expected to succeed if the storage attachment is Dying. RemoveStorageAttachment(names.StorageTag, names.UnitTag) error }
StorageAccessor is an interface for accessing information about storage attachments.