This section is empty.


This section is empty.


This section is empty.


type Application

type Application interface {
	GetScale() int
	SetScale(int, int64, bool) error
	WatchScale() state.NotifyWatcher
	ApplicationConfig() (application.ConfigAttributes, error)
	AllUnits() (units []Unit, err error)
	AddOperation(state.UnitUpdateProperties) *state.AddUnitOperation
	UpdateUnits(*state.UpdateUnitsOperation) error
	UpdateCloudService(providerId string, addresses []network.SpaceAddress) error
	StorageConstraints() (map[string]state.StorageConstraints, error)
	DeviceConstraints() (map[string]state.DeviceConstraints, error)
	Life() state.Life
	Name() string
	Tag() names.Tag
	Constraints() (constraints.Value, error)
	GetPlacement() string
	SetOperatorStatus(sInfo status.StatusInfo) error
	SetStatus(statusInfo status.StatusInfo) error
	Charm() (Charm, bool, error)
	ClearResources() error
	CharmModifiedVersion() int

    Application provides the subset of application state required by the CAAS unit provisioner facade.

    type CAASUnitProvisionerState

    type CAASUnitProvisionerState interface {
    	ControllerConfig() (controller.Config, error)
    	Application(string) (Application, error)
    	FindEntity(names.Tag) (state.Entity, error)
    	Model() (Model, error)
    	WatchApplications() state.StringsWatcher
    	ResolveConstraints(cons constraints.Value) (constraints.Value, error)

      CAASUnitProvisionerState provides the subset of global state required by the CAAS unit provisioner facade.

      type Charm

      type Charm interface {
      	Meta() *charm.Meta

      type DeviceBackend

      type DeviceBackend interface {
      	DeviceConstraints(id string) (map[string]state.DeviceConstraints, error)

        DeviceBackend provides the subset of backend Device functionality required by the CAAS unit provisioner facade.

        type Facade

        type Facade struct {
        	// contains filtered or unexported fields

        func NewFacade

        func NewFacade(
        	resources facade.Resources,
        	authorizer facade.Authorizer,
        	st CAASUnitProvisionerState,
        	sb StorageBackend,
        	db DeviceBackend,
        	storagePoolManager poolmanager.PoolManager,
        	registry storage.ProviderRegistry,
        	applicationWatcherFacade *common.ApplicationWatcherFacade,
        	clock clock.Clock,
        ) (*Facade, error)

          NewFacade returns a new CAAS unit provisioner Facade facade.

          func NewStateFacade

          func NewStateFacade(ctx facade.Context) (*Facade, error)

            NewStateFacade provides the signature required for facade registration.

            func (*Facade) ApplicationsConfig

            func (f *Facade) ApplicationsConfig(args params.Entities) (params.ApplicationGetConfigResults, error)

              ApplicationsConfig returns the config for the specified applications.

              func (*Facade) ApplicationsScale

              func (f *Facade) ApplicationsScale(args params.Entities) (params.IntResults, error)

                ApplicationsScale returns the scaling info for specified applications in this model.

                func (*Facade) ClearApplicationsResources

                func (a *Facade) ClearApplicationsResources(args params.Entities) (params.ErrorResults, error)

                  ClearApplicationsResources clears the flags which indicate applications still have resources in the cluster.

                  func (*Facade) DeploymentMode

                  func (f *Facade) DeploymentMode(args params.Entities) (params.StringResults, error)

                    DeploymentMode returns the deployment mode of the given applications' charms.

                    func (*Facade) ProvisioningInfo

                    func (f *Facade) ProvisioningInfo(args params.Entities) (params.KubernetesProvisioningInfoResults, error)

                      ProvisioningInfo returns the provisioning info for specified applications in this model.

                      func (*Facade) SetOperatorStatus

                      func (a *Facade) SetOperatorStatus(args params.SetStatus) (params.ErrorResults, error)

                        SetOperatorStatus updates the operator status for each given application.

                        func (*Facade) UpdateApplicationsService

                        func (a *Facade) UpdateApplicationsService(args params.UpdateApplicationServiceArgs) (params.ErrorResults, error)

                          UpdateApplicationsService updates the Juju data model to reflect the given service details of the specified application.

                          func (*Facade) UpdateApplicationsUnits

                            UpdateApplicationsUnits updates the Juju data model to reflect the given units of the specified application.

                            func (*Facade) WatchApplicationsScale

                            func (f *Facade) WatchApplicationsScale(args params.Entities) (params.NotifyWatchResults, error)

                              WatchApplicationsScale starts a NotifyWatcher to watch changes to the applications' scale.

                              func (*Facade) WatchPodSpec

                              func (f *Facade) WatchPodSpec(args params.Entities) (params.NotifyWatchResults, error)

                                WatchPodSpec starts a NotifyWatcher to watch changes to the pod spec for specified units in this model.

                                type Model

                                type Model interface {
                                	ModelConfig() (*config.Config, error)
                                	PodSpec(tag names.ApplicationTag) (string, error)
                                	RawK8sSpec(tag names.ApplicationTag) (string, error)
                                	WatchPodSpec(tag names.ApplicationTag) (state.NotifyWatcher, error)
                                	Containers(providerIds ...string) ([]state.CloudContainer, error)

                                  Model provides the subset of CAAS model state required by the CAAS unit provisioner facade.

                                  type StorageBackend

                                  type StorageBackend interface {
                                  	StorageInstance(names.StorageTag) (state.StorageInstance, error)
                                  	Filesystem(names.FilesystemTag) (state.Filesystem, error)
                                  	StorageInstanceFilesystem(names.StorageTag) (state.Filesystem, error)
                                  	UnitStorageAttachments(unit names.UnitTag) ([]state.StorageAttachment, error)
                                  	SetFilesystemInfo(names.FilesystemTag, state.FilesystemInfo) error
                                  	SetFilesystemAttachmentInfo(names.Tag, names.FilesystemTag, state.FilesystemAttachmentInfo) error
                                  	Volume(tag names.VolumeTag) (state.Volume, error)
                                  	StorageInstanceVolume(tag names.StorageTag) (state.Volume, error)
                                  	SetVolumeInfo(names.VolumeTag, state.VolumeInfo) error
                                  	SetVolumeAttachmentInfo(names.Tag, names.VolumeTag, state.VolumeAttachmentInfo) error
                                  	// These are for cleanup up orphaned filesystems when pods are recreated.
                                  	// TODO(caas) - record unit id on the filesystem so we can query by unit
                                  	AllFilesystems() ([]state.Filesystem, error)
                                  	DestroyStorageInstance(tag names.StorageTag, destroyAttachments bool, force bool, maxWait time.Duration) (err error)
                                  	DestroyFilesystem(tag names.FilesystemTag, force bool) (err error)

                                    StorageBackend provides the subset of backend storage functionality required by the CAAS unit provisioner facade.

                                    type Unit

                                    type Unit interface {
                                    	Name() string
                                    	Life() state.Life
                                    	UnitTag() names.UnitTag
                                    	ContainerInfo() (state.CloudContainer, error)
                                    	AgentStatus() (status.StatusInfo, error)
                                    	UpdateOperation(props state.UnitUpdateProperties) *state.UpdateUnitOperation
                                    	DestroyOperation() *state.DestroyUnitOperation