application

package
v0.0.0-...-4bd6544 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 5, 2016 License: AGPL-3.0 Imports: 27 Imported by: 0

Documentation

Overview

Package application contains api calls for functionality related to deploying and managing applications and their related charms.

Index

Constants

This section is empty.

Variables

View Source
var NewCharmStoreRepo = newCharmStoreFromClient

TODO - we really want to avoid this, which we can do by refactoring code requiring this to use interfaces. NewCharmStoreRepo instantiates a new charm store repository. It is exported for testing purposes.

Functions

func AddCharmWithAuthorization

func AddCharmWithAuthorization(st *state.State, args params.AddCharmWithAuthorization) error

AddCharmWithAuthorization adds the given charm URL (which must include revision) to the environment, if it does not exist yet. Local charms are not supported, only charm store URLs. See also AddLocalCharm().

The authorization macaroon, args.CharmStoreMacaroon, may be omitted, in which case this call is equivalent to AddCharm.

func ApplicationSetSettingsStrings

func ApplicationSetSettingsStrings(application Application, settings map[string]string) error

ApplicationSetSettingsStrings updates the settings for the given application, taking the configuration from a map of strings.

func CharmToStateCharm

func CharmToStateCharm(ch Charm) *state.Charm

CharmToStateCharm converts a Charm into a state.Charm. This is a hack that is required until the State interface methods we deal with stop accepting state.Charms, and start accepting charm.Charm and charm.URL.

func ResolveCharms

func ResolveCharms(st *state.State, args params.ResolveCharms) (params.ResolveCharmResults, error)

ResolveCharm resolves the best available charm URLs with series, for charm locations without a series specified.

func StoreCharmArchive

func StoreCharmArchive(st *state.State, archive CharmArchive) error

StoreCharmArchive stores a charm archive in environment storage.

Types

type API

type API struct {
	// contains filtered or unexported fields
}

API implements the application interface and is the concrete implementation of the api end point.

func NewAPI

func NewAPI(
	backend Backend,
	authorizer facade.Authorizer,
	blockChecker BlockChecker,
	stateCharm func(Charm) *state.Charm,
) (*API, error)

NewAPI returns a new application API facade.

func (*API) AddRelation

func (api *API) AddRelation(args params.AddRelation) (params.AddRelationResults, error)

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

func (*API) AddUnits

AddUnits adds a given number of units to an application.

func (*API) CharmRelations

CharmRelations implements the server side of Application.CharmRelations.

func (*API) Deploy

func (api *API) Deploy(args params.ApplicationsDeploy) (params.ErrorResults, error)

Deploy fetches the charms from the charm store and deploys them using the specified placement directives.

func (*API) Destroy

func (api *API) Destroy(args params.ApplicationDestroy) error

Destroy destroys a given application.

func (*API) DestroyRelation

func (api *API) DestroyRelation(args params.DestroyRelation) error

DestroyRelation removes the relation between the specified endpoints.

func (*API) DestroyUnits

func (api *API) DestroyUnits(args params.DestroyApplicationUnits) error

DestroyUnits removes a given set of application units.

func (*API) Expose

func (api *API) Expose(args params.ApplicationExpose) error

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

func (*API) Get

Get returns the configuration for a service.

func (*API) GetCharmURL

func (api *API) GetCharmURL(args params.ApplicationGet) (params.StringResult, error)

GetCharmURL returns the charm URL the given application is running at present.

func (*API) GetConstraints

GetConstraints returns the constraints for a given application.

func (*API) Set

func (api *API) Set(p params.ApplicationSet) error

Set implements the server side of Application.Set. It does not unset values that are set to an empty string. Unset should be used for that.

func (*API) SetCharm

func (api *API) SetCharm(args params.ApplicationSetCharm) error

SetCharm sets the charm for a given for the application.

func (*API) SetConstraints

func (api *API) SetConstraints(args params.SetConstraints) error

SetConstraints sets the constraints for a given application.

func (*API) SetMetricCredentials

func (api *API) SetMetricCredentials(args params.ApplicationMetricCredentials) (params.ErrorResults, error)

SetMetricCredentials sets credentials on the application.

func (*API) Unexpose

func (api *API) Unexpose(args params.ApplicationUnexpose) error

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

func (*API) Unset

func (api *API) Unset(p params.ApplicationUnset) error

Unset implements the server side of Client.Unset.

func (*API) Update

func (api *API) Update(args params.ApplicationUpdate) error

Update updates the application attributes, including charm URL, minimum number of units, settings and constraints. All parameters in params.ApplicationUpdate except the application name are optional.

type Application

type Application interface {
	AddUnit() (*state.Unit, error)
	Charm() (Charm, bool, error)
	CharmURL() (*charm.URL, bool)
	Channel() csparams.Channel
	ClearExposed() error
	ConfigSettings() (charm.Settings, error)
	Constraints() (constraints.Value, error)
	Destroy() error
	Endpoints() ([]state.Endpoint, error)
	IsPrincipal() bool
	Series() string
	SetCharm(state.SetCharmConfig) error
	SetConstraints(constraints.Value) error
	SetExposed() error
	SetMetricCredentials([]byte) error
	SetMinUnits(int) error
	UpdateConfigSettings(charm.Settings) error
}

Application defines a subset of the functionality provided by the state.Application type, as required by the application facade. For details on the methods, see the methods on state.Application with the same names.

type Backend

type Backend interface {
	Application(string) (Application, error)
	AddApplication(state.AddApplicationArgs) (*state.Application, error)
	AddRelation(...state.Endpoint) (Relation, error)
	AssignUnit(*state.Unit, state.AssignmentPolicy) error
	AssignUnitWithPlacement(*state.Unit, *instance.Placement) error
	Charm(*charm.URL) (Charm, error)
	EndpointsRelation(...state.Endpoint) (Relation, error)
	InferEndpoints(...string) ([]state.Endpoint, error)
	Machine(string) (Machine, error)
	ModelTag() names.ModelTag
	Unit(string) (Unit, error)
}

Backend defines the state functionality required by the application facade. For details on the methods, see the methods on state.State with the same names.

func NewStateBackend

func NewStateBackend(st *state.State) Backend

NewStateBackend converts a state.State into a Backend.

type BlockChecker

type BlockChecker interface {
	ChangeAllowed() error
	RemoveAllowed() error
}

BlockChecker defines the block-checking functionality required by the application facade. This is implemented by apiserver/common.BlockChecker.

type Charm

type Charm interface {
	charm.Charm
}

Charm defines a subset of the functionality provided by the state.Charm type, as required by the application facade. For details on the methods, see the methods on state.Charm with the same names.

type CharmArchive

type CharmArchive struct {
	// ID is the charm URL for which we're storing the archive.
	ID *charm.URL

	// Charm is the metadata about the charm for the archive.
	Charm charm.Charm

	// Data contains the bytes of the archive.
	Data io.Reader

	// Size is the number of bytes in Data.
	Size int64

	// SHA256 is the hash of the bytes in Data.
	SHA256 string

	// Macaroon is the authorization macaroon for accessing the charmstore.
	Macaroon macaroon.Slice
}

CharmArchive is the data that needs to be stored for a charm archive in state.

type Machine

type Machine interface {
}

Machine defines a subset of the functionality provided by the state.Machine type, as required by the application facade. For details on the methods, see the methods on state.Machine with the same names.

type Relation

type Relation interface {
	Destroy() error
	Endpoint(string) (state.Endpoint, error)
}

Relation defines a subset of the functionality provided by the state.Relation type, as required by the application facade. For details on the methods, see the methods on state.Relation with the same names.

type Unit

type Unit interface {
	Destroy() error
	IsPrincipal() bool
	Life() state.Life
}

Unit defines a subset of the functionality provided by the state.Unit type, as required by the application facade. For details on the methods, see the methods on state.Unit with the same names.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL