Documentation

Overview

    Package application provides access to the application api facade. This facade contains api calls that are specific to applications. As a rule of thumb, if the argument for an api requires an application name and affects only that application then the call belongs here.

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    This section is empty.

    Types

    type AddUnitsParams

    type AddUnitsParams struct {
    	// ApplicationName is the name of the application to which units
    	// will be added.
    	ApplicationName string
    
    	// NumUnits is the number of units to deploy.
    	NumUnits int
    
    	// Placement directives on where the machines for the unit must be
    	// created.
    	Placement []*instance.Placement
    
    	// Policy represents how a machine for the unit is determined.
    	// This value is ignored on any Juju server before 2.4.
    	Policy string
    
    	// AttachStorage contains IDs of existing storage that should be
    	// attached to the application unit that will be deployed. This
    	// may be non-empty only if NumUnits is 1.
    	AttachStorage []string
    }

      AddUnitsParams contains parameters for the AddUnits API method.

      type CharmID

      type CharmID struct {
      
      	// URL of the given charm, includes the reference name and a revision.
      	// Old style charm URLs are also supported i.e. charmstore.
      	URL *charm.URL
      
      	// Origin holds the origin of a charm. This includes the source of the
      	// charm, along with the revision and channel to identify where the charm
      	// originated from.
      	Origin apicharm.Origin
      }

        CharmID represents the underlying charm for a given application. This includes both the URL and the origin.

        type Client

        type Client struct {
        	base.ClientFacade
        	// contains filtered or unexported fields
        }

          Client allows access to the application API end point.

          func NewClient

          func NewClient(st base.APICallCloser) *Client

            NewClient creates a new client for accessing the application api.

            func (*Client) AddRelation

            func (c *Client) AddRelation(endpoints, viaCIDRs []string) (*params.AddRelationResults, error)

              AddRelation adds a relation between the specified endpoints and returns the relation info.

              func (*Client) AddUnits

              func (c *Client) AddUnits(args AddUnitsParams) ([]string, error)

                AddUnits adds a given number of units to an application using the specified placement directives to assign units to machines.

                func (*Client) ApplicationsInfo

                func (c *Client) ApplicationsInfo(applications []names.ApplicationTag) ([]params.ApplicationInfoResult, error)

                  ApplicationsInfo retrieves applications information.

                  func (*Client) CharmRelations

                  func (c *Client) CharmRelations(application string) ([]string, error)

                    CharmRelations returns the application's charms relation names.

                    func (*Client) Consume

                      Consume adds a remote application to the model.

                      func (*Client) Deploy

                      func (c *Client) Deploy(args DeployArgs) error

                        Deploy obtains the charm, either locally or from the charm store, and deploys it. Placement directives, if provided, specify the machine on which the charm is deployed.

                        func (*Client) DestroyApplications

                        func (c *Client) DestroyApplications(in DestroyApplicationsParams) ([]params.DestroyApplicationResult, error)

                          DestroyApplications destroys the given applications.

                          func (*Client) DestroyConsumedApplication

                          func (c *Client) DestroyConsumedApplication(in DestroyConsumedApplicationParams) ([]params.ErrorResult, error)

                            DestroyConsumedApplication destroys the given consumed (remote) applications.

                            func (*Client) DestroyRelation

                            func (c *Client) DestroyRelation(force *bool, maxWait *time.Duration, endpoints ...string) error

                              DestroyRelation removes the relation between the specified endpoints.

                              func (*Client) DestroyRelationId

                              func (c *Client) DestroyRelationId(relationId int, force *bool, maxWait *time.Duration) error

                                DestroyRelationId removes the relation with the specified id.

                                func (*Client) DestroyUnits

                                func (c *Client) DestroyUnits(in DestroyUnitsParams) ([]params.DestroyUnitResult, error)

                                  DestroyUnits decreases the number of units dedicated to one or more applications.

                                  func (*Client) Expose

                                  func (c *Client) Expose(application string, exposedEndpoints map[string]params.ExposedEndpoint) error

                                    Expose changes the juju-managed firewall to expose any ports that were also explicitly marked by units as open. The exposedEndpoints argument can be used to restrict the set of ports that get exposed and at the same time specify which spaces and/or CIDRs should be able to access these ports on a per endpoint basis.

                                    If the exposedEndpoints parameter is empty, the controller will expose *all* open ports of the application to 0.0.0.0/0. This matches the behavior of pre-2.9 juju controllers.

                                    func (*Client) Get

                                    func (c *Client) Get(branchName, application string) (*params.ApplicationGetResults, error)

                                      Get returns the configuration for the named application.

                                      func (*Client) GetCharmURLOrigin

                                      func (c *Client) GetCharmURLOrigin(branchName, applicationName string) (*charm.URL, apicharm.Origin, error)

                                        GetCharmURLOrigin returns the charm URL along with the charm Origin for the given application is running at present. The charm origin gives more information about the location of the charm and what revision/channel it came from.

                                        func (*Client) GetConfig

                                        func (c *Client) GetConfig(branchName string, appNames ...string) ([]map[string]interface{}, error)

                                          GetConfig returns the charm configuration settings for each of the applications. If any of the applications are not found, an error is returned.

                                          func (*Client) GetConstraints

                                          func (c *Client) GetConstraints(applications ...string) ([]constraints.Value, error)

                                            GetConstraints returns the constraints for the given applications.

                                            func (*Client) MergeBindings

                                            func (c *Client) MergeBindings(req params.ApplicationMergeBindingsArgs) error

                                              MergeBindings merges an operator-defined bindings list with the existing application bindings.

                                              func (*Client) ModelUUID

                                              func (c *Client) ModelUUID() string

                                                ModelUUID returns the model UUID from the client connection.

                                                func (*Client) ResolveUnitErrors

                                                func (c *Client) ResolveUnitErrors(units []string, all, retry bool) error

                                                  ResolveUnitErrors clears errors on one or more units. Either specify one or more units, or all.

                                                  func (*Client) ScaleApplication

                                                    ScaleApplication sets the desired unit count for one or more applications.

                                                    func (*Client) SetCharm

                                                    func (c *Client) SetCharm(branchName string, cfg SetCharmConfig) error

                                                      SetCharm sets the charm for a given application.

                                                      func (*Client) SetConfig

                                                      func (c *Client) SetConfig(branchName, application, configYAML string, config map[string]string) error

                                                        SetConfig sets configuration options on an application and the charm.

                                                        func (*Client) SetConstraints

                                                        func (c *Client) SetConstraints(application string, constraints constraints.Value) error

                                                          SetConstraints specifies the constraints for the given application.

                                                          func (*Client) SetMetricCredentials

                                                          func (c *Client) SetMetricCredentials(application string, credentials []byte) error

                                                            SetMetricCredentials sets the metric credentials for the application specified.

                                                            func (*Client) SetRelationSuspended

                                                            func (c *Client) SetRelationSuspended(relationIds []int, suspended bool, message string) error

                                                              SetRelationSuspended updates the suspended status of the relation with the specified id.

                                                              func (*Client) Unexpose

                                                              func (c *Client) Unexpose(application string, endpoints []string) error

                                                                Unexpose changes the juju-managed firewall to unexpose any ports that were also explicitly marked by units as open.

                                                                func (*Client) UnitsInfo

                                                                func (c *Client) UnitsInfo(units []names.UnitTag) ([]UnitInfo, error)

                                                                  UnitsInfo retrieves units information.

                                                                  func (*Client) UnsetApplicationConfig

                                                                  func (c *Client) UnsetApplicationConfig(branchName, application string, options []string) error

                                                                    UnsetApplicationConfig resets configuration options on an application.

                                                                    func (*Client) UpdateApplicationSeries

                                                                    func (c *Client) UpdateApplicationSeries(appName, series string, force bool) error

                                                                      UpdateApplicationSeries updates the application series in the db.

                                                                      type DeployArgs

                                                                      type DeployArgs struct {
                                                                      	// CharmID identifies the charm to deploy.
                                                                      	CharmID CharmID
                                                                      
                                                                      	// CharmOrigin holds information about where the charm originally came from,
                                                                      	// this includes the store.
                                                                      	CharmOrigin apicharm.Origin
                                                                      
                                                                      	// ApplicationName is the name to give the application.
                                                                      	ApplicationName string
                                                                      
                                                                      	// Series to be used for the machine.
                                                                      	Series string
                                                                      
                                                                      	// NumUnits is the number of units to deploy.
                                                                      	NumUnits int
                                                                      
                                                                      	// ConfigYAML is a string that overrides the default config.yml.
                                                                      	ConfigYAML string
                                                                      
                                                                      	// Config are values that override those in the default config.yaml
                                                                      	// or configure the application itself.
                                                                      	Config map[string]string
                                                                      
                                                                      	// Cons contains constraints on where units of this application
                                                                      	// may be placed.
                                                                      	Cons constraints.Value
                                                                      
                                                                      	// Placement directives on where the machines for the unit must be
                                                                      	// created.
                                                                      	Placement []*instance.Placement
                                                                      
                                                                      	// Storage contains Constraints specifying how storage should be
                                                                      	// handled.
                                                                      	Storage map[string]storage.Constraints
                                                                      
                                                                      	// Devices contains Constraints specifying how devices should be
                                                                      	// handled.
                                                                      	Devices map[string]devices.Constraints
                                                                      
                                                                      	// AttachStorage contains IDs of existing storage that should be
                                                                      	// attached to the application unit that will be deployed. This
                                                                      	// may be non-empty only if NumUnits is 1.
                                                                      	AttachStorage []string
                                                                      
                                                                      	// EndpointBindings
                                                                      	EndpointBindings map[string]string
                                                                      
                                                                      	// Collection of resource names for the application, with the
                                                                      	// value being the unique ID of a pre-uploaded resources in
                                                                      	// storage.
                                                                      	Resources map[string]string
                                                                      }

                                                                        DeployArgs holds the arguments to be sent to Client.ApplicationDeploy.

                                                                        type DestroyApplicationsParams

                                                                        type DestroyApplicationsParams struct {
                                                                        	// Applications holds the names of applications to destroy.
                                                                        	Applications []string
                                                                        
                                                                        	// DestroyStorage controls whether or not storage attached
                                                                        	// to units of the applications will be destroyed.
                                                                        	DestroyStorage bool
                                                                        
                                                                        	// Force controls whether or not the removal of applications
                                                                        	// will be forced, i.e. ignore removal errors.
                                                                        	Force bool
                                                                        
                                                                        	// MaxWait specifies the amount of time that each step in application removal
                                                                        	// will wait before forcing the next step to kick-off. This parameter
                                                                        	// only makes sense in combination with 'force' set to 'true'.
                                                                        	MaxWait *time.Duration
                                                                        }

                                                                          DestroyApplicationsParams contains parameters for the DestroyApplications API method.

                                                                          type DestroyConsumedApplicationParams

                                                                          type DestroyConsumedApplicationParams struct {
                                                                          	// SaasNames holds the names of the consumed applications
                                                                          	// that are being destroyed
                                                                          	SaasNames []string
                                                                          
                                                                          	// Force controls whether or not the removal of applications
                                                                          	// will be forced, i.e. ignore removal errors.
                                                                          	Force bool
                                                                          
                                                                          	// MaxWait specifies the amount of time that each step in application removal
                                                                          	// will wait before forcing the next step to kick-off. This parameter
                                                                          	// only makes sense in combination with 'force' set to 'true'.
                                                                          	MaxWait *time.Duration
                                                                          }

                                                                          type DestroyUnitsParams

                                                                          type DestroyUnitsParams struct {
                                                                          	// Units holds the IDs of units to destroy.
                                                                          	Units []string
                                                                          
                                                                          	// DestroyStorage controls whether or not storage attached
                                                                          	// to the units will be destroyed.
                                                                          	DestroyStorage bool
                                                                          
                                                                          	// Force controls whether or not the removal of applications
                                                                          	// will be forced, i.e. ignore removal errors.
                                                                          	Force bool
                                                                          
                                                                          	// MaxWait specifies the amount of time that each step in unit removal
                                                                          	// will wait before forcing the next step to kick-off. This parameter
                                                                          	// only makes sense in combination with 'force' set to 'true'.
                                                                          	MaxWait *time.Duration
                                                                          }

                                                                            DestroyUnitsParams contains parameters for the DestroyUnits API method.

                                                                            type EndpointRelationData

                                                                            type EndpointRelationData struct {
                                                                            	Endpoint         string
                                                                            	CrossModel       bool
                                                                            	RelatedEndpoint  string
                                                                            	ApplicationData  map[string]interface{}
                                                                            	UnitRelationData map[string]RelationData
                                                                            }

                                                                              EndpointRelationData holds information about a relation to a given endpoint.

                                                                              type RelationData

                                                                              type RelationData struct {
                                                                              	InScope  bool
                                                                              	UnitData map[string]interface{}
                                                                              }

                                                                                RelationData holds information about a unit's relation.

                                                                                type ScaleApplicationParams

                                                                                type ScaleApplicationParams struct {
                                                                                	// ApplicationName is the application to scale.
                                                                                	ApplicationName string
                                                                                
                                                                                	// Scale is the target number of units which should should be running.
                                                                                	Scale int
                                                                                
                                                                                	// ScaleChange is the amount of change to the target number of existing units.
                                                                                	ScaleChange int
                                                                                
                                                                                	// Force controls whether or not the removal of applications
                                                                                	// will be forced, i.e. ignore removal errors.
                                                                                	Force bool
                                                                                }

                                                                                  ScaleApplicationParams contains parameters for the ScaleApplication API method.

                                                                                  type SetCharmConfig

                                                                                  type SetCharmConfig struct {
                                                                                  	// ApplicationName is the name of the application to set the charm on.
                                                                                  	ApplicationName string
                                                                                  
                                                                                  	// CharmID identifies the charm.
                                                                                  	CharmID CharmID
                                                                                  
                                                                                  	// ConfigSettings is the charm settings to set during the upgrade.
                                                                                  	// This field is only understood by Application facade version 2
                                                                                  	// and greater.
                                                                                  	ConfigSettings map[string]string `json:"config-settings,omitempty"`
                                                                                  
                                                                                  	// ConfigSettingsYAML is the charm settings in YAML format to set
                                                                                  	// during the upgrade. If this is non-empty, it will take precedence
                                                                                  	// over ConfigSettings. This field is only understood by Application
                                                                                  	// facade version 2
                                                                                  	ConfigSettingsYAML string `json:"config-settings-yaml,omitempty"`
                                                                                  
                                                                                  	// Force forces the use of the charm in the following scenarios:
                                                                                  	// overriding a lxd profile upgrade.
                                                                                  	// In the future, we should deprecate ForceSeries and ForceUnits and just
                                                                                  	// use Force for all instances.
                                                                                  	// TODO (stickupkid): deprecate ForceSeries and ForceUnits in favour of
                                                                                  	// just using Force.
                                                                                  	Force bool
                                                                                  
                                                                                  	// ForceSeries forces the use of the charm even if it doesn't match the
                                                                                  	// series of the unit.
                                                                                  	ForceSeries bool
                                                                                  
                                                                                  	// ForceUnits forces the upgrade on units in an error state.
                                                                                  	ForceUnits bool
                                                                                  
                                                                                  	// ResourceIDs is a map of resource names to resource IDs to activate during
                                                                                  	// the upgrade.
                                                                                  	ResourceIDs map[string]string
                                                                                  
                                                                                  	// StorageConstraints is a map of storage names to storage constraints to
                                                                                  	// update during the upgrade. This field is only understood by Application
                                                                                  	// facade version 2 and greater.
                                                                                  	StorageConstraints map[string]storage.Constraints `json:"storage-constraints,omitempty"`
                                                                                  
                                                                                  	// EndpointBindings is a map of operator-defined endpoint names to
                                                                                  	// space names to be merged with any existing endpoint bindings.
                                                                                  	EndpointBindings map[string]string
                                                                                  }

                                                                                    SetCharmConfig holds the configuration for setting a new revision of a charm on a application.

                                                                                    type UnitInfo

                                                                                    type UnitInfo struct {
                                                                                    	Error error
                                                                                    
                                                                                    	Tag             string
                                                                                    	WorkloadVersion string
                                                                                    	Machine         string
                                                                                    	OpenedPorts     []string
                                                                                    	PublicAddress   string
                                                                                    	Charm           string
                                                                                    	Leader          bool
                                                                                    	RelationData    []EndpointRelationData
                                                                                    
                                                                                    	// The following are for CAAS models.
                                                                                    	ProviderId string
                                                                                    	Address    string
                                                                                    }

                                                                                      UnitInfo holds information about a unit.

                                                                                      Source Files