openstack

package
v0.0.0-...-d88c8b5 Latest Latest
Warning

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

Go to latest
Published: Feb 9, 2021 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package openstack contains resources for the individual OpenStack projects supported in Gophercloud. It also includes functions to authenticate to an OpenStack cloud and for provisioning various service-level clients.

Example of Creating a Service Client

ao, err := openstack.AuthOptionsFromEnv()
provider, err := openstack.AuthenticatedClient(ao)
client, err := openstack.NewNetworkV2(client, gophercloud.EndpointOpts{
	Region: os.Getenv("OS_REGION_NAME"),
})

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AuthOptionsFromEnv

func AuthOptionsFromEnv() (gophercloud.AuthOptions, error)

AuthOptionsFromEnv fills out an identity.AuthOptions structure with the settings found on the various OpenStack OS_* environment variables.

The following variables provide sources of truth: OS_AUTH_URL, OS_USERNAME, OS_PASSWORD and OS_PROJECT_ID.

Of these, OS_USERNAME, OS_PASSWORD, and OS_AUTH_URL must have settings, or an error will result. OS_PROJECT_ID, is optional.

OS_TENANT_ID and OS_TENANT_NAME are deprecated forms of OS_PROJECT_ID and OS_PROJECT_NAME and the latter are expected against a v3 auth api.

If OS_PROJECT_ID and OS_PROJECT_NAME are set, they will still be referred as "tenant" in Gophercloud.

If OS_PROJECT_NAME is set, it requires OS_PROJECT_ID to be set as well to handle projects not on the default domain.

To use this function, first set the OS_* environment variables (for example, by sourcing an `openrc` file), then:

opts, err := openstack.AuthOptionsFromEnv()
provider, err := openstack.AuthenticatedClient(opts)

func Authenticate

func Authenticate(client *gophercloud.ProviderClient, options gophercloud.AuthOptions) error

Authenticate or re-authenticate against the most recent identity service supported at the provided endpoint.

func AuthenticateV2

func AuthenticateV2(client *gophercloud.ProviderClient, options gophercloud.AuthOptions, eo gophercloud.EndpointOpts) error

AuthenticateV2 explicitly authenticates against the identity v2 endpoint.

func AuthenticateV3

AuthenticateV3 explicitly authenticates against the identity v3 service.

func AuthenticatedClient

func AuthenticatedClient(options gophercloud.AuthOptions) (*gophercloud.ProviderClient, error)

AuthenticatedClient logs in to an OpenStack cloud found at the identity endpoint specified by the options, acquires a token, and returns a Provider Client instance that's ready to operate.

If the full path to a versioned identity endpoint was specified (example: http://example.com:5000/v3), that path will be used as the endpoint to query.

If a versionless endpoint was specified (example: http://example.com:5000/), the endpoint will be queried to determine which versions of the identity service are available, then chooses the most recent or most supported version.

Example:

ao, err := openstack.AuthOptionsFromEnv()
provider, err := openstack.AuthenticatedClient(ao)
client, err := openstack.NewNetworkV2(client, gophercloud.EndpointOpts{
	Region: os.Getenv("OS_REGION_NAME"),
})

func NewBareMetalIntrospectionV1

func NewBareMetalIntrospectionV1(client *gophercloud.ProviderClient, eo gophercloud.EndpointOpts) (*gophercloud.ServiceClient, error)

NewBareMetalIntrospectionV1 creates a ServiceClient that may be used with the v1 bare metal introspection package.

func NewBareMetalV1

NewBareMetalV1 creates a ServiceClient that may be used with the v1 bare metal package.

func NewBlockStorageV1

NewBlockStorageV1 creates a ServiceClient that may be used to access the v1 block storage service.

func NewBlockStorageV2

NewBlockStorageV2 creates a ServiceClient that may be used to access the v2 block storage service.

func NewBlockStorageV3

NewBlockStorageV3 creates a ServiceClient that may be used to access the v3 block storage service.

func NewCDNV1

NewCDNV1 creates a ServiceClient that may be used to access the OpenStack v1 CDN service.

func NewClient

func NewClient(endpoint string) (*gophercloud.ProviderClient, error)

NewClient prepares an unauthenticated ProviderClient instance. Most users will probably prefer using the AuthenticatedClient function instead.

This is useful if you wish to explicitly control the version of the identity service that's used for authentication explicitly, for example.

A basic example of using this would be:

ao, err := openstack.AuthOptionsFromEnv()
provider, err := openstack.NewClient(ao.IdentityEndpoint)
client, err := openstack.NewIdentityV3(provider, gophercloud.EndpointOpts{})

func NewClusteringV1

NewClusteringV1 creates a ServiceClient that may be used with the v1 clustering package.

func NewComputeV2

NewComputeV2 creates a ServiceClient that may be used with the v2 compute package.

func NewContainerInfraV1

NewContainerInfraV1 creates a ServiceClient that may be used with the v1 container infra management package.

func NewContainerV1

NewContainerV1 creates a ServiceClient that may be used with v1 container package

func NewDBV1

NewDBV1 creates a ServiceClient that may be used to access the v1 DB service.

func NewDNSV2

NewDNSV2 creates a ServiceClient that may be used to access the v2 DNS service.

func NewIdentityV2

NewIdentityV2 creates a ServiceClient that may be used to interact with the v2 identity service.

func NewIdentityV3

NewIdentityV3 creates a ServiceClient that may be used to access the v3 identity service.

func NewImageServiceV2

NewImageServiceV2 creates a ServiceClient that may be used to access the v2 image service.

func NewKeyManagerV1

NewKeyManagerV1 creates a ServiceClient that may be used with the v1 key manager service.

func NewLoadBalancerV2

NewLoadBalancerV2 creates a ServiceClient that may be used to access the v2 load balancer service.

func NewMessagingV2

func NewMessagingV2(client *gophercloud.ProviderClient, clientID string, eo gophercloud.EndpointOpts) (*gophercloud.ServiceClient, error)

NewMessagingV2 creates a ServiceClient that may be used with the v2 messaging service.

func NewNetworkV2

NewNetworkV2 creates a ServiceClient that may be used with the v2 network package.

func NewObjectStorageV1

NewObjectStorageV1 creates a ServiceClient that may be used with the v1 object storage package.

func NewOrchestrationV1

NewOrchestrationV1 creates a ServiceClient that may be used to access the v1 orchestration service.

func NewSharedFileSystemV2

func NewSharedFileSystemV2(client *gophercloud.ProviderClient, eo gophercloud.EndpointOpts) (*gophercloud.ServiceClient, error)

NewSharedFileSystemV2 creates a ServiceClient that may be used to access the v2 shared file system service.

func NewWorkflowV2

NewWorkflowV2 creates a ServiceClient that may be used with the v2 workflow management package.

func V2EndpointURL

func V2EndpointURL(catalog *tokens2.ServiceCatalog, opts gophercloud.EndpointOpts) (string, error)

V2EndpointURL discovers the endpoint URL for a specific service from a ServiceCatalog acquired during the v2 identity service.

The specified EndpointOpts are used to identify a unique, unambiguous endpoint to return. It's an error both when multiple endpoints match the provided criteria and when none do. The minimum that can be specified is a Type, but you will also often need to specify a Name and/or a Region depending on what's available on your OpenStack deployment.

func V3EndpointURL

func V3EndpointURL(catalog *tokens3.ServiceCatalog, opts gophercloud.EndpointOpts) (string, error)

V3EndpointURL discovers the endpoint URL for a specific service from a Catalog acquired during the v3 identity service.

The specified EndpointOpts are used to identify a unique, unambiguous endpoint to return. It's an error both when multiple endpoints match the provided criteria and when none do. The minimum that can be specified is a Type, but you will also often need to specify a Name and/or a Region depending on what's available on your OpenStack deployment.

Types

type ErrEndpointNotFound

type ErrEndpointNotFound struct{ gophercloud.BaseError }

ErrEndpointNotFound is the error when no suitable endpoint can be found in the user's catalog

func (ErrEndpointNotFound) Error

func (e ErrEndpointNotFound) Error() string

type ErrInvalidAvailabilityProvided

type ErrInvalidAvailabilityProvided struct{ gophercloud.ErrInvalidInput }

ErrInvalidAvailabilityProvided is the error when an invalid endpoint availability is provided

func (ErrInvalidAvailabilityProvided) Error

type ErrMultipleMatchingEndpointsV2

type ErrMultipleMatchingEndpointsV2 struct {
	gophercloud.BaseError
	Endpoints []tokens2.Endpoint
}

ErrMultipleMatchingEndpointsV2 is the error when more than one endpoint for the given options is found in the v2 catalog

func (ErrMultipleMatchingEndpointsV2) Error

type ErrMultipleMatchingEndpointsV3

type ErrMultipleMatchingEndpointsV3 struct {
	gophercloud.BaseError
	Endpoints []tokens3.Endpoint
}

ErrMultipleMatchingEndpointsV3 is the error when more than one endpoint for the given options is found in the v3 catalog

func (ErrMultipleMatchingEndpointsV3) Error

type ErrNoAuthURL

type ErrNoAuthURL struct{ gophercloud.ErrInvalidInput }

ErrNoAuthURL is the error when the OS_AUTH_URL environment variable is not found

func (ErrNoAuthURL) Error

func (e ErrNoAuthURL) Error() string

type ErrNoPassword

type ErrNoPassword struct{ gophercloud.ErrInvalidInput }

ErrNoPassword is the error when the OS_PASSWORD environment variable is not found

func (ErrNoPassword) Error

func (e ErrNoPassword) Error() string

type ErrNoUsername

type ErrNoUsername struct{ gophercloud.ErrInvalidInput }

ErrNoUsername is the error when the OS_USERNAME environment variable is not found

func (ErrNoUsername) Error

func (e ErrNoUsername) Error() string

Directories

Path Synopsis
blockstorage
extensions/volumeactions
Package volumeactions provides information and interaction with volumes in the OpenStack Block Storage service.
Package volumeactions provides information and interaction with volumes in the OpenStack Block Storage service.
v1/volumes
Package volumes provides information and interaction with volumes in the OpenStack Block Storage service.
Package volumes provides information and interaction with volumes in the OpenStack Block Storage service.
v2/volumes
Package volumes provides information and interaction with volumes in the OpenStack Block Storage service.
Package volumes provides information and interaction with volumes in the OpenStack Block Storage service.
v3/volumes
Package volumes provides information and interaction with volumes in the OpenStack Block Storage service.
Package volumes provides information and interaction with volumes in the OpenStack Block Storage service.
common
extensions
Package extensions provides information and interaction with the different extensions available for an OpenStack service.
Package extensions provides information and interaction with the different extensions available for an OpenStack service.
compute
v2/extensions/attachinterfaces
Package attachinterfaces provides the ability to retrieve and manage network interfaces through Nova.
Package attachinterfaces provides the ability to retrieve and manage network interfaces through Nova.
v2/extensions/volumeattach
Package volumeattach provides the ability to attach and detach volumes from servers.
Package volumeattach provides the ability to attach and detach volumes from servers.
v2/flavors
Package flavors provides information and interaction with the flavor API in the OpenStack Compute service.
Package flavors provides information and interaction with the flavor API in the OpenStack Compute service.
v2/images
Package images provides information and interaction with the images through the OpenStack Compute service.
Package images provides information and interaction with the images through the OpenStack Compute service.
v2/servers
Package servers provides information and interaction with the server API resource in the OpenStack Compute service.
Package servers provides information and interaction with the server API resource in the OpenStack Compute service.
identity
v2/tenants
Package tenants provides information and interaction with the tenants API resource for the OpenStack Identity service.
Package tenants provides information and interaction with the tenants API resource for the OpenStack Identity service.
v2/tokens
Package tokens provides information and interaction with the token API resource for the OpenStack Identity service.
Package tokens provides information and interaction with the token API resource for the OpenStack Identity service.
v3/extensions/trusts
Package trusts enables management of OpenStack Identity Trusts.
Package trusts enables management of OpenStack Identity Trusts.
v3/tokens
Package tokens provides information and interaction with the token API resource for the OpenStack Identity service.
Package tokens provides information and interaction with the token API resource for the OpenStack Identity service.
networking
v2/extensions/external
Package external provides information and interaction with the external extension for the OpenStack Networking service.
Package external provides information and interaction with the external extension for the OpenStack Networking service.
v2/extensions/layer3/floatingips
package floatingips enables management and retrieval of Floating IPs from the OpenStack Networking service.
package floatingips enables management and retrieval of Floating IPs from the OpenStack Networking service.
v2/extensions/layer3/routers
Package routers enables management and retrieval of Routers from the OpenStack Networking service.
Package routers enables management and retrieval of Routers from the OpenStack Networking service.
v2/extensions/lbaas_v2/l7policies
Package l7policies provides information and interaction with L7Policies and Rules of the LBaaS v2 extension for the OpenStack Networking service.
Package l7policies provides information and interaction with L7Policies and Rules of the LBaaS v2 extension for the OpenStack Networking service.
v2/extensions/lbaas_v2/listeners
Package listeners provides information and interaction with Listeners of the LBaaS v2 extension for the OpenStack Networking service.
Package listeners provides information and interaction with Listeners of the LBaaS v2 extension for the OpenStack Networking service.
v2/extensions/lbaas_v2/loadbalancers
Package loadbalancers provides information and interaction with Load Balancers of the LBaaS v2 extension for the OpenStack Networking service.
Package loadbalancers provides information and interaction with Load Balancers of the LBaaS v2 extension for the OpenStack Networking service.
v2/extensions/lbaas_v2/monitors
Package monitors provides information and interaction with Monitors of the LBaaS v2 extension for the OpenStack Networking service.
Package monitors provides information and interaction with Monitors of the LBaaS v2 extension for the OpenStack Networking service.
v2/extensions/lbaas_v2/pools
Package pools provides information and interaction with Pools and Members of the LBaaS v2 extension for the OpenStack Networking service.
Package pools provides information and interaction with Pools and Members of the LBaaS v2 extension for the OpenStack Networking service.
v2/extensions/security/groups
Package groups provides information and interaction with Security Groups for the OpenStack Networking service.
Package groups provides information and interaction with Security Groups for the OpenStack Networking service.
v2/extensions/security/rules
Package rules provides information and interaction with Security Group Rules for the OpenStack Networking service.
Package rules provides information and interaction with Security Group Rules for the OpenStack Networking service.
v2/networks
Package networks contains functionality for working with Neutron network resources.
Package networks contains functionality for working with Neutron network resources.
v2/ports
Package ports contains functionality for working with Neutron port resources.
Package ports contains functionality for working with Neutron port resources.

Jump to

Keyboard shortcuts

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