Documentation ¶
Overview ¶
Package openstack implements the OpenStack provider, registered with environs under the name "openstack".
Index ¶
- Constants
- func AcceptAllFlavors(nova.FlavorDetail) bool
- func IsAuthorisationFailure(err error) bool
- func IsNotFoundError(err error) bool
- type AuthMode
- type ClientFactory
- type ClientFunc
- type ClientOption
- type Environ
- func (e *Environ) AdoptResources(ctx envcontext.ProviderCallContext, controllerUUID string, ...) error
- func (e *Environ) AgentMetadataLookupParams(region string) (*simplestreams.MetadataLookupParams, error)
- func (e *Environ) AllInstances(ctx envcontext.ProviderCallContext) ([]instances.Instance, error)
- func (e *Environ) AllRunningInstances(ctx envcontext.ProviderCallContext) ([]instances.Instance, error)
- func (e *Environ) AllocateContainerAddresses(ctx envcontext.ProviderCallContext, hostInstanceID instance.Id, ...) (network.InterfaceInfos, error)
- func (e *Environ) AvailabilityZones(ctx envcontext.ProviderCallContext) (network.AvailabilityZones, error)
- func (e *Environ) Bootstrap(ctx environs.BootstrapContext, callCtx envcontext.ProviderCallContext, ...) (*environs.BootstrapResult, error)
- func (e *Environ) CloseModelPorts(ctx envcontext.ProviderCallContext, rules firewall.IngressRules) error
- func (e *Environ) ClosePorts(ctx envcontext.ProviderCallContext, rules firewall.IngressRules) error
- func (e *Environ) Config() *config.Config
- func (e *Environ) ConstraintsValidator(ctx envcontext.ProviderCallContext) (constraints.Validator, error)
- func (e *Environ) ControllerInstances(ctx envcontext.ProviderCallContext, controllerUUID string) ([]instance.Id, error)
- func (e *Environ) Create(ctx envcontext.ProviderCallContext, args environs.CreateParams) error
- func (e *Environ) DeletePorts(networks []nova.ServerNetworks) error
- func (e *Environ) DeriveAvailabilityZones(ctx envcontext.ProviderCallContext, args environs.StartInstanceParams) ([]string, error)
- func (e *Environ) Destroy(ctx envcontext.ProviderCallContext) error
- func (e *Environ) DestroyController(ctx envcontext.ProviderCallContext, controllerUUID string) error
- func (e *Environ) ImageMetadataLookupParams(region string) (*simplestreams.MetadataLookupParams, error)
- func (e *Environ) IngressRules(ctx envcontext.ProviderCallContext) (firewall.IngressRules, error)
- func (e *Environ) InstanceAvailabilityZoneNames(ctx envcontext.ProviderCallContext, ids []instance.Id) (map[instance.Id]string, error)
- func (e *Environ) InstanceTypes(ctx envcontext.ProviderCallContext, c constraints.Value) (instances.InstanceTypesWithCostMetadata, error)
- func (e *Environ) Instances(ctx envcontext.ProviderCallContext, ids []instance.Id) ([]instances.Instance, error)
- func (e *Environ) ModelIngressRules(ctx envcontext.ProviderCallContext) (firewall.IngressRules, error)
- func (e *Environ) NetworkInterfaces(ctx envcontext.ProviderCallContext, ids []instance.Id) ([]network.InterfaceInfos, error)
- func (e *Environ) OpenModelPorts(ctx envcontext.ProviderCallContext, rules firewall.IngressRules) error
- func (e *Environ) OpenPorts(ctx envcontext.ProviderCallContext, rules firewall.IngressRules) error
- func (e *Environ) PrecheckInstance(ctx envcontext.ProviderCallContext, args environs.PrecheckInstanceParams) error
- func (env *Environ) PrecheckUpgradeOperations() []environs.PrecheckJujuUpgradeOperation
- func (e *Environ) PrepareForBootstrap(_ environs.BootstrapContext, _ string) error
- func (e *Environ) PreparePrechecker() error
- func (e *Environ) Provider() environs.EnvironProvider
- func (e *Environ) Region() (simplestreams.CloudSpec, error)
- func (e *Environ) ReleaseContainerAddresses(ctx envcontext.ProviderCallContext, interfaces []network.ProviderInterfaceInfo) error
- func (e *Environ) SetClock(clock clock.Clock)
- func (e *Environ) SetCloudSpec(_ stdcontext.Context, spec environscloudspec.CloudSpec) error
- func (e *Environ) SetConfig(ctx context.Context, cfg *config.Config) error
- func (e *Environ) StartInstance(ctx envcontext.ProviderCallContext, args environs.StartInstanceParams) (*environs.StartInstanceResult, error)
- func (e *Environ) StopInstances(ctx envcontext.ProviderCallContext, ids ...instance.Id) error
- func (e *Environ) StorageProvider(t storage.ProviderType) (storage.Provider, error)
- func (e *Environ) StorageProviderTypes() ([]storage.ProviderType, error)
- func (e *Environ) Subnets(ctx envcontext.ProviderCallContext, instId instance.Id, subnetIds []network.Id) ([]network.SubnetInfo, error)
- func (e *Environ) SupportsContainerAddresses(envcontext.ProviderCallContext) (bool, error)
- func (e *Environ) SupportsRulesWithIPV6CIDRs(ctx envcontext.ProviderCallContext) (bool, error)
- func (e *Environ) SupportsSpaces() (bool, error)
- func (e *Environ) TagInstance(ctx envcontext.ProviderCallContext, id instance.Id, tags map[string]string) error
- func (env *Environ) ValidateCloudEndpoint(ctx envcontext.ProviderCallContext) error
- type EnvironProvider
- func (p EnvironProvider) AgentMetadataLookupParams(region string) (*simplestreams.MetadataLookupParams, error)
- func (p EnvironProvider) CloudSchema() *jsonschema.Schema
- func (p EnvironProvider) ConfigDefaults() schema.Defaults
- func (p EnvironProvider) ConfigSchema() schema.Fields
- func (EnvironProvider) DetectRegions() ([]cloud.Region, error)
- func (p EnvironProvider) ImageMetadataLookupParams(region string) (*simplestreams.MetadataLookupParams, error)
- func (p EnvironProvider) ModelConfigDefaults(_ context.Context) (map[string]any, error)
- func (p EnvironProvider) Open(ctx stdcontext.Context, args environs.OpenParams) (environs.Environ, error)
- func (p EnvironProvider) Ping(ctx envcontext.ProviderCallContext, endpoint string) error
- func (p EnvironProvider) PrepareConfig(ctx context.Context, args environs.PrepareConfigParams) (*config.Config, error)
- func (EnvironProvider) Schema() environschema.Fields
- func (p EnvironProvider) Validate(ctx context.Context, cfg, old *config.Config) (valid *config.Config, err error)
- func (EnvironProvider) Version() int
- type Firewaller
- type FirewallerFactory
- type FlavorFilter
- type FlavorFilterFunc
- type Networking
- type NetworkingAuthenticatingClient
- type NetworkingBase
- type NetworkingEnvironConfig
- type NetworkingNeutron
- type NetworkingNova
- type NeutronNetworking
- func (n *NeutronNetworking) AllocatePublicIP(id instance.Id) (*string, error)
- func (n *NeutronNetworking) CreatePort(name, networkID string, subnetID network.Id) (*neutron.PortV2, error)
- func (n *NeutronNetworking) DeletePortByID(portID string) error
- func (n *NeutronNetworking) FindNetworks(internal bool) (set.Strings, error)
- func (n *NeutronNetworking) NetworkInterfaces(instanceIDs []instance.Id) ([]network.InterfaceInfos, error)
- func (n *NeutronNetworking) ResolveNetworks(name string, external bool) ([]neutron.NetworkV2, error)
- func (n *NeutronNetworking) Subnets(instId instance.Id, subnetIds []network.Id) ([]network.SubnetInfo, error)
- type OpenstackCredentials
- func (OpenstackCredentials) CredentialSchemas() map[cloud.AuthType]cloud.CredentialSchema
- func (c OpenstackCredentials) DetectCredentials(cloudName string) (*cloud.CloudCredential, error)
- func (OpenstackCredentials) FinalizeCredential(_ environs.FinalizeCredentialContext, args environs.FinalizeCredentialParams) (*cloud.Credential, error)
- type OpenstackRenderer
- type OpenstackStorage
- type ProviderConfigurator
- type SSLHostnameConfig
Constants ¶
const ( ExternalNetworkKey = "external-network" NetworkKey = "network" PolicyTargetGroupKey = "policy-target-group" UseDefaultSecgroupKey = "use-default-secgroup" UseOpenstackGBPKey = "use-openstack-gbp" )
const ( CredAttrTenantName = "tenant-name" CredAttrTenantID = "tenant-id" CredAttrUserName = "username" CredAttrPassword = "password" CredAttrDomainName = "domain-name" CredAttrProjectDomainName = "project-domain-name" CredAttrUserDomainName = "user-domain-name" CredAttrAccessKey = "access-key" CredAttrSecretKey = "secret-key" CredAttrVersion = "version" )
const (
CinderProviderType = storage.ProviderType("cinder")
)
const (
GroupControllerPattern = `^(?P<prefix>juju-)(?P<controllerUUID>` + validUUID + `)(?P<suffix>-.*)$`
)
Variables ¶
This section is empty.
Functions ¶
func AcceptAllFlavors ¶
func AcceptAllFlavors(nova.FlavorDetail) bool
AcceptAllFlavors is a function that returns true for any input, and can be assigned to a value of type FlavorFilterFunc.
func IsAuthorisationFailure ¶
IsAuthorisationFailure determines if the given error has an authorisation failure.
func IsNotFoundError ¶
Types ¶
type ClientFactory ¶
type ClientFactory struct {
// contains filtered or unexported fields
}
ClientFactory creates various goose (openstack) clients. TODO (stickupkid): This should be moved into goose and the factory should accept a configuration returning back goose clients.
func NewClientFactory ¶
func NewClientFactory(spec environscloudspec.CloudSpec, sslHostnameConfig SSLHostnameConfig) *ClientFactory
NewClientFactory creates a new ClientFactory from the CloudSpec and environ config arguments.
func (*ClientFactory) AuthClient ¶
func (c *ClientFactory) AuthClient() client.AuthenticatingClient
AuthClient returns a goose AuthenticatingClient.
func (*ClientFactory) Init ¶
func (c *ClientFactory) Init() error
Init the client factory, returns an error if the initialization fails.
type ClientFunc ¶
type ClientFunc = func(cred identity.Credentials, authMode identity.AuthMode, options ...ClientOption) (client.AuthenticatingClient, error)
ClientFunc is used to create a goose client.
type ClientOption ¶
type ClientOption func(*clientOptions)
ClientOption to be passed into the transport construction to customize the default transport.
func WithCACertificates ¶
func WithCACertificates(value ...string) ClientOption
WithCACertificates contains Authority certificates to be used to validate certificates of cloud infrastructure components. The contents are Base64 encoded x.509 certs.
func WithHTTPClient ¶
func WithHTTPClient(value *http.Client) ClientOption
WithHTTPClient allows to define the http.Client to use.
func WithHTTPHeadersFunc ¶
func WithHTTPHeadersFunc(httpHeadersFunc goosehttp.HeadersFunc) ClientOption
WithHTTPHeadersFunc allows passing in a new HTTP headers func for the client to execute for each request.
func WithSkipHostnameVerification ¶
func WithSkipHostnameVerification(value bool) ClientOption
WithSkipHostnameVerification will skip hostname verification on the TLS/SSL certificates.
type Environ ¶
type Environ struct { environs.NoSpaceDiscoveryEnviron // contains filtered or unexported fields }
func (*Environ) AdoptResources ¶
func (e *Environ) AdoptResources(ctx envcontext.ProviderCallContext, controllerUUID string, fromVersion version.Number) error
AdoptResources is part of the Environ interface.
func (*Environ) AgentMetadataLookupParams ¶
func (e *Environ) AgentMetadataLookupParams(region string) (*simplestreams.MetadataLookupParams, error)
AgentMetadataLookupParams returns parameters which are used to query agent simple-streams metadata.
func (*Environ) AllInstances ¶
func (e *Environ) AllInstances(ctx envcontext.ProviderCallContext) ([]instances.Instance, error)
AllInstances returns all instances in this environment.
func (*Environ) AllRunningInstances ¶
func (e *Environ) AllRunningInstances(ctx envcontext.ProviderCallContext) ([]instances.Instance, error)
AllRunningInstances returns all running, available instances in this environment.
func (*Environ) AllocateContainerAddresses ¶
func (e *Environ) AllocateContainerAddresses(ctx envcontext.ProviderCallContext, hostInstanceID instance.Id, containerTag names.MachineTag, preparedInfo network.InterfaceInfos) (network.InterfaceInfos, error)
AllocateContainerAddresses is specified on environs.Networking.
func (*Environ) AvailabilityZones ¶
func (e *Environ) AvailabilityZones(ctx envcontext.ProviderCallContext) (network.AvailabilityZones, error)
AvailabilityZones returns a slice of availability zones.
func (*Environ) Bootstrap ¶
func (e *Environ) Bootstrap(ctx environs.BootstrapContext, callCtx envcontext.ProviderCallContext, args environs.BootstrapParams) (*environs.BootstrapResult, error)
func (*Environ) CloseModelPorts ¶
func (e *Environ) CloseModelPorts(ctx envcontext.ProviderCallContext, rules firewall.IngressRules) error
func (*Environ) ClosePorts ¶
func (e *Environ) ClosePorts(ctx envcontext.ProviderCallContext, rules firewall.IngressRules) error
func (*Environ) ConstraintsValidator ¶
func (e *Environ) ConstraintsValidator(ctx envcontext.ProviderCallContext) (constraints.Validator, error)
ConstraintsValidator is defined on the Environs interface.
func (*Environ) ControllerInstances ¶
func (e *Environ) ControllerInstances(ctx envcontext.ProviderCallContext, controllerUUID string) ([]instance.Id, error)
func (*Environ) Create ¶
func (e *Environ) Create(ctx envcontext.ProviderCallContext, args environs.CreateParams) error
Create is part of the Environ interface.
func (*Environ) DeletePorts ¶
func (e *Environ) DeletePorts(networks []nova.ServerNetworks) error
DeletePorts goes through and attempts to delete any ports that have been created during the creation of the networks for the given instance.
func (*Environ) DeriveAvailabilityZones ¶
func (e *Environ) DeriveAvailabilityZones(ctx envcontext.ProviderCallContext, args environs.StartInstanceParams) ([]string, error)
DeriveAvailabilityZones is part of the common.ZonedEnviron interface.
func (*Environ) Destroy ¶
func (e *Environ) Destroy(ctx envcontext.ProviderCallContext) error
func (*Environ) DestroyController ¶
func (e *Environ) DestroyController(ctx envcontext.ProviderCallContext, controllerUUID string) error
DestroyController implements the Environ interface.
func (*Environ) ImageMetadataLookupParams ¶
func (e *Environ) ImageMetadataLookupParams(region string) (*simplestreams.MetadataLookupParams, error)
ImageMetadataLookupParams returns parameters which are used to query image simple-streams metadata.
func (*Environ) IngressRules ¶
func (e *Environ) IngressRules(ctx envcontext.ProviderCallContext) (firewall.IngressRules, error)
func (*Environ) InstanceAvailabilityZoneNames ¶
func (e *Environ) InstanceAvailabilityZoneNames(ctx envcontext.ProviderCallContext, ids []instance.Id) (map[instance.Id]string, error)
InstanceAvailabilityZoneNames returns the availability zone names for each of the specified instances.
func (*Environ) InstanceTypes ¶
func (e *Environ) InstanceTypes(ctx envcontext.ProviderCallContext, c constraints.Value) (instances.InstanceTypesWithCostMetadata, error)
func (*Environ) Instances ¶
func (e *Environ) Instances(ctx envcontext.ProviderCallContext, ids []instance.Id) ([]instances.Instance, error)
func (*Environ) ModelIngressRules ¶
func (e *Environ) ModelIngressRules(ctx envcontext.ProviderCallContext) (firewall.IngressRules, error)
func (*Environ) NetworkInterfaces ¶
func (e *Environ) NetworkInterfaces(ctx envcontext.ProviderCallContext, ids []instance.Id) ([]network.InterfaceInfos, error)
NetworkInterfaces is specified on environs.Networking.
func (*Environ) OpenModelPorts ¶
func (e *Environ) OpenModelPorts(ctx envcontext.ProviderCallContext, rules firewall.IngressRules) error
func (*Environ) OpenPorts ¶
func (e *Environ) OpenPorts(ctx envcontext.ProviderCallContext, rules firewall.IngressRules) error
func (*Environ) PrecheckInstance ¶
func (e *Environ) PrecheckInstance(ctx envcontext.ProviderCallContext, args environs.PrecheckInstanceParams) error
PrecheckInstance is defined on the environs.InstancePrechecker interface.
func (*Environ) PrecheckUpgradeOperations ¶
func (env *Environ) PrecheckUpgradeOperations() []environs.PrecheckJujuUpgradeOperation
PrecheckUpgradeOperations is part of the environs.JujuUpgradePrechecker interface. It returns a slice of PrecheckJujuUpgradeOperation to be used to determine if a controller can be safely upgraded.
func (*Environ) PrepareForBootstrap ¶
func (e *Environ) PrepareForBootstrap(_ environs.BootstrapContext, _ string) error
PrepareForBootstrap is part of the Environ interface.
func (*Environ) PreparePrechecker ¶
PreparePrechecker is part of the environs.JujuUpgradePrechecker interface. It is called to to give an Environ a chance to perform interactive operations that are required for prechecking an upgrade.
func (*Environ) Provider ¶
func (e *Environ) Provider() environs.EnvironProvider
func (*Environ) Region ¶
func (e *Environ) Region() (simplestreams.CloudSpec, error)
Region is specified in the HasRegion interface.
func (*Environ) ReleaseContainerAddresses ¶
func (e *Environ) ReleaseContainerAddresses(ctx envcontext.ProviderCallContext, interfaces []network.ProviderInterfaceInfo) error
ReleaseContainerAddresses is specified on environs.Networking.
func (*Environ) SetCloudSpec ¶
func (e *Environ) SetCloudSpec(_ stdcontext.Context, spec environscloudspec.CloudSpec) error
SetCloudSpec is specified in the environs.Environ interface.
func (*Environ) StartInstance ¶
func (e *Environ) StartInstance( ctx envcontext.ProviderCallContext, args environs.StartInstanceParams, ) (*environs.StartInstanceResult, error)
StartInstance is specified in the InstanceBroker interface.
func (*Environ) StopInstances ¶
func (e *Environ) StopInstances(ctx envcontext.ProviderCallContext, ids ...instance.Id) error
func (*Environ) StorageProvider ¶
StorageProvider implements storage.ProviderRegistry.
func (*Environ) StorageProviderTypes ¶
func (e *Environ) StorageProviderTypes() ([]storage.ProviderType, error)
StorageProviderTypes implements storage.ProviderRegistry.
func (*Environ) Subnets ¶
func (e *Environ) Subnets( ctx envcontext.ProviderCallContext, instId instance.Id, subnetIds []network.Id, ) ([]network.SubnetInfo, error)
Subnets is specified on environs.Networking.
func (*Environ) SupportsContainerAddresses ¶
func (e *Environ) SupportsContainerAddresses(envcontext.ProviderCallContext) (bool, error)
SupportsContainerAddresses is specified on environs.Networking.
func (*Environ) SupportsRulesWithIPV6CIDRs ¶
func (e *Environ) SupportsRulesWithIPV6CIDRs(ctx envcontext.ProviderCallContext) (bool, error)
SupportsRulesWithIPV6CIDRs returns true if the environment supports ingress rules containing IPV6 CIDRs. It is part of the FirewallFeatureQuerier interface.
func (*Environ) SupportsSpaces ¶
SupportsSpaces is specified on environs.Networking.
func (*Environ) TagInstance ¶
func (e *Environ) TagInstance(ctx envcontext.ProviderCallContext, id instance.Id, tags map[string]string) error
TagInstance implements environs.InstanceTagger.
func (*Environ) ValidateCloudEndpoint ¶
func (env *Environ) ValidateCloudEndpoint(ctx envcontext.ProviderCallContext) error
ValidateCloudEndpoint returns nil if the current model can talk to the openstack endpoint. Used as validation during model upgrades. Implements environs.CloudEndpointChecker
type EnvironProvider ¶
type EnvironProvider struct { environs.ProviderCredentials Configurator ProviderConfigurator FirewallerFactory FirewallerFactory FlavorFilter FlavorFilter // ClientFromEndpoint returns an Openstack client for the given endpoint. ClientFromEndpoint func(endpoint string) client.AuthenticatingClient }
func (EnvironProvider) AgentMetadataLookupParams ¶
func (p EnvironProvider) AgentMetadataLookupParams(region string) (*simplestreams.MetadataLookupParams, error)
AgentMetadataLookupParams returns parameters which are used to query agent metadata to find matching image information.
func (EnvironProvider) CloudSchema ¶
func (p EnvironProvider) CloudSchema() *jsonschema.Schema
CloudSchema returns the schema for adding new clouds of this type.
func (EnvironProvider) ConfigDefaults ¶
func (p EnvironProvider) ConfigDefaults() schema.Defaults
ConfigDefaults returns the default values for the provider specific config attributes.
func (EnvironProvider) ConfigSchema ¶
func (p EnvironProvider) ConfigSchema() schema.Fields
ConfigSchema returns extra config attributes specific to this provider only.
func (EnvironProvider) DetectRegions ¶
func (EnvironProvider) DetectRegions() ([]cloud.Region, error)
DetectRegions implements environs.CloudRegionDetector.
func (EnvironProvider) ImageMetadataLookupParams ¶
func (p EnvironProvider) ImageMetadataLookupParams(region string) (*simplestreams.MetadataLookupParams, error)
ImageMetadataLookupParams returns parameters which are used to query image metadata to find matching image information.
func (EnvironProvider) ModelConfigDefaults ¶
ModelConfigDefaults provides a set of default model config attributes that should be set on a models config if they have not been specified by the user.
func (EnvironProvider) Open ¶
func (p EnvironProvider) Open(ctx stdcontext.Context, args environs.OpenParams) (environs.Environ, error)
func (EnvironProvider) Ping ¶
func (p EnvironProvider) Ping(ctx envcontext.ProviderCallContext, endpoint string) error
Ping tests the connection to the cloud, to verify the endpoint is valid.
func (EnvironProvider) PrepareConfig ¶
func (p EnvironProvider) PrepareConfig(ctx context.Context, args environs.PrepareConfigParams) (*config.Config, error)
PrepareConfig is specified in the EnvironProvider interface.
func (EnvironProvider) Schema ¶
func (EnvironProvider) Schema() environschema.Fields
Schema returns the configuration schema for an environment.
func (EnvironProvider) Version ¶
func (EnvironProvider) Version() int
Version is part of the EnvironProvider interface.
type Firewaller ¶
type Firewaller interface { // OpenPorts opens the given port ranges for the whole environment. OpenPorts(ctx envcontext.ProviderCallContext, rules firewall.IngressRules) error // ClosePorts closes the given port ranges for the whole environment. ClosePorts(ctx envcontext.ProviderCallContext, rules firewall.IngressRules) error // IngressRules returns the ingress rules applied to the whole environment. // It is expected that there be only one ingress rule result for a given // port range - the rule's SourceCIDRs will contain all applicable source // address rules for that port range. IngressRules(ctx envcontext.ProviderCallContext) (firewall.IngressRules, error) // OpenModelPorts opens the given port ranges on the model firewall OpenModelPorts(ctx envcontext.ProviderCallContext, rules firewall.IngressRules) error // CloseModelPorts Closes the given port ranges on the model firewall CloseModelPorts(ctx envcontext.ProviderCallContext, rules firewall.IngressRules) error // ModelIngressRules returns the set of ingress rules on the model firewall. // The rules are returned as sorted by network.SortIngressRules(). // It is expected that there be only one ingress rule result for a given // port range - the rule's SourceCIDRs will contain all applicable source // address rules for that port range. // If the model security group doesn't exist, return a NotFound error ModelIngressRules(ctx envcontext.ProviderCallContext) (firewall.IngressRules, error) // DeleteMachineGroup delete's the security group specific to the provided machine. // When in 'instance' firewall mode, each instance in a model is assigned its own // security group, with a lifecycle matching that of the instance itself. // In 'global' mode, all security groups are model scoped, and have lifecycles // matching the model, so this method will remove no groups. DeleteMachineGroup(ctx envcontext.ProviderCallContext, machineId string) error // DeleteAllModelGroups deletes all security groups for the // model. DeleteAllModelGroups(ctx envcontext.ProviderCallContext) error // DeleteAllControllerGroups deletes all security groups for the // controller, ie those for all hosted models. DeleteAllControllerGroups(ctx envcontext.ProviderCallContext, controllerUUID string) error // DeleteGroups deletes the security groups with the specified names. DeleteGroups(ctx envcontext.ProviderCallContext, names ...string) error // UpdateGroupController updates all of the security groups for // this model to refer to the specified controller, such that // DeleteAllControllerGroups will remove them only when called // with the specified controller ID. UpdateGroupController(ctx envcontext.ProviderCallContext, controllerUUID string) error // GetSecurityGroups returns a list of the security groups that // belong to given instances. GetSecurityGroups(ctx envcontext.ProviderCallContext, ids ...instance.Id) ([]string, error) // SetUpGroups sets up initial security groups, if any, and returns // their names. SetUpGroups(ctx envcontext.ProviderCallContext, controllerUUID, machineID string) ([]string, error) // OpenInstancePorts opens the given port ranges for the specified instance. OpenInstancePorts(ctx envcontext.ProviderCallContext, inst instances.Instance, machineID string, rules firewall.IngressRules) error // CloseInstancePorts closes the given port ranges for the specified instance. CloseInstancePorts(ctx envcontext.ProviderCallContext, inst instances.Instance, machineID string, rules firewall.IngressRules) error // InstanceIngressRules returns the ingress rules applied to the specified instance. InstanceIngressRules(ctx envcontext.ProviderCallContext, inst instances.Instance, machineID string) (firewall.IngressRules, error) }
Firewaller allows custom openstack provider behaviour. This is used in other providers that embed the openstack provider.
type FirewallerFactory ¶
type FirewallerFactory interface {
GetFirewaller(env environs.Environ) Firewaller
}
FirewallerFactory for obtaining firewaller object.
type FlavorFilter ¶
type FlavorFilter interface { // AcceptFlavor returns true iff the given flavor is acceptable. AcceptFlavor(nova.FlavorDetail) bool }
FlavorFilter is an interface that can control which server flavors are acceptable.
type FlavorFilterFunc ¶
type FlavorFilterFunc func(nova.FlavorDetail) bool
FlavorFilterFunc is a function type that implements FlavorFilter.
func (FlavorFilterFunc) AcceptFlavor ¶
func (f FlavorFilterFunc) AcceptFlavor(d nova.FlavorDetail) bool
AcceptFlavor is part of the FlavorFilter interface.
type Networking ¶
type Networking interface { // AllocatePublicIP allocates a public (floating) IP // to the specified instance. AllocatePublicIP(instance.Id) (*string, error) // ResolveNetworks takes either a network ID or label // with a string to specify whether the network is external // and returns the corresponding matching networks. ResolveNetworks(string, bool) ([]neutron.NetworkV2, error) // Subnets returns basic information about subnets known // by OpenStack for the environment. // Needed for Environ.Networking Subnets(instance.Id, []corenetwork.Id) ([]corenetwork.SubnetInfo, error) // CreatePort creates a port for a given network id with a subnet ID. CreatePort(string, string, corenetwork.Id) (*neutron.PortV2, error) // DeletePortByID attempts to remove a port using the given port ID. DeletePortByID(string) error // NetworkInterfaces requests information about the network // interfaces on the given list of instances. // Needed for Environ.Networking NetworkInterfaces(ids []instance.Id) ([]corenetwork.InterfaceInfos, error) // FindNetworks returns a set of internal or external network names // depending on the provided argument. FindNetworks(internal bool) (set.Strings, error) }
Networking is an interface providing networking-related operations for an OpenStack Environ.
type NetworkingAuthenticatingClient ¶
type NetworkingAuthenticatingClient interface {
TenantId() string
}
NetworkingAuthenticatingClient describes the AuthenticatingClient methods needed for Networking.
type NetworkingBase ¶
type NetworkingBase interface {
// contains filtered or unexported methods
}
NetworkingBase describes the EnvironProvider methods needed for Networking.
type NetworkingEnvironConfig ¶
type NetworkingEnvironConfig interface {
// contains filtered or unexported methods
}
NetworkingEnvironConfig describes the environConfig methods needed for Networking.
type NetworkingNeutron ¶
type NetworkingNeutron interface { AllocateFloatingIPV2(string) (*neutron.FloatingIPV2, error) CreatePortV2(neutron.PortV2) (*neutron.PortV2, error) DeletePortV2(string) error ListPortsV2(filter ...*neutron.Filter) ([]neutron.PortV2, error) GetNetworkV2(string) (*neutron.NetworkV2, error) ListFloatingIPsV2(...*neutron.Filter) ([]neutron.FloatingIPV2, error) ListNetworksV2(...*neutron.Filter) ([]neutron.NetworkV2, error) ListSubnetsV2() ([]neutron.SubnetV2, error) }
NetworkingNeutron describes the Neutron methods needed for Networking.
type NetworkingNova ¶
type NetworkingNova interface {
GetServer(string) (*nova.ServerDetail, error)
}
NetworkingNova describes the Nova methods needed for Networking.
type NeutronNetworking ¶
type NeutronNetworking struct {
NetworkingBase
}
NeutronNetworking is an implementation of Networking that uses the Neutron network APIs.
func (*NeutronNetworking) AllocatePublicIP ¶
func (n *NeutronNetworking) AllocatePublicIP(id instance.Id) (*string, error)
AllocatePublicIP is part of the Networking interface.
func (*NeutronNetworking) CreatePort ¶
func (n *NeutronNetworking) CreatePort(name, networkID string, subnetID network.Id) (*neutron.PortV2, error)
CreatePort creates a port for a given network id with a subnet ID.
func (*NeutronNetworking) DeletePortByID ¶
func (n *NeutronNetworking) DeletePortByID(portID string) error
DeletePortByID attempts to remove a port using the given port ID.
func (*NeutronNetworking) FindNetworks ¶
func (n *NeutronNetworking) FindNetworks(internal bool) (set.Strings, error)
FindNetworks returns a set of internal or external network names depending on the provided argument.
func (*NeutronNetworking) NetworkInterfaces ¶
func (n *NeutronNetworking) NetworkInterfaces(instanceIDs []instance.Id) ([]network.InterfaceInfos, error)
NetworkInterfaces implements environs.NetworkingEnviron. It returns a slice where the i_th element contains the list of network interfaces for the i_th input instance ID.
If none of the provided instance IDs exist, ErrNoInstances will be returned. If only a subset of the instance IDs exist, the result will contain a nil value for the missing instances and a ErrPartialInstances error will be returned.
func (*NeutronNetworking) ResolveNetworks ¶
func (n *NeutronNetworking) ResolveNetworks(name string, external bool) ([]neutron.NetworkV2, error)
ResolveNetworks is part of the Networking interface.
func (*NeutronNetworking) Subnets ¶
func (n *NeutronNetworking) Subnets(instId instance.Id, subnetIds []network.Id) ([]network.SubnetInfo, error)
Subnets returns basic information about the specified subnets known by the provider for the specified instance or list of ids. subnetIds can be empty, in which case all known are returned.
type OpenstackCredentials ¶
type OpenstackCredentials struct{}
func (OpenstackCredentials) CredentialSchemas ¶
func (OpenstackCredentials) CredentialSchemas() map[cloud.AuthType]cloud.CredentialSchema
CredentialSchemas is part of the environs.ProviderCredentials interface.
func (OpenstackCredentials) DetectCredentials ¶
func (c OpenstackCredentials) DetectCredentials(cloudName string) (*cloud.CloudCredential, error)
DetectCredentials is part of the environs.ProviderCredentials interface.
func (OpenstackCredentials) FinalizeCredential ¶
func (OpenstackCredentials) FinalizeCredential(_ environs.FinalizeCredentialContext, args environs.FinalizeCredentialParams) (*cloud.Credential, error)
FinalizeCredential is part of the environs.ProviderCredentials interface.
type OpenstackRenderer ¶
type OpenstackRenderer struct{}
func (OpenstackRenderer) Render ¶
func (OpenstackRenderer) Render(cfg cloudinit.CloudConfig, os ostype.OSType) ([]byte, error)
type OpenstackStorage ¶
type OpenstackStorage interface { GetVolume(volumeId string) (*cinder.Volume, error) GetVolumesDetail() ([]cinder.Volume, error) DeleteVolume(volumeId string) error CreateVolume(cinder.CreateVolumeVolumeParams) (*cinder.Volume, error) AttachVolume(serverId, volumeId, mountPoint string) (*nova.VolumeAttachment, error) DetachVolume(serverId, attachmentId string) error ListVolumeAttachments(serverId string) ([]nova.VolumeAttachment, error) SetVolumeMetadata(volumeId string, metadata map[string]string) (map[string]string, error) ListVolumeAvailabilityZones() ([]cinder.AvailabilityZone, error) }
type ProviderConfigurator ¶
type ProviderConfigurator interface { // GetConfigDefaults sets some configuration default values, if any GetConfigDefaults() schema.Defaults // This method allows to adjust default RunServerOptions, // before new server is actually created. ModifyRunServerOptions(options *nova.RunServerOpts) // This method provides default cloud config. // This config can be different for different providers. GetCloudConfig(args environs.StartInstanceParams) (cloudinit.CloudConfig, error) }
This interface is added to allow to customize OpenStack provider behaviour. This is used in other providers, that embeds OpenStack provider.
type SSLHostnameConfig ¶
type SSLHostnameConfig interface {
SSLHostnameVerification() bool
}
SSLHostnameConfig defines the options for host name verification