Documentation ¶
Index ¶
- Variables
- func GetAllCloudDetails(store jujuclient.CredentialGetter) (map[string]*CloudDetails, error)
- func NewAddCloudCommand(cloudMetadataStore CloudMetadataStore) cmd.Command
- func NewAddCredentialCommand() cmd.Command
- func NewDetectCredentialsCommand() cmd.Command
- func NewListCloudsCommand() cmd.Command
- func NewListCredentialsCommand() cmd.Command
- func NewListRegionsCommand() cmd.Command
- func NewRemoveCloudCommand() cmd.Command
- func NewRemoveCredentialCommand() cmd.Command
- func NewSetDefaultCredentialCommand() cmd.Command
- func NewSetDefaultRegionCommand() cmd.Command
- func NewShowCloudCommand() cmd.Command
- func NewShowCredentialCommand() cmd.Command
- func NewUpdateCredentialCommand() cmd.Command
- func PublishedPublicClouds(url, key string) (map[string]jujucloud.Cloud, error)
- type AddCloudAPI
- type AddCloudCommand
- type CloudCredential
- type CloudCredentials
- type CloudDetails
- type CloudFileReader
- type CloudMetadataStore
- type CloudRegionsAPI
- type CloudUserInfo
- type ControllerCredentials
- type Credential
- type CredentialAPI
- type CredentialContent
- type CredentialContentAPI
- type CredentialDetails
- type FoundRegions
- type ListCloudsAPI
- type ListCredentialsAPI
- type NamedCredentials
- type PersonalCloudMetadataStore
- type PublicCloudsAccessDetails
- type RegionDetails
- type RemoveCredentialAPI
Constants ¶
This section is empty.
Variables ¶
var FetchAndMaybeUpdatePublicClouds = func(access PublicCloudsAccessDetails, updateClient bool) (map[string]jujucloud.Cloud, string, error) { var msg string publishedClouds, err := PublishedPublicClouds(access.publicCloudURL, access.publicSigningKey) if err != nil { return nil, msg, errors.Trace(err) } if updateClient { if msg, err = updateClientCopy(publishedClouds); err != nil { return publishedClouds, msg, err } } return publishedClouds, msg, nil }
FetchAndMaybeUpdatePublicClouds gets published public clouds information and updates client copy of public clouds if desired. This call returns discovered public clouds and a user-facing message whether they are different with what was known prior to the call. Since this call can also update a client copy of clouds, it is possible that the public clouds have been retrieved but the client update fail. In this case, we still return public clouds as well as the client error.
var NewUpdateCloudCommand = func(cloudMetadataStore CloudMetadataStore) cmd.Command {
return newUpdateCloudCommand(cloudMetadataStore)
}
NewUpdateCloudCommand returns a command to update cloud information.
var NewUpdatePublicCloudsCommand = func() cmd.Command {
return newUpdatePublicCloudsCommand()
}
NewUpdatePublicCloudsCommand returns a command to update cloud information.
Functions ¶
func GetAllCloudDetails ¶
func GetAllCloudDetails(store jujuclient.CredentialGetter) (map[string]*CloudDetails, error)
GetAllCloudDetails returns a list of all cloud details.
func NewAddCloudCommand ¶
func NewAddCloudCommand(cloudMetadataStore CloudMetadataStore) cmd.Command
NewAddCloudCommand returns a command to add cloud information.
func NewAddCredentialCommand ¶
func NewAddCredentialCommand() cmd.Command
NewAddCredentialCommand returns a command to add credential information.
func NewDetectCredentialsCommand ¶
func NewDetectCredentialsCommand() cmd.Command
NewDetectCredentialsCommand returns a command to add credential information to credentials.yaml.
func NewListCloudsCommand ¶
func NewListCloudsCommand() cmd.Command
NewListCloudsCommand returns a command to list cloud information.
func NewListCredentialsCommand ¶
func NewListCredentialsCommand() cmd.Command
NewListCredentialsCommand returns a command to list cloud credentials.
func NewListRegionsCommand ¶
func NewListRegionsCommand() cmd.Command
NewListRegionsCommand returns a command to list cloud region information.
func NewRemoveCloudCommand ¶
func NewRemoveCloudCommand() cmd.Command
NewRemoveCloudCommand returns a command to remove cloud information.
func NewRemoveCredentialCommand ¶
func NewRemoveCredentialCommand() cmd.Command
NewRemoveCredentialCommand returns a command to remove a named credential for a cloud.
func NewSetDefaultCredentialCommand ¶
func NewSetDefaultCredentialCommand() cmd.Command
NewSetDefaultCredentialCommand returns a command to set the default credential for a cloud.
func NewSetDefaultRegionCommand ¶
func NewSetDefaultRegionCommand() cmd.Command
NewSetDefaultRegionCommand returns a command to set the default region for a cloud.
func NewShowCloudCommand ¶
func NewShowCloudCommand() cmd.Command
NewShowCloudCommand returns a command to list cloud information.
func NewShowCredentialCommand ¶
func NewShowCredentialCommand() cmd.Command
NewShowCredentialCommand returns a command to show information about credentials stored on the controller.
func NewUpdateCredentialCommand ¶
func NewUpdateCredentialCommand() cmd.Command
NewUpdateCredentialCommand returns a command to update credential details.
Types ¶
type AddCloudAPI ¶
type AddCloudAPI interface { AddCloud(jujucloud.Cloud, bool) error AddCredential(tag string, credential jujucloud.Credential) error Close() error }
AddCloudAPI - Implemented by cloudapi.Client.
type AddCloudCommand ¶
type AddCloudCommand struct { modelcmd.OptionalControllerCommand // Cloud is the name of the cloud to add. Cloud string // CloudFile is the name of the cloud YAML file. CloudFile string // Ping contains the logic for pinging a cloud endpoint to know whether or // not it really has a valid cloud of the same type as the provider. By // default it just calls the correct provider's Ping method. Ping func(p environs.EnvironProvider, endpoint string) error // CloudCallCtx contains context to be used for any cloud calls. CloudCallCtx *context.CloudCallContext // Force holds whether user wants to force addition of the cloud. Force bool // contains filtered or unexported fields }
AddCloudCommand is the command that allows you to add a cloud configuration for use with juju bootstrap.
func (*AddCloudCommand) Info ¶
func (c *AddCloudCommand) Info() *cmd.Info
Info returns help information about the command.
func (*AddCloudCommand) Init ¶
func (c *AddCloudCommand) Init(args []string) (err error)
Init populates the command with the args from the command line.
func (*AddCloudCommand) Run ¶
func (c *AddCloudCommand) Run(ctxt *cmd.Context) error
Run executes the add cloud command, adding a cloud based on a passed-in yaml file or interactive queries.
func (*AddCloudCommand) SetFlags ¶
func (c *AddCloudCommand) SetFlags(f *gnuflag.FlagSet)
SetFlags initializes the flags supported by the command.
type CloudCredential ¶
type CloudCredential struct { // DefaultCredential is the named credential to use by default. DefaultCredential string `json:"default-credential,omitempty" yaml:"default-credential,omitempty"` // DefaultRegion is the cloud region to use by default. DefaultRegion string `json:"default-region,omitempty" yaml:"default-region,omitempty"` // Credentials is the collection of all credentials registered by the user for a cloud, keyed on a cloud name. Credentials map[string]Credential `json:"cloud-credentials,omitempty" yaml:",omitempty,inline"` }
CloudCredential contains attributes used to define credentials for a cloud.
type CloudCredentials ¶
type CloudCredentials map[string]NamedCredentials
type CloudDetails ¶
type CloudDetails struct { Source string `yaml:"defined,omitempty" json:"defined,omitempty"` CloudType string `yaml:"type" json:"type"` CloudDescription string `yaml:"description,omitempty" json:"description,omitempty"` AuthTypes []string `yaml:"auth-types,omitempty,flow" json:"auth-types,omitempty"` Endpoint string `yaml:"endpoint,omitempty" json:"endpoint,omitempty"` IdentityEndpoint string `yaml:"identity-endpoint,omitempty" json:"identity-endpoint,omitempty"` StorageEndpoint string `yaml:"storage-endpoint,omitempty" json:"storage-endpoint,omitempty"` // DefaultRegion is a default region as known to this client. DefaultRegion string `yaml:"default-region,omitempty" json:"default-region,omitempty"` // CredentialCount contains the number of credentials that exist for this cloud on this client. CredentialCount int `yaml:"credential-count,omitempty" json:"credential-count,omitempty"` // Regions is for when we want to print regions in order for yaml output. Regions yaml.MapSlice `yaml:"regions,omitempty" json:"-"` // Regions map is for json marshalling where format is important but not order. RegionsMap map[string]RegionDetails `yaml:"-" json:"regions,omitempty"` Config map[string]interface{} `yaml:"config,omitempty" json:"config,omitempty"` RegionConfig jujucloud.RegionConfig `yaml:"region-config,omitempty" json:"region-config,omitempty"` CACredentials []string `yaml:"ca-credentials,omitempty" json:"ca-credentials,omitempty"` Users map[string]CloudUserInfo `json:"users,omitempty" yaml:"users,omitempty"` SkipTLSVerify bool `yaml:"skip-tls-verify,omitempty" json:"skip-tls-verify,omitempty"` }
CloudDetails holds cloud details.
type CloudFileReader ¶
type CloudFileReader struct { CloudMetadataStore CloudMetadataStore CloudName string // contains filtered or unexported fields }
CloudFileReader defines a struct used to read a cloud definition from a file.
func (*CloudFileReader) ReadCloudFromFile ¶
func (p *CloudFileReader) ReadCloudFromFile(cloudFile string, ctxt *cmd.Context) (*jujucloud.Cloud, error)
ReadCloudFromFile reads the cloud definition from the specified file.
type CloudMetadataStore ¶
type CloudRegionsAPI ¶
type CloudUserInfo ¶
type CloudUserInfo struct { DisplayName string `yaml:"display-name,omitempty" json:"display-name,omitempty"` Access string `yaml:"access" json:"access"` }
CloudUserInfo holds user access info for a cloud.
type ControllerCredentials ¶
type ControllerCredentials struct { Controller CloudCredentials `yaml:"controller-credentials,omitempty"` Client CloudCredentials `yaml:"client-credentials,omitempty"` }
type Credential ¶
type Credential struct { // AuthType determines authentication type for the credential. AuthType string `json:"auth-type" yaml:"auth-type"` // Attributes define details for individual credential. // This collection is provider-specific: each provider is interested in different credential details. Attributes map[string]string `json:"details,omitempty" yaml:",omitempty,inline"` // Revoked is true if the credential has been revoked. Revoked bool `json:"revoked,omitempty" yaml:"revoked,omitempty"` // Label is optionally set to describe the credentials to a user. Label string `json:"label,omitempty" yaml:"label,omitempty"` }
Credential instances represent cloud credentials.
type CredentialAPI ¶
type CredentialAPI interface { Clouds() (map[names.CloudTag]jujucloud.Cloud, error) AddCloudsCredentials(cloudCredentials map[string]jujucloud.Credential) ([]params.UpdateCredentialResult, error) UpdateCloudsCredentials(cloudCredentials map[string]jujucloud.Credential, force bool) ([]params.UpdateCredentialResult, error) BestAPIVersion() int Close() error }
type CredentialContent ¶
type CredentialContentAPI ¶
type CredentialDetails ¶
type CredentialDetails struct { Content CredentialContent `yaml:"content"` Models map[string]string `yaml:"models,omitempty"` }
type FoundRegions ¶
type FoundRegions struct { Local interface{} `yaml:"client-cloud-regions,omitempty" json:"client-cloud-regions,omitempty"` Remote interface{} `yaml:"controller-cloud-regions,omitempty" json:"controller-cloud-regions,omitempty"` }
func (*FoundRegions) IsEmpty ¶
func (f *FoundRegions) IsEmpty() bool
type ListCloudsAPI ¶
type ListCredentialsAPI ¶
type NamedCredentials ¶
type NamedCredentials map[string]CredentialDetails
type PublicCloudsAccessDetails ¶
type PublicCloudsAccessDetails struct {
// contains filtered or unexported fields
}
func PublicCloudsAccess ¶
func PublicCloudsAccess() PublicCloudsAccessDetails
PublicCloudsAccess contains information about where to find published public clouds details.
type RegionDetails ¶
type RegionDetails struct { Name string `yaml:"-" json:"-"` Endpoint string `yaml:"endpoint,omitempty" json:"endpoint,omitempty"` IdentityEndpoint string `yaml:"identity-endpoint,omitempty" json:"identity-endpoint,omitempty"` StorageEndpoint string `yaml:"storage-endpoint,omitempty" json:"storage-endpoint,omitempty"` }
RegionDetails holds region details.
type RemoveCredentialAPI ¶
type RemoveCredentialAPI interface { // Clouds returns all remote clouds that the currently logged-in user can access. Clouds() (map[names.CloudTag]jujucloud.Cloud, error) // RevokeCredential removes remote credential. RevokeCredential(tag names.CloudCredentialTag, force bool) error // BestAPIVersion returns current best api version. BestAPIVersion() int // Close closes api client. Close() error }
RemoveCredentialAPI defines api Cloud facade that can remove a remote credential.