vsphere

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: Apr 10, 2018 License: MPL-2.0 Imports: 50 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrNoSuchKeyFound is an error primarily thrown by the Read method of the resource.
	// The error doesn't display the key itself for security reasons.
	ErrNoSuchKeyFound = errors.New("The key was not found")
	// ErrKeyCannotBeDeleted is an error which occurs when a key that is used by VMs is
	// being removed
	ErrKeyCannotBeDeleted = errors.New("The key wasn't deleted")
)

Functions

func DecodeError added in v0.2.0

func DecodeError(info types.LicenseManagerLicenseInfo) error

DecodeError tries to find a specific error which occurs when an invalid key is passed to the server

func Provider

func Provider() terraform.ResourceProvider

Provider returns a terraform.ResourceProvider.

func UpdateLabel added in v0.2.0

func UpdateLabel(ctx context.Context, m *license.Manager, licenseKey string, key string, val string) error

UpdateLabel provides a wrapper around the UpdateLabel data objects

Types

type Config

type Config struct {
	InsecureFlag    bool
	Debug           bool
	Persist         bool
	User            string
	Password        string
	VSphereServer   string
	DebugPath       string
	DebugPathRun    string
	VimSessionPath  string
	RestSessionPath string
}

Config holds the provider configuration, and delivers a populated VSphereClient based off the contained settings.

func NewConfig added in v1.4.0

func NewConfig(d *schema.ResourceData) (*Config, error)

NewConfig returns a new Config from a supplied ResourceData.

func (*Config) Client

func (c *Config) Client() (*VSphereClient, error)

Client returns a new client for accessing VMWare vSphere.

func (*Config) EnableDebug

func (c *Config) EnableDebug() error

EnableDebug turns on govmomi API operation logging, if appropriate settings are set on the provider.

func (*Config) LoadRestClient added in v1.4.0

func (c *Config) LoadRestClient(ctx context.Context, u *url.URL) (*tags.RestClient, bool, error)

LoadRestClient loads a saved vSphere REST API session from disk, previously saved by SaveRestClient, checking it for validity before returning it. If it's not valid, false is returned as the third return value, but the client can still be technically used for logging in by calling Login on the client.

func (*Config) LoadVimClient added in v1.4.0

func (c *Config) LoadVimClient() (*govmomi.Client, error)

LoadVimClient loads a saved vSphere SOAP API session from disk, previously saved by SaveVimClient, checking it for validity before returning it. A nil client means that the session is no longer valid and should be created from scratch.

Note the logic in this function has been largely adapted from govc and is designed to be compatible with it - if a session has already been saved with govc, Terraform will attempt to use that session first.

func (*Config) SaveRestClient added in v1.4.0

func (c *Config) SaveRestClient(client *tags.RestClient) error

SaveRestClient saves the REST client session ID to the supplied path. This facilitates re-use of the session at a later date.

func (*Config) SaveVimClient added in v1.4.0

func (c *Config) SaveVimClient(client *govmomi.Client) error

SaveVimClient saves a client to the supplied path. This facilitates re-use of the session at a later date.

Note the logic in this function has been largely adapted from govc and is designed to be compatible with it.

func (*Config) SavedRestSessionOrNew added in v1.4.0

func (c *Config) SavedRestSessionOrNew(u *url.URL) (*tags.RestClient, error)

SavedRestSessionOrNew either loads a saved REST session from disk, or creates a new one.

func (*Config) SavedVimSessionOrNew added in v1.4.0

func (c *Config) SavedVimSessionOrNew(u *url.URL) (*govmomi.Client, error)

SavedVimSessionOrNew either loads a saved SOAP session from disk, or creates a new one.

type VSphereClient added in v0.4.0

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

VSphereClient is the client connection manager for the vSphere provider. It holds the connections to the various API endpoints we need to interface with, such as the VMODL API through govmomi, and the REST SDK through alternate libraries.

func (*VSphereClient) TagsClient added in v0.4.0

func (c *VSphereClient) TagsClient() (*tags.RestClient, error)

TagsClient returns the embedded REST client used for tags, after determining if the connection is eligible:

* The connection information in vimClient is valid vCenter connection * The provider has a connection to the CIS REST client. This is true if tagsClient != nil.

This function should be used whenever possible to return the client from the provider meta variable for use, to determine if it can be used at all.

The nil value that is returned on an unsupported connection can be considered stable behavior for read purposes on resources that need to be able to read tags if they are present. You can use the snippet below in a Read call to determine if tags are supported on this connection, and if they are, read them from the object and save them in the resource:

if tagsClient, _ := meta.(*VSphereClient).TagsClient(); tagsClient != nil {
  if err := readTagsForResource(tagsClient, obj, d); err != nil {
    return err
  }
}

Source Files

Jump to

Keyboard shortcuts

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