Documentation

Index

Constants

This section is empty.

Variables

View Source
var InvalidFormatErr = errors.Errorf("the given filter did not match any known patterns.")

Functions

func InstanceConfig

func InstanceConfig(st *state.State, machineId, nonce, dataDir string) (*instancecfg.InstanceConfig, error)

InstanceConfig returns information from the environment config that is needed for machine cloud-init (for non-state servers only). It is exposed for testing purposes. TODO(rog) fix environs/manual tests so they do not need to call this, or move this elsewhere.

func NewUnitMatcher

func NewUnitMatcher(patterns []string) (unitMatcher, error)

NewUnitMatcher returns a unitMatcher that matches units with one of the specified patterns, or all units if no patterns are specified.

An error will be returned if any of the specified patterns is invalid. Patterns are valid if they contain only alpha-numeric characters, hyphens, or asterisks (and one optional '/' to separate service/unit).

func ParallelExecute

func ParallelExecute(dataDir string, runParams []*RemoteExec) params.RunResults

ParallelExecute executes all of the requests defined in the params, using the system identity stored in the dataDir.

func UnitChainPredicateFn

func UnitChainPredicateFn(
	predicate Predicate,
	getUnit func(string) *state.Unit,
) func(*state.Unit) (bool, error)

UnitChainPredicateFn builds a function which runs the given predicate over a unit and all of its subordinates. If one unit in the chain matches, the entire chain matches.

Types

type API

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

type Client

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

Client serves client-specific API methods.

func NewClient

func NewClient(st *state.State, resources *common.Resources, authorizer common.Authorizer) (*Client, error)

NewClient creates a new instance of the Client Facade.

func (*Client) APIHostPorts

func (c *Client) APIHostPorts() (result params.APIHostPortsResult, err error)

APIHostPorts returns the API host/port addresses stored in state.

func (*Client) AbortCurrentUpgrade

func (c *Client) AbortCurrentUpgrade() error

AbortCurrentUpgrade aborts and archives the current upgrade synchronisation record, if any.

func (*Client) AddCharm

func (c *Client) AddCharm(args params.CharmURL) error

func (*Client) AddCharmWithAuthorization

func (c *Client) AddCharmWithAuthorization(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 (*Client) AddMachines

func (c *Client) AddMachines(args params.AddMachines) (params.AddMachinesResults, error)

AddMachines adds new machines with the supplied parameters.

func (*Client) AddMachinesV2

func (c *Client) AddMachinesV2(args params.AddMachines) (params.AddMachinesResults, error)

AddMachinesV2 adds new machines with the supplied parameters.

func (*Client) AddRelation

func (c *Client) AddRelation(args params.AddRelation) (params.AddRelationResults, error)

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

func (*Client) AddServiceUnits

func (c *Client) AddServiceUnits(args params.AddServiceUnits) (params.AddServiceUnitsResults, error)

AddServiceUnits adds a given number of units to a service.

func (*Client) AddServiceUnitsWithPlacement

func (c *Client) AddServiceUnitsWithPlacement(args params.AddServiceUnits) (params.AddServiceUnitsResults, error)

AddServiceUnits adds a given number of units to a service.

func (*Client) AgentVersion

func (c *Client) AgentVersion() (params.AgentVersionResult, error)

AgentVersion returns the current version that the API server is running.

func (*Client) CharmInfo

func (c *Client) CharmInfo(args params.CharmInfo) (api.CharmInfo, error)

CharmInfo returns information about the requested charm.

func (*Client) DestroyEnvironment

func (c *Client) DestroyEnvironment() (err error)

DestroyEnvironment will try to destroy the current environment. If there is a block on destruction, this method will return an error.

func (*Client) DestroyMachines

func (c *Client) DestroyMachines(args params.DestroyMachines) error

DestroyMachines removes a given set of machines.

func (*Client) DestroyRelation

func (c *Client) DestroyRelation(args params.DestroyRelation) error

DestroyRelation removes the relation between the specified endpoints.

func (*Client) DestroyServiceUnits

func (c *Client) DestroyServiceUnits(args params.DestroyServiceUnits) error

DestroyServiceUnits removes a given set of service units.

func (*Client) EnsureAvailability

func (c *Client) EnsureAvailability(args params.StateServersSpecs) (params.StateServersChangeResults, error)

EnsureAvailability ensures the availability of Juju state servers. DEPRECATED: remove when we stop supporting 1.20 and earlier clients. This API is now on the HighAvailability facade.

func (*Client) EnvUserInfo

func (c *Client) EnvUserInfo() (params.EnvUserInfoResults, error)

EnvUserInfo returns information on all users in the environment.

func (*Client) EnvironmentGet

func (c *Client) EnvironmentGet() (params.EnvironmentConfigResults, error)

EnvironmentGet implements the server-side part of the get-environment CLI command.

func (*Client) EnvironmentInfo

func (c *Client) EnvironmentInfo() (api.EnvironmentInfo, error)

EnvironmentInfo returns information about the current environment (default series and type).

func (*Client) EnvironmentSet

func (c *Client) EnvironmentSet(args params.EnvironmentSet) error

EnvironmentSet implements the server-side part of the set-environment CLI command.

func (*Client) EnvironmentUnset

func (c *Client) EnvironmentUnset(args params.EnvironmentUnset) error

EnvironmentUnset implements the server-side part of the set-environment CLI command.

func (*Client) FindTools

func (c *Client) FindTools(args params.FindToolsParams) (params.FindToolsResult, error)

FindTools returns a List containing all tools matching the given parameters.

func (*Client) FullStatus

func (c *Client) FullStatus(args params.StatusParams) (params.FullStatus, error)

FullStatus gives the information needed for juju status over the api

func (*Client) GetAnnotations

func (c *Client) GetAnnotations(args params.GetAnnotations) (params.GetAnnotationsResults, error)

GetAnnotations returns annotations about a given entity. This API is now deprecated - "Annotations" client should be used instead. TODO(anastasiamac) remove for Juju 2.x

func (*Client) GetEnvironmentConstraints

func (c *Client) GetEnvironmentConstraints() (params.GetConstraintsResults, error)

GetEnvironmentConstraints returns the constraints for the environment.

func (*Client) GetServiceConstraints

func (c *Client) GetServiceConstraints(args params.GetServiceConstraints) (params.GetConstraintsResults, error)

GetServiceConstraints returns the constraints for a given service. TODO(mattyw, all): This api call should be move to the new service facade. The client api version will then need bumping.

func (*Client) InjectMachines

func (c *Client) InjectMachines(args params.AddMachines) (params.AddMachinesResults, error)

InjectMachines injects a machine into state with provisioned status.

func (*Client) NewServiceSetForClientAPI

func (c *Client) NewServiceSetForClientAPI(p params.ServiceSet) error

NewServiceSetForClientAPI implements the server side of Client.NewServiceSetForClientAPI. This is exactly like ServiceSet except that it does not unset values that are set to an empty string. ServiceUnset should be used for that.

TODO(Nate): rename this to ServiceSet (and remove the deprecated ServiceSet) when the GUI handles the new behavior. TODO(mattyw, all): This api call should be move to the new service facade. The client api version will then need bumping.

func (*Client) PrivateAddress

func (c *Client) PrivateAddress(p params.PrivateAddress) (results params.PrivateAddressResults, err error)

PrivateAddress implements the server side of Client.PrivateAddress.

func (*Client) ProvisioningScript

ProvisioningScript returns a shell script that, when run, provisions a machine agent on the machine executing the script.

func (*Client) PublicAddress

func (c *Client) PublicAddress(p params.PublicAddress) (results params.PublicAddressResults, err error)

PublicAddress implements the server side of Client.PublicAddress.

func (*Client) ResolveCharms

func (c *Client) ResolveCharms(args params.ResolveCharms) (params.ResolveCharmResults, error)

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

func (*Client) Resolved

func (c *Client) Resolved(p params.Resolved) error

Resolved implements the server side of Client.Resolved.

func (*Client) RetryProvisioning

func (c *Client) RetryProvisioning(p params.Entities) (params.ErrorResults, error)

RetryProvisioning marks a provisioning error as transient on the machines.

func (*Client) Run

func (c *Client) Run(run params.RunParams) (results params.RunResults, err error)

Run the commands specified on the machines identified through the list of machines, units and services.

func (*Client) RunOnAllMachines

func (c *Client) RunOnAllMachines(run params.RunParams) (params.RunResults, error)

RunOnAllMachines attempts to run the specified command on all the machines.

func (*Client) ServiceCharmRelations

ServiceCharmRelations implements the server side of Client.ServiceCharmRelations. TODO(mattyw, all): This api call should be move to the new service facade. The client api version will then need bumping.

func (*Client) ServiceDeploy

func (c *Client) ServiceDeploy(args params.ServiceDeploy) error

ServiceDeploy fetches the charm from the charm store and deploys it. AddCharm or AddLocalCharm should be called to add the charm before calling ServiceDeploy, although for backward compatibility this is not necessary until 1.16 support is removed.

func (*Client) ServiceDeployWithNetworks

func (c *Client) ServiceDeployWithNetworks(args params.ServiceDeploy) error

ServiceDeployWithNetworks works exactly like ServiceDeploy, but allows specifying networks to include or exclude on the machine where the charm gets deployed (either with args.Network or with constraints).

TODO(dimitern): Drop the special handling of networks in favor of spaces constraints, once possible.

func (*Client) ServiceDestroy

func (c *Client) ServiceDestroy(args params.ServiceDestroy) error

ServiceDestroy destroys a given service. TODO(mattyw, all): This api call should be move to the new service facade. The client api version will then need bumping.

func (*Client) ServiceExpose

func (c *Client) ServiceExpose(args params.ServiceExpose) error

ServiceExpose changes the juju-managed firewall to expose any ports that were also explicitly marked by units as open. TODO(mattyw, all): This api call should be move to the new service facade. The client api version will then need bumping.

func (*Client) ServiceGet

func (c *Client) ServiceGet(args params.ServiceGet) (params.ServiceGetResults, error)

ServiceGet returns the configuration for a service.

func (*Client) ServiceGetCharmURL

func (c *Client) ServiceGetCharmURL(args params.ServiceGet) (params.StringResult, error)

ServiceGetCharmURL returns the charm URL the given service is running at present.

func (*Client) ServiceSet

func (c *Client) ServiceSet(p params.ServiceSet) error

ServiceSet implements the server side of Client.ServiceSet. Values set to an empty string will be unset.

(Deprecated) Use NewServiceSetForClientAPI instead, to preserve values set to an empty string, and use ServiceUnset to unset values.

func (*Client) ServiceSetCharm

func (c *Client) ServiceSetCharm(args params.ServiceSetCharm) error

ServiceSetCharm sets the charm for a given service. TODO(mattyw, all): This api call should be move to the new service facade. The client api version will then need bumping.

func (*Client) ServiceSetYAML

func (c *Client) ServiceSetYAML(p params.ServiceSetYAML) error

ServiceSetYAML implements the server side of Client.ServerSetYAML. TODO(mattyw, all): This api call should be move to the new service facade. The client api version will then need bumping.

func (*Client) ServiceUnexpose

func (c *Client) ServiceUnexpose(args params.ServiceUnexpose) error

ServiceUnexpose changes the juju-managed firewall to unexpose any ports that were also explicitly marked by units as open. TODO(mattyw, all): This api call should be move to the new service facade. The client api version will then need bumping.

func (*Client) ServiceUnset

func (c *Client) ServiceUnset(p params.ServiceUnset) error

ServiceUnset implements the server side of Client.ServiceUnset. TODO(mattyw, all): This api call should be move to the new service facade. The client api version will then need bumping.

func (*Client) ServiceUpdate

func (c *Client) ServiceUpdate(args params.ServiceUpdate) error

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

func (*Client) SetAnnotations

func (c *Client) SetAnnotations(args params.SetAnnotations) error

SetAnnotations stores annotations about a given entity. This API is now deprecated - "Annotations" client should be used instead. TODO(anastasiamac) remove for Juju 2.x

func (*Client) SetEnvironAgentVersion

func (c *Client) SetEnvironAgentVersion(args params.SetEnvironAgentVersion) error

SetEnvironAgentVersion sets the environment agent version.

func (*Client) SetEnvironmentConstraints

func (c *Client) SetEnvironmentConstraints(args params.SetConstraints) error

SetEnvironmentConstraints sets the constraints for the environment.

func (*Client) SetServiceConstraints

func (c *Client) SetServiceConstraints(args params.SetConstraints) error

SetServiceConstraints sets the constraints for a given service. TODO(mattyw, all): This api call should be move to the new service facade. The client api version will then need bumping.

func (*Client) ShareEnvironment

func (c *Client) ShareEnvironment(args params.ModifyEnvironUsers) (result params.ErrorResults, err error)

ShareEnvironment manages allowing and denying the given user(s) access to the environment.

func (*Client) Status

func (c *Client) Status() (params.LegacyStatus, error)

Status is a stub version of FullStatus that was introduced in 1.16

func (*Client) UnitStatusHistory

func (c *Client) UnitStatusHistory(args params.StatusHistory) (params.UnitStatusHistory, error)

UnitStatusHistory returns a slice of past statuses for a given unit.

func (*Client) WatchAll

func (c *Client) WatchAll() (params.AllWatcherId, error)

type MachineOrder

type MachineOrder []params.RunResult

MachineOrder is used to provide the api to sort the results by the machine id.

func (MachineOrder) Len

func (a MachineOrder) Len() int

func (MachineOrder) Less

func (a MachineOrder) Less(i, j int) bool

func (MachineOrder) Swap

func (a MachineOrder) Swap(i, j int)

type Predicate

type Predicate func(interface{}) (matches bool, _ error)

Predicate is a function that when given a unit, machine, or service, will determine whether the unit meets some criteria.

func BuildPredicateFor

func BuildPredicateFor(patterns []string) Predicate

BuildPredicate returns a Predicate which will evaluate a machine, service, or unit against the given patterns.

type RemoteExec

type RemoteExec struct {
	ssh.ExecParams
	MachineId string
	UnitId    string
}

RemoteExec extends the standard ssh.ExecParams by providing the machine and perhaps the unit ids. These are then returned in the params.RunResult return values.

type Unit

type Unit interface {
	state.StatusHistoryGetter
	Life() state.Life
	Destroy() (err error)
	IsPrincipal() bool
	PublicAddress() (network.Address, error)
	PrivateAddress() (network.Address, error)
	Resolve(retryHooks bool) error
	AgentHistory() state.StatusHistoryGetter
}

Unit represents a state.Unit.