openstack

package
v0.0.0-...-f1be5ca Latest Latest
Warning

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

Go to latest
Published: Jun 26, 2024 License: Apache-2.0 Imports: 10 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(provider, 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(provider, 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 NewPlacementV1

NewPlacementV1 creates a ServiceClient that may be used with the placement package.

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 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
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/availabilityzones
Package availabilityzones provides the ability to get lists and detailed availability zone information and to extend a server result with availability zone information.
Package availabilityzones provides the ability to get lists and detailed availability zone information and to extend a server result with availability zone information.
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/ec2tokens
Package tokens provides information and interaction with the EC2 token API resource for the OpenStack Identity service.
Package tokens provides information and interaction with the EC2 token API resource for the OpenStack Identity service.
v3/extensions/oauth1
Package oauth1 enables management of OpenStack OAuth1 tokens and Authentication.
Package oauth1 enables management of OpenStack OAuth1 tokens and Authentication.
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/attributestags
Package attributestags manages Tags on Resources created by the OpenStack Neutron Service.
Package attributestags manages Tags on Resources created by the OpenStack Neutron 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.
v2/subnets
Package subnets contains functionality for working with Neutron subnet resources.
Package subnets contains functionality for working with Neutron subnet resources.

Jump to

Keyboard shortcuts

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