gophercloud

package
v1.2.0-beta.0 Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2016 License: Apache-2.0, Apache-2.0 Imports: 13 Imported by: 0

README

Gophercloud: the OpenStack SDK for Go

Build Status

Gophercloud is a flexible SDK that allows you to consume and work with OpenStack clouds in a simple and idiomatic way using golang. Many services are supported, including Compute, Block Storage, Object Storage, Networking, and Identity. Each service API is backed with getting started guides, code samples, reference documentation, unit tests and acceptance tests.

How to install

Before installing, you need to ensure that your GOPATH environment variable is pointing to an appropriate directory where you want to install Gophercloud:

mkdir $HOME/go
export GOPATH=$HOME/go

To protect yourself against changes in your dependencies, we highly recommend choosing a dependency management solution for your projects, such as godep. Once this is set up, you can install Gophercloud as a dependency like so:

go get github.com/rackspace/gophercloud

# Edit your code to import relevant packages from "github.com/rackspace/gophercloud"

godep save ./...

This will install all the source files you need into a Godeps/_workspace directory, which is referenceable from your own source files when you use the godep go command.

Getting started

Credentials

Because you'll be hitting an API, you will need to retrieve your OpenStack credentials and either store them as environment variables or in your local Go files. The first method is recommended because it decouples credential information from source code, allowing you to push the latter to your version control system without any security risk.

You will need to retrieve the following:

  • username
  • password
  • tenant name or tenant ID
  • a valid Keystone identity URL

For users that have the OpenStack dashboard installed, there's a shortcut. If you visit the project/access_and_security path in Horizon and click on the "Download OpenStack RC File" button at the top right hand corner, you will download a bash file that exports all of your access details to environment variables. To execute the file, run source admin-openrc.sh and you will be prompted for your password.

Authentication

Once you have access to your credentials, you can begin plugging them into Gophercloud. The next step is authentication, and this is handled by a base "Provider" struct. To get one, you can either pass in your credentials explicitly, or tell Gophercloud to use environment variables:

import (
  "github.com/rackspace/gophercloud"
  "github.com/rackspace/gophercloud/openstack"
  "github.com/rackspace/gophercloud/openstack/utils"
)

// Option 1: Pass in the values yourself
opts := gophercloud.AuthOptions{
  IdentityEndpoint: "https://my-openstack.com:5000/v2.0",
  Username: "{username}",
  Password: "{password}",
  TenantID: "{tenant_id}",
}

// Option 2: Use a utility function to retrieve all your environment variables
opts, err := openstack.AuthOptionsFromEnv()

Once you have the opts variable, you can pass it in and get back a ProviderClient struct:

provider, err := openstack.AuthenticatedClient(opts)

The ProviderClient is the top-level client that all of your OpenStack services derive from. The provider contains all of the authentication details that allow your Go code to access the API - such as the base URL and token ID.

Provision a server

Once we have a base Provider, we inject it as a dependency into each OpenStack service. In order to work with the Compute API, we need a Compute service client; which can be created like so:

client, err := openstack.NewComputeV2(provider, gophercloud.EndpointOpts{
  Region: os.Getenv("OS_REGION_NAME"),
})

We then use this client for any Compute API operation we want. In our case, we want to provision a new server - so we invoke the Create method and pass in the flavor ID (hardware specification) and image ID (operating system) we're interested in:

import "github.com/rackspace/gophercloud/openstack/compute/v2/servers"

server, err := servers.Create(client, servers.CreateOpts{
  Name:      "My new server!",
  FlavorRef: "flavor_id",
  ImageRef:  "image_id",
}).Extract()

If you are unsure about what images and flavors are, you can read our Compute Getting Started guide. The above code sample creates a new server with the parameters, and embodies the new resource in the server variable (a servers.Server struct).

Next steps

Cool! You've handled authentication, got your ProviderClient and provisioned a new server. You're now ready to use more OpenStack services.

Contributing

Engaging the community and lowering barriers for contributors is something we care a lot about. For this reason, we've taken the time to write a contributing guide for folks interested in getting involved in our project. If you're not sure how you can get involved, feel free to submit an issue or contact us. You don't need to be a Go expert - all members of the community are welcome!

Help and feedback

If you're struggling with something or have spotted a potential bug, feel free to submit an issue to our bug tracker or contact us directly.

Documentation

Overview

Package gophercloud provides a multi-vendor interface to OpenStack-compatible clouds. The library has a three-level hierarchy: providers, services, and resources.

Provider structs represent the service providers that offer and manage a collection of services. Examples of providers include: OpenStack, Rackspace, HP. These are defined like so:

opts := gophercloud.AuthOptions{
  IdentityEndpoint: "https://my-openstack.com:5000/v2.0",
  Username: "{username}",
  Password: "{password}",
  TenantID: "{tenant_id}",
}

provider, err := openstack.AuthenticatedClient(opts)

Service structs are specific to a provider and handle all of the logic and operations for a particular OpenStack service. Examples of services include: Compute, Object Storage, Block Storage. In order to define one, you need to pass in the parent provider, like so:

opts := gophercloud.EndpointOpts{Region: "RegionOne"}

client := openstack.NewComputeV2(provider, opts)

Resource structs are the domain models that services make use of in order to work with and represent the state of API resources:

server, err := servers.Get(client, "{serverId}").Extract()

Intermediate Result structs are returned for API operations, which allow generic access to the HTTP headers, response body, and any errors associated with the network transaction. To turn a result into a usable resource struct, you must call the Extract method which is chained to the response, or an Extract function from an applicable extension:

result := servers.Get(client, "{serverId}")

// Attempt to extract the disk configuration from the OS-DCF disk config
// extension:
config, err := diskconfig.ExtractGet(result)

All requests that enumerate a collection return a Pager struct that is used to iterate through the results one page at a time. Use the EachPage method on that Pager to handle each successive Page in a closure, then use the appropriate extraction method from that request's package to interpret that Page as a slice of results:

err := servers.List(client, nil).EachPage(func (page pagination.Page) (bool, error) {
  s, err := servers.ExtractServers(page)
  if err != nil {
    return false, err
  }

  // Handle the []servers.Server slice.

  // Return "false" or an error to prematurely stop fetching new pages.
  return true, nil
})

This top-level package contains utility functions and data types that are used throughout the provider and service packages. Of particular note for end users are the AuthOptions and EndpointOpts structs.

Index

Constants

View Source
const DefaultUserAgent = "gophercloud/1.0.0"

DefaultUserAgent is the default User-Agent string set in the request header.

View Source
const RFC3339Milli = "2006-01-02T15:04:05.999999Z"

RFC3339Milli describes a common time format used by some API responses.

View Source
const STACK_TIME_FMT = "2006-01-02T15:04:05"

Time format used in cloud orchestration

Variables

View Source
var (
	// ErrServiceNotFound is returned when no service in a service catalog matches
	// the provided EndpointOpts. This is generally returned by provider service
	// factory methods like "NewComputeV2()" and can mean that a service is not
	// enabled for your account.
	ErrServiceNotFound = errors.New("No suitable service could be found in the service catalog.")

	// ErrEndpointNotFound is returned when no available endpoints match the
	// provided EndpointOpts. This is also generally returned by provider service
	// factory methods, and usually indicates that a region was specified
	// incorrectly.
	ErrEndpointNotFound = errors.New("No suitable endpoint could be found in the service catalog.")
)

Functions

func BuildHeaders added in v0.8.0

func BuildHeaders(opts interface{}) (map[string]string, error)

BuildHeaders is an internal function to be used by request methods in individual resource packages.

It accepts an arbitrary tagged structure and produces a string map that's suitable for use as the HTTP headers of an outgoing request. Field names are mapped to header names based in "h" tags.

type struct Something {
  Bar string `h:"x_bar"`
  Baz int    `h:"lorem_ipsum"`
}

instance := Something{
  Bar: "AAA",
  Baz: "BBB",
}

will be converted into:

map[string]string{
  "x_bar": "AAA",
  "lorem_ipsum": "BBB",
}

Untagged fields and fields left at their zero values are skipped. Integers, booleans and string values are supported.

func BuildQueryString added in v0.8.0

func BuildQueryString(opts interface{}) (*url.URL, error)

BuildQueryString is an internal function to be used by request methods in individual resource packages.

It accepts a tagged structure and expands it into a URL struct. Field names are converted into query parameters based on a "q" tag. For example:

type struct Something {
   Bar string `q:"x_bar"`
   Baz int    `q:"lorem_ipsum"`
}

instance := Something{
   Bar: "AAA",
   Baz: "BBB",
}

will be converted into "?x_bar=AAA&lorem_ipsum=BBB".

The struct's fields may be strings, integers, or boolean values. Fields left at their type's zero value will be omitted from the query.

func DecodeHeader added in v0.11.0

func DecodeHeader(from, to interface{}) error

DecodeHeader is a function that decodes a header (usually of type map[string]interface{}) to another type (usually a struct). This function is used by the objectstorage package to give users access to response headers without having to query a map. A DecodeHookFunction is used, because OpenStack-based clients return header values as arrays (Go slices).

func ExtractNextURL added in v0.8.0

func ExtractNextURL(links []Link) (string, error)

ExtractNextURL is an internal function useful for packages of collection resources that are paginated in a certain way.

It attempts attempts to extract the "next" URL from slice of Link structs, or "" if no such URL is present.

func IDSliceToQueryString added in v0.11.0

func IDSliceToQueryString(name string, ids []int) string

IDSliceToQueryString takes a slice of elements and converts them into a query string. For example, if name=foo and slice=[]int{20, 40, 60}, then the result would be `?name=20&name=40&name=60'

func IntToPointer added in v0.11.0

func IntToPointer(i int) *int

IntToPointer is a function for converting integers into integer pointers. This is useful when passing in options to operations.

func IntWithinRange added in v0.11.0

func IntWithinRange(val, min, max int) bool

IntWithinRange returns TRUE if an integer falls within a defined range, and FALSE if not.

func MaybeInt added in v0.8.0

func MaybeInt(original int) *int

MaybeInt is an internal function to be used by request methods in individual resource packages.

Like MaybeString, it accepts an int that may or may not be a zero value, and returns either a pointer to its address or nil. It's intended to hint that the JSON serializer should omit its field.

func MaybeString added in v0.8.0

func MaybeString(original string) *string

MaybeString is an internal function to be used by request methods in individual resource packages.

It takes a string that might be a zero value and returns either a pointer to its address or nil. This is useful for allowing users to conveniently omit values from an options struct by leaving them zeroed, but still pass nil to the JSON serializer so they'll be omitted from the request body.

func NormalizeURL added in v0.8.0

func NormalizeURL(url string) string

NormalizeURL is an internal function to be used by provider clients.

It ensures that each endpoint URL has a closing `/`, as expected by ServiceClient's methods.

func WaitFor added in v0.8.0

func WaitFor(timeout int, predicate func() (bool, error)) error

WaitFor polls a predicate function, once per second, up to a timeout limit. It usually does this to wait for a resource to transition to a certain state. Resource packages will wrap this in a more convenient function that's specific to a certain resource, but it can also be useful on its own.

Types

type AuthOptions

type AuthOptions struct {
	// IdentityEndpoint specifies the HTTP endpoint that is required to work with
	// the Identity API of the appropriate version. While it's ultimately needed by
	// all of the identity services, it will often be populated by a provider-level
	// function.
	IdentityEndpoint string

	// Username is required if using Identity V2 API. Consult with your provider's
	// control panel to discover your account's username. In Identity V3, either
	// UserID or a combination of Username and DomainID or DomainName are needed.
	Username, UserID string

	// Exactly one of Password or APIKey is required for the Identity V2 and V3
	// APIs. Consult with your provider's control panel to discover your account's
	// preferred method of authentication.
	Password, APIKey string

	// At most one of DomainID and DomainName must be provided if using Username
	// with Identity V3. Otherwise, either are optional.
	DomainID, DomainName string

	// The TenantID and TenantName fields are optional for the Identity V2 API.
	// Some providers allow you to specify a TenantName instead of the TenantId.
	// Some require both. Your provider's authentication policies will determine
	// how these fields influence authentication.
	TenantID, TenantName string

	// AllowReauth should be set to true if you grant permission for Gophercloud to
	// cache your credentials in memory, and to allow Gophercloud to attempt to
	// re-authenticate automatically if/when your token expires.  If you set it to
	// false, it will not cache these settings, but re-authentication will not be
	// possible.  This setting defaults to false.
	AllowReauth bool

	// TokenID allows users to authenticate (possibly as another user) with an
	// authentication token ID.
	TokenID string
}

AuthOptions stores information needed to authenticate to an OpenStack cluster. You can populate one manually, or use a provider's AuthOptionsFromEnv() function to read relevant information from the standard environment variables. Pass one to a provider's AuthenticatedClient function to authenticate and obtain a ProviderClient representing an active session on that provider.

Its fields are the union of those recognized by each identity implementation and provider.

type AuthResults added in v0.8.0

type AuthResults interface {
	// TokenID returns the token's ID value from the authentication response.
	TokenID() (string, error)

	// ExpiresAt retrieves the token's expiration time.
	ExpiresAt() (time.Time, error)
}

AuthResults [deprecated] is a leftover type from the v0.x days. It was intended to describe common functionality among identity service results, but is not actually used anywhere.

type Availability added in v0.8.0

type Availability string

Availability indicates to whom a specific service endpoint is accessible: the internet at large, internal networks only, or only to administrators. Different identity services use different terminology for these. Identity v2 lists them as different kinds of URLs within the service catalog ("adminURL", "internalURL", and "publicURL"), while v3 lists them as "Interfaces" in an endpoint's response.

const (
	// AvailabilityAdmin indicates that an endpoint is only available to
	// administrators.
	AvailabilityAdmin Availability = "admin"

	// AvailabilityPublic indicates that an endpoint is available to everyone on
	// the internet.
	AvailabilityPublic Availability = "public"

	// AvailabilityInternal indicates that an endpoint is only available within
	// the cluster's internal network.
	AvailabilityInternal Availability = "internal"
)

type EnabledState added in v0.11.0

type EnabledState *bool

EnabledState is a convenience type, mostly used in Create and Update operations. Because the zero value of a bool is FALSE, we need to use a pointer instead to indicate zero-ness.

var (
	Enabled  EnabledState = &iTrue
	Disabled EnabledState = &iFalse
)

Convenience vars for EnabledState values.

type EndpointLocator added in v0.8.0

type EndpointLocator func(EndpointOpts) (string, error)

EndpointLocator is an internal function to be used by provider implementations.

It provides an implementation that locates a single endpoint from a service catalog for a specific ProviderClient based on user-provided EndpointOpts. The provider then uses it to discover related ServiceClients.

type EndpointOpts added in v0.8.0

type EndpointOpts struct {
	// Type [required] is the service type for the client (e.g., "compute",
	// "object-store"). Generally, this will be supplied by the service client
	// function, but a user-given value will be honored if provided.
	Type string

	// Name [optional] is the service name for the client (e.g., "nova") as it
	// appears in the service catalog. Services can have the same Type but a
	// different Name, which is why both Type and Name are sometimes needed.
	Name string

	// Region [required] is the geographic region in which the endpoint resides,
	// generally specifying which datacenter should house your resources.
	// Required only for services that span multiple regions.
	Region string

	// Availability [optional] is the visibility of the endpoint to be returned.
	// Valid types include the constants AvailabilityPublic, AvailabilityInternal,
	// or AvailabilityAdmin from this package.
	//
	// Availability is not required, and defaults to AvailabilityPublic. Not all
	// providers or services offer all Availability options.
	Availability Availability
}

EndpointOpts specifies search criteria used by queries against an OpenStack service catalog. The options must contain enough information to unambiguously identify one, and only one, endpoint within the catalog.

Usually, these are passed to service client factory functions in a provider package, like "rackspace.NewComputeV2()".

func (*EndpointOpts) ApplyDefaults added in v0.8.0

func (eo *EndpointOpts) ApplyDefaults(t string)

ApplyDefaults is an internal method to be used by provider implementations.

It sets EndpointOpts fields if not already set, including a default type. Currently, EndpointOpts.Availability defaults to the public endpoint.

type ErrResult added in v0.8.0

type ErrResult struct {
	Result
}

ErrResult is an internal type to be used by individual resource packages, but its methods will be available on a wide variety of user-facing embedding types.

It represents results that only contain a potential error and nothing else. Usually, if the operation executed successfully, the Err field will be nil; otherwise it will be stocked with a relevant error. Use the ExtractErr method to cleanly pull it out.

func (ErrResult) ExtractErr added in v0.8.0

func (r ErrResult) ExtractErr() error

ExtractErr is a function that extracts error information, or nil, from a result.

type HeaderResult added in v0.8.0

type HeaderResult struct {
	Result
}

HeaderResult is an internal type to be used by individual resource packages, but its methods will be available on a wide variety of user-facing embedding types.

It represents a result that only contains an error (possibly nil) and an http.Header. This is used, for example, by the objectstorage packages in openstack, because most of the operations don't return response bodies, but do have relevant information in headers.

func (HeaderResult) ExtractHeader added in v0.8.0

func (hr HeaderResult) ExtractHeader() (http.Header, error)

ExtractHeader will return the http.Header and error from the HeaderResult.

header, err := objects.Create(client, "my_container", objects.CreateOpts{}).ExtractHeader()
type Link struct {
	Href string `mapstructure:"href"`
	Rel  string `mapstructure:"rel"`
}

Link is an internal type to be used in packages of collection resources that are paginated in a certain way.

It's a response substructure common to many paginated collection results that is used to point to related pages. Usually, the one we care about is the one with Rel field set to "next".

type ProviderClient added in v0.8.0

type ProviderClient struct {
	// IdentityBase is the base URL used for a particular provider's identity
	// service - it will be used when issuing authenticatation requests. It
	// should point to the root resource of the identity service, not a specific
	// identity version.
	IdentityBase string

	// IdentityEndpoint is the identity endpoint. This may be a specific version
	// of the identity service. If this is the case, this endpoint is used rather
	// than querying versions first.
	IdentityEndpoint string

	// TokenID is the ID of the most recently issued valid token.
	TokenID string

	// EndpointLocator describes how this provider discovers the endpoints for
	// its constituent services.
	EndpointLocator EndpointLocator

	// HTTPClient allows users to interject arbitrary http, https, or other transit behaviors.
	HTTPClient http.Client

	// UserAgent represents the User-Agent header in the HTTP request.
	UserAgent UserAgent

	// ReauthFunc is the function used to re-authenticate the user if the request
	// fails with a 401 HTTP response code. This a needed because there may be multiple
	// authentication functions for different Identity service versions.
	ReauthFunc func() error
}

ProviderClient stores details that are required to interact with any services within a specific provider's API.

Generally, you acquire a ProviderClient by calling the NewClient method in the appropriate provider's child package, providing whatever authentication credentials are required.

func (*ProviderClient) AuthenticatedHeaders added in v0.8.0

func (client *ProviderClient) AuthenticatedHeaders() map[string]string

AuthenticatedHeaders returns a map of HTTP headers that are common for all authenticated service requests.

func (*ProviderClient) Delete added in v0.16.0

func (client *ProviderClient) Delete(url string, opts *RequestOpts) (*http.Response, error)

func (*ProviderClient) Get added in v0.16.0

func (client *ProviderClient) Get(url string, JSONResponse *interface{}, opts *RequestOpts) (*http.Response, error)

func (*ProviderClient) Post added in v0.16.0

func (client *ProviderClient) Post(url string, JSONBody interface{}, JSONResponse *interface{}, opts *RequestOpts) (*http.Response, error)

func (*ProviderClient) Put added in v0.16.0

func (client *ProviderClient) Put(url string, JSONBody interface{}, JSONResponse *interface{}, opts *RequestOpts) (*http.Response, error)

func (*ProviderClient) Request added in v0.13.0

func (client *ProviderClient) Request(method, url string, options RequestOpts) (*http.Response, error)

Request performs an HTTP request using the ProviderClient's current HTTPClient. An authentication header will automatically be provided.

type RequestOpts added in v0.13.0

type RequestOpts struct {
	// JSONBody, if provided, will be encoded as JSON and used as the body of the HTTP request. The
	// content type of the request will default to "application/json" unless overridden by MoreHeaders.
	// It's an error to specify both a JSONBody and a RawBody.
	JSONBody interface{}
	// RawBody contains an io.ReadSeeker that will be consumed by the request directly. No content-type
	// will be set unless one is provided explicitly by MoreHeaders.
	RawBody io.ReadSeeker

	// JSONResponse, if provided, will be populated with the contents of the response body parsed as
	// JSON.
	JSONResponse interface{}
	// OkCodes contains a list of numeric HTTP status codes that should be interpreted as success. If
	// the response has a different code, an error will be returned.
	OkCodes []int

	// MoreHeaders specifies additional HTTP headers to be provide on the request. If a header is
	// provided with a blank value (""), that header will be *omitted* instead: use this to suppress
	// the default Accept header or an inferred Content-Type, for example.
	MoreHeaders map[string]string
}

RequestOpts customizes the behavior of the provider.Request() method.

type Result added in v0.8.0

type Result struct {
	// Body is the payload of the HTTP response from the server. In most cases,
	// this will be the deserialized JSON structure.
	Body interface{}

	// Header contains the HTTP header structure from the original response.
	Header http.Header

	// Err is an error that occurred during the operation. It's deferred until
	// extraction to make it easier to chain the Extract call.
	Err error
}

Result is an internal type to be used by individual resource packages, but its methods will be available on a wide variety of user-facing embedding types.

It acts as a base struct that other Result types, returned from request functions, can embed for convenience. All Results capture basic information from the HTTP transaction that was performed, including the response body, HTTP headers, and any errors that happened.

Generally, each Result type will have an Extract method that can be used to further interpret the result's payload in a specific context. Extensions or providers can then provide additional extraction functions to pull out provider- or extension-specific information as well.

func (Result) PrettyPrintJSON added in v0.8.0

func (r Result) PrettyPrintJSON() string

PrettyPrintJSON creates a string containing the full response body as pretty-printed JSON. It's useful for capturing test fixtures and for debugging extraction bugs. If you include its output in an issue related to a buggy extraction function, we will all love you forever.

type ServiceClient added in v0.8.0

type ServiceClient struct {
	// ProviderClient is a reference to the provider that implements this service.
	*ProviderClient

	// Endpoint is the base URL of the service's API, acquired from a service catalog.
	// It MUST end with a /.
	Endpoint string

	// ResourceBase is the base URL shared by the resources within a service's API. It should include
	// the API version and, like Endpoint, MUST end with a / if set. If not set, the Endpoint is used
	// as-is, instead.
	ResourceBase string
}

ServiceClient stores details required to interact with a specific service API implemented by a provider. Generally, you'll acquire these by calling the appropriate `New` method on a ProviderClient.

func (*ServiceClient) ResourceBaseURL added in v0.8.0

func (client *ServiceClient) ResourceBaseURL() string

ResourceBaseURL returns the base URL of any resources used by this service. It MUST end with a /.

func (*ServiceClient) ServiceURL added in v0.8.0

func (client *ServiceClient) ServiceURL(parts ...string) string

ServiceURL constructs a URL for a resource belonging to this provider.

type UnexpectedResponseCodeError added in v0.13.0

type UnexpectedResponseCodeError struct {
	URL      string
	Method   string
	Expected []int
	Actual   int
	Body     []byte
}

UnexpectedResponseCodeError is returned by the Request method when a response code other than those listed in OkCodes is encountered.

func (*UnexpectedResponseCodeError) Error added in v0.13.0

func (err *UnexpectedResponseCodeError) Error() string

type UserAgent added in v0.13.0

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

UserAgent represents a User-Agent header.

func (*UserAgent) Join added in v0.13.0

func (ua *UserAgent) Join() string

Join concatenates all the user-defined User-Agend strings with the default Gophercloud User-Agent string.

func (*UserAgent) Prepend added in v0.13.0

func (ua *UserAgent) Prepend(s ...string)

Prepend prepends a user-defined string to the default User-Agent string. Users may pass in one or more strings to prepend.

Directories

Path Synopsis
acceptance
blockstorage/v1/apiversions
Package apiversions provides information and interaction with the different API versions for the OpenStack Block Storage service, code-named Cinder.
Package apiversions provides information and interaction with the different API versions for the OpenStack Block Storage service, code-named Cinder.
blockstorage/v1/snapshots
Package snapshots provides information and interaction with snapshots in the OpenStack Block Storage service.
Package snapshots provides information and interaction with snapshots in the OpenStack Block Storage service.
blockstorage/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.
blockstorage/v1/volumes/testing
This is package created is to hold fixtures (which imports testing), so that importing volumes package does not inadvertently import testing into production code More information here: https://github.com/rackspace/gophercloud/issues/473
This is package created is to hold fixtures (which imports testing), so that importing volumes package does not inadvertently import testing into production code More information here: https://github.com/rackspace/gophercloud/issues/473
blockstorage/v1/volumetypes
Package volumetypes provides information and interaction with volume types in the OpenStack Block Storage service.
Package volumetypes provides information and interaction with volume types in the OpenStack Block Storage service.
cdn/v1/base
Package base provides information and interaction with the base API resource in the OpenStack CDN service.
Package base provides information and interaction with the base API resource in the OpenStack CDN service.
cdn/v1/flavors
Package flavors provides information and interaction with the flavors API resource in the OpenStack CDN service.
Package flavors provides information and interaction with the flavors API resource in the OpenStack CDN service.
cdn/v1/serviceassets
Package serviceassets provides information and interaction with the serviceassets API resource in the OpenStack CDN service.
Package serviceassets provides information and interaction with the serviceassets API resource in the OpenStack CDN service.
cdn/v1/services
Package services provides information and interaction with the services API resource in the OpenStack CDN service.
Package services provides information and interaction with the services API resource in the OpenStack CDN 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
Package extensions provides information and interaction with the different extensions available for the OpenStack Compute service.
Package extensions provides information and interaction with the different extensions available for the OpenStack Compute service.
compute/v2/extensions/diskconfig
Package diskconfig provides information and interaction with the Disk Config extension that works with the OpenStack Compute service.
Package diskconfig provides information and interaction with the Disk Config extension that works with the OpenStack Compute service.
compute/v2/extensions/floatingip
Package floatingip provides the ability to manage floating ips through nova-network
Package floatingip provides the ability to manage floating ips through nova-network
compute/v2/extensions/keypairs
Package keypairs provides information and interaction with the Keypairs extension for the OpenStack Compute service.
Package keypairs provides information and interaction with the Keypairs extension for the OpenStack Compute service.
compute/v2/extensions/networks
Package network provides the ability to manage nova-networks
Package network provides the ability to manage nova-networks
compute/v2/extensions/schedulerhints
Package schedulerhints enables instances to provide the OpenStack scheduler hints about where they should be placed in the cloud.
Package schedulerhints enables instances to provide the OpenStack scheduler hints about where they should be placed in the cloud.
compute/v2/extensions/servergroups
Package servergroups provides the ability to manage server groups
Package servergroups provides the ability to manage server groups
compute/v2/extensions/startstop
Package startstop provides functionality to start and stop servers that have been provisioned by the OpenStack Compute service.
Package startstop provides functionality to start and stop servers that have been provisioned by the OpenStack Compute service.
compute/v2/extensions/tenantnetworks
Package tenantnetworks provides the ability for tenants to see information about the networks they have access to
Package tenantnetworks provides the ability for tenants to see information about the networks they have access to
compute/v2/extensions/volumeattach
Package volumeattach provides the ability to attach and detach volumes to instances
Package volumeattach provides the ability to attach and detach volumes to instances
compute/v2/extensions/volumeattach/testing
This is package created is to hold fixtures (which imports testing), so that importing volumeattach package does not inadvertently import testing into production code More information here: https://github.com/rackspace/gophercloud/issues/473
This is package created is to hold fixtures (which imports testing), so that importing volumeattach package does not inadvertently import testing into production code More information here: https://github.com/rackspace/gophercloud/issues/473
compute/v2/flavors
Package flavors provides information and interaction with the flavor API resource in the OpenStack Compute service.
Package flavors provides information and interaction with the flavor API resource in the OpenStack Compute service.
compute/v2/images
Package images provides information and interaction with the image API resource in the OpenStack Compute service.
Package images provides information and interaction with the image API resource in the OpenStack Compute service.
compute/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/extensions
Package extensions provides information and interaction with the different extensions available for the OpenStack Identity service.
Package extensions provides information and interaction with the different extensions available for the OpenStack Identity service.
identity/v2/extensions/admin/roles
Package roles provides functionality to interact with and control roles on the API.
Package roles provides functionality to interact with and control roles on the API.
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.
identity/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.
identity/v3/endpoints
Package endpoints provides information and interaction with the service endpoints API resource in the OpenStack Identity service.
Package endpoints provides information and interaction with the service endpoints API resource in the OpenStack Identity service.
identity/v3/roles
Package roles provides information and interaction with the roles API resource for the OpenStack Identity service.
Package roles provides information and interaction with the roles API resource for the OpenStack Identity service.
identity/v3/services
Package services provides information and interaction with the services API resource for the OpenStack Identity service.
Package services provides information and interaction with the services API resource for the OpenStack Identity service.
identity/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/apiversions
Package apiversions provides information and interaction with the different API versions for the OpenStack Neutron service.
Package apiversions provides information and interaction with the different API versions for the OpenStack Neutron 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.
networking/v2/extensions/fwaas
Package fwaas provides information and interaction with the Firewall as a Service extension for the OpenStack Networking service.
Package fwaas provides information and interaction with the Firewall as a Service extension for the OpenStack Networking service.
networking/v2/extensions/layer3
Package layer3 provides access to the Layer-3 networking extension for the OpenStack Neutron service.
Package layer3 provides access to the Layer-3 networking extension for the OpenStack Neutron service.
networking/v2/extensions/lbaas
Package lbaas provides information and interaction with the Load Balancer as a Service extension for the OpenStack Networking service.
Package lbaas provides information and interaction with the Load Balancer as a Service extension for the OpenStack Networking service.
networking/v2/extensions/provider
Package provider gives access to the provider Neutron plugin, allowing network extended attributes.
Package provider gives access to the provider Neutron plugin, allowing network extended attributes.
networking/v2/extensions/security
Package security contains functionality to work with security group and security group rules Neutron resources.
Package security contains functionality to work with security group and security group rules Neutron resources.
networking/v2/networks
Package networks contains functionality for working with Neutron network resources.
Package networks contains functionality for working with Neutron network resources.
networking/v2/ports
Package ports contains functionality for working with Neutron port resources.
Package ports contains functionality for working with Neutron port resources.
networking/v2/subnets
Package subnets contains functionality for working with Neutron subnet resources.
Package subnets contains functionality for working with Neutron subnet resources.
objectstorage/v1/accounts
Package accounts contains functionality for working with Object Storage account resources.
Package accounts contains functionality for working with Object Storage account resources.
objectstorage/v1/containers
Package containers contains functionality for working with Object Storage container resources.
Package containers contains functionality for working with Object Storage container resources.
objectstorage/v1/objects
Package objects contains functionality for working with Object Storage object resources.
Package objects contains functionality for working with Object Storage object resources.
orchestration/v1/apiversions
Package apiversions provides information and interaction with the different API versions for the OpenStack Heat service.
Package apiversions provides information and interaction with the different API versions for the OpenStack Heat service.
orchestration/v1/buildinfo
Package buildinfo provides build information about heat deployments.
Package buildinfo provides build information about heat deployments.
orchestration/v1/stackevents
Package stackevents provides operations for finding, listing, and retrieving stack events.
Package stackevents provides operations for finding, listing, and retrieving stack events.
orchestration/v1/stackresources
Package stackresources provides operations for working with stack resources.
Package stackresources provides operations for working with stack resources.
orchestration/v1/stacks
Package stacks provides operation for working with Heat stacks.
Package stacks provides operation for working with Heat stacks.
orchestration/v1/stacktemplates
Package stacktemplates provides operations for working with Heat templates.
Package stacktemplates provides operations for working with Heat templates.
Package pagination contains utilities and convenience structs that implement common pagination idioms within OpenStack APIs.
Package pagination contains utilities and convenience structs that implement common pagination idioms within OpenStack APIs.
blockstorage/v1/snapshots
Package snapshots provides information and interaction with the snapshot API resource for the Rackspace Block Storage service.
Package snapshots provides information and interaction with the snapshot API resource for the Rackspace Block Storage service.
blockstorage/v1/volumes
Package volumes provides information and interaction with the volume API resource for the Rackspace Block Storage service.
Package volumes provides information and interaction with the volume API resource for the Rackspace Block Storage service.
blockstorage/v1/volumetypes
Package volumetypes provides information and interaction with the volume type API resource for the Rackspace Block Storage service.
Package volumetypes provides information and interaction with the volume type API resource for the Rackspace Block Storage service.
cdn/v1/base
Package base provides information and interaction with the base API resource in the Rackspace CDN service.
Package base provides information and interaction with the base API resource in the Rackspace CDN service.
cdn/v1/flavors
Package flavors provides information and interaction with the flavors API resource in the Rackspace CDN service.
Package flavors provides information and interaction with the flavors API resource in the Rackspace CDN service.
cdn/v1/serviceassets
Package serviceassets provides information and interaction with the serviceassets API resource in the Rackspace CDN service.
Package serviceassets provides information and interaction with the serviceassets API resource in the Rackspace CDN service.
cdn/v1/services
Package services provides information and interaction with the services API resource in the Rackspace CDN service.
Package services provides information and interaction with the services API resource in the Rackspace CDN service.
compute/v2/flavors
Package flavors provides information and interaction with the flavor API resource for the Rackspace Cloud Servers service.
Package flavors provides information and interaction with the flavor API resource for the Rackspace Cloud Servers service.
compute/v2/images
Package images provides information and interaction with the image API resource for the Rackspace Cloud Servers service.
Package images provides information and interaction with the image API resource for the Rackspace Cloud Servers service.
compute/v2/keypairs
Package keypairs provides information and interaction with the keypair API resource for the Rackspace Cloud Servers service.
Package keypairs provides information and interaction with the keypair API resource for the Rackspace Cloud Servers service.
compute/v2/networks
Package networks provides information and interaction with the network API resource for the Rackspace Cloud Servers service.
Package networks provides information and interaction with the network API resource for the Rackspace Cloud Servers service.
compute/v2/servers
Package servers provides information and interaction with the server API resource for the Rackspace Cloud Servers service.
Package servers provides information and interaction with the server API resource for the Rackspace Cloud Servers service.
compute/v2/volumeattach
Package volumeattach provides the ability to attach and detach volume to instances to Rackspace servers
Package volumeattach provides the ability to attach and detach volume to instances to Rackspace servers
identity/v2/extensions
Package extensions provides information and interaction with the all the extensions available for the Rackspace Identity service.
Package extensions provides information and interaction with the all the extensions available for the Rackspace Identity service.
identity/v2/tenants
Package tenants provides information and interaction with the tenant API resource for the Rackspace Identity service.
Package tenants provides information and interaction with the tenant API resource for the Rackspace Identity service.
identity/v2/tokens
Package tokens provides information and interaction with the token API resource for the Rackspace Identity service.
Package tokens provides information and interaction with the token API resource for the Rackspace Identity service.
lb/v1/acl
Package acl provides information and interaction with the access lists feature of the Rackspace Cloud Load Balancer service.
Package acl provides information and interaction with the access lists feature of the Rackspace Cloud Load Balancer service.
lb/v1/lbs
Package lbs provides information and interaction with the Load Balancer API resource for the Rackspace Cloud Load Balancer service.
Package lbs provides information and interaction with the Load Balancer API resource for the Rackspace Cloud Load Balancer service.
lb/v1/monitors
Package monitors provides information and interaction with the Health Monitor API resource for the Rackspace Cloud Load Balancer service.
Package monitors provides information and interaction with the Health Monitor API resource for the Rackspace Cloud Load Balancer service.
lb/v1/nodes
Package nodes provides information and interaction with the Node API resource for the Rackspace Cloud Load Balancer service.
Package nodes provides information and interaction with the Node API resource for the Rackspace Cloud Load Balancer service.
lb/v1/sessions
Package sessions provides information and interaction with the Session Persistence feature of the Rackspace Cloud Load Balancer service.
Package sessions provides information and interaction with the Session Persistence feature of the Rackspace Cloud Load Balancer service.
lb/v1/ssl
Package ssl provides information and interaction with the SSL Termination feature of the Rackspace Cloud Load Balancer service.
Package ssl provides information and interaction with the SSL Termination feature of the Rackspace Cloud Load Balancer service.
lb/v1/throttle
Package throttle provides information and interaction with the Connection Throttling feature of the Rackspace Cloud Load Balancer service.
Package throttle provides information and interaction with the Connection Throttling feature of the Rackspace Cloud Load Balancer service.
lb/v1/vips
Package vips provides information and interaction with the Virtual IP API resource for the Rackspace Cloud Load Balancer service.
Package vips provides information and interaction with the Virtual IP API resource for the Rackspace Cloud Load Balancer service.
networking/v2/security
Package security contains functionality to work with security group and security group rules Neutron resources.
Package security contains functionality to work with security group and security group rules Neutron resources.
objectstorage/v1/accounts
Package accounts provides information and interaction with the account API resource for the Rackspace Cloud Files service.
Package accounts provides information and interaction with the account API resource for the Rackspace Cloud Files service.
objectstorage/v1/bulk
Package bulk provides functionality for working with bulk operations in the Rackspace Cloud Files service.
Package bulk provides functionality for working with bulk operations in the Rackspace Cloud Files service.
objectstorage/v1/cdncontainers
Package cdncontainers provides information and interaction with the CDN Container API resource for the Rackspace Cloud Files service.
Package cdncontainers provides information and interaction with the CDN Container API resource for the Rackspace Cloud Files service.
objectstorage/v1/cdnobjects
Package cdnobjects provides information and interaction with the CDN Object API resource for the Rackspace Cloud Files service.
Package cdnobjects provides information and interaction with the CDN Object API resource for the Rackspace Cloud Files service.
objectstorage/v1/containers
Package containers provides information and interaction with the Container API resource for the Rackspace Cloud Files service.
Package containers provides information and interaction with the Container API resource for the Rackspace Cloud Files service.
objectstorage/v1/objects
Package objects provides information and interaction with the Object API resource for the Rackspace Cloud Files service.
Package objects provides information and interaction with the Object API resource for the Rackspace Cloud Files service.
orchestration/v1/buildinfo
Package buildinfo provides build information about heat deployments.
Package buildinfo provides build information about heat deployments.
orchestration/v1/stackevents
Package stackevents provides operations for finding, listing, and retrieving stack events.
Package stackevents provides operations for finding, listing, and retrieving stack events.
orchestration/v1/stackresources
Package stackresources provides operations for working with stack resources.
Package stackresources provides operations for working with stack resources.
orchestration/v1/stacks
Package stacks provides operation for working with Heat stacks.
Package stacks provides operation for working with Heat stacks.
orchestration/v1/stacktemplates
Package stacktemplates provides operations for working with Heat templates.
Package stacktemplates provides operations for working with Heat templates.
rackconnect/v3
Package rackconnect allows Rackspace cloud accounts to leverage version 3 of RackConnect, Rackspace's hybrid connectivity solution connecting dedicated and cloud servers.
Package rackconnect allows Rackspace cloud accounts to leverage version 3 of RackConnect, Rackspace's hybrid connectivity solution connecting dedicated and cloud servers.
rackconnect/v3/lbpools
Package lbpools provides access to load balancer pools associated with a RackConnect configuration.
Package lbpools provides access to load balancer pools associated with a RackConnect configuration.
Package testhelper container methods that are useful for writing unit tests.
Package testhelper container methods that are useful for writing unit tests.

Jump to

Keyboard shortcuts

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