remote

package
v0.9.0-beta1 Latest Latest
Warning

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

Go to latest
Published: Feb 15, 2017 License: MPL-2.0 Imports: 52 Imported by: 0

Documentation

Index

Constants

View Source
const ARTIF_TFSTATE_NAME = "terraform.tfstate"
View Source
const DEFAULT_OBJECT_NAME = "terraform.tfstate"
View Source
const TFSTATE_NAME = "tfstate.tf"

Variables

View Source
var BuiltinClients = map[string]Factory{
	"artifactory": artifactoryFactory,
	"atlas":       atlasFactory,
	"azure":       azureFactory,
	"etcd":        etcdFactory,
	"gcs":         gcsFactory,
	"http":        httpFactory,
	"local":       fileFactory,
	"s3":          s3Factory,
	"swift":       swiftFactory,
	"manta":       mantaFactory,
}

BuiltinClients is the list of built-in clients that can be used with NewClient.

Functions

func TestClient added in v0.9.0

func TestClient(t *testing.T, c Client)

TestClient is a generic function to test any client.

func TestRemoteLocks added in v0.9.0

func TestRemoteLocks(t *testing.T, a, b Client)

Test the lock implementation for a remote.Client. This test requires 2 client instances, in oder to have multiple remote clients since some implementations may tie the client to the lock, or may have reentrant locks.

Types

type ArtifactoryClient added in v0.6.9

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

func (*ArtifactoryClient) Delete added in v0.6.9

func (c *ArtifactoryClient) Delete() error

func (*ArtifactoryClient) Get added in v0.6.9

func (c *ArtifactoryClient) Get() (*Payload, error)

func (*ArtifactoryClient) Put added in v0.6.9

func (c *ArtifactoryClient) Put(data []byte) error

type AtlasClient

type AtlasClient struct {
	Server      string
	ServerURL   *url.URL
	User        string
	Name        string
	AccessToken string
	RunId       string
	HTTPClient  *retryablehttp.Client
	// contains filtered or unexported fields
}

AtlasClient implements the Client interface for an Atlas compatible server.

func (*AtlasClient) Delete

func (c *AtlasClient) Delete() error

func (*AtlasClient) Get

func (c *AtlasClient) Get() (*Payload, error)

func (*AtlasClient) Put

func (c *AtlasClient) Put(state []byte) error

type AzureClient added in v0.7.0

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

func (*AzureClient) Delete added in v0.7.0

func (c *AzureClient) Delete() error

func (*AzureClient) Get added in v0.7.0

func (c *AzureClient) Get() (*Payload, error)

func (*AzureClient) Put added in v0.7.0

func (c *AzureClient) Put(data []byte) error

type Client

type Client interface {
	Get() (*Payload, error)
	Put([]byte) error
	Delete() error
}

Client is the interface that must be implemented for a remote state driver. It supports dumb put/get/delete, and the higher level structs handle persisting the state properly here.

func NewClient

func NewClient(t string, conf map[string]string) (Client, error)

NewClient returns a new Client with the given type and configuration. The client is looked up in the BuiltinClients variable.

type ClientLocker added in v0.9.0

type ClientLocker interface {
	Client
	state.Locker
}

ClientLocker is an optional interface that allows a remote state backend to enable state lock/unlock.

type EtcdClient added in v0.6.5

type EtcdClient struct {
	Client etcdapi.Client
	Path   string
}

EtcdClient is a remote client that stores data in etcd.

func (*EtcdClient) Delete added in v0.6.5

func (c *EtcdClient) Delete() error

func (*EtcdClient) Get added in v0.6.5

func (c *EtcdClient) Get() (*Payload, error)

func (*EtcdClient) Put added in v0.6.5

func (c *EtcdClient) Put(data []byte) error

type Factory

type Factory func(map[string]string) (Client, error)

Factory is the factory function to create a remote client.

type FileClient

type FileClient struct {
	Path string
}

FileClient is a remote client that stores data locally on disk. This is only used for development reasons to test remote state... locally.

func (*FileClient) Delete

func (c *FileClient) Delete() error

func (*FileClient) Get

func (c *FileClient) Get() (*Payload, error)

func (*FileClient) Put

func (c *FileClient) Put(data []byte) error

type GCSClient added in v0.7.0

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

func (*GCSClient) Delete added in v0.7.0

func (c *GCSClient) Delete() error

func (*GCSClient) Get added in v0.7.0

func (c *GCSClient) Get() (*Payload, error)

func (*GCSClient) Put added in v0.7.0

func (c *GCSClient) Put(data []byte) error

type HTTPClient

type HTTPClient struct {
	URL      *url.URL
	Client   *http.Client
	Username string
	Password string
}

HTTPClient is a remote client that stores data in Consul or HTTP REST.

func (*HTTPClient) Delete

func (c *HTTPClient) Delete() error

func (*HTTPClient) Get

func (c *HTTPClient) Get() (*Payload, error)

func (*HTTPClient) Put

func (c *HTTPClient) Put(data []byte) error

type InmemClient

type InmemClient struct {
	Data []byte
	MD5  []byte
}

InmemClient is a Client implementation that stores data in memory.

func (*InmemClient) Delete

func (c *InmemClient) Delete() error

func (*InmemClient) Get

func (c *InmemClient) Get() (*Payload, error)

func (*InmemClient) Put

func (c *InmemClient) Put(data []byte) error

type MantaClient added in v0.7.4

type MantaClient struct {
	Client     *manta.Client
	Path       string
	ObjectName string
}

func (*MantaClient) Delete added in v0.7.4

func (c *MantaClient) Delete() error

func (*MantaClient) Get added in v0.7.4

func (c *MantaClient) Get() (*Payload, error)

func (*MantaClient) Put added in v0.7.4

func (c *MantaClient) Put(data []byte) error

type Payload

type Payload struct {
	MD5  []byte
	Data []byte
}

Payload is the return value from the remote state storage.

type S3Client added in v0.5.0

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

func (*S3Client) Delete added in v0.5.0

func (c *S3Client) Delete() error

func (*S3Client) Get added in v0.5.0

func (c *S3Client) Get() (*Payload, error)

func (*S3Client) Lock added in v0.9.0

func (c *S3Client) Lock(info *state.LockInfo) (string, error)

func (*S3Client) Put added in v0.5.0

func (c *S3Client) Put(data []byte) error

func (*S3Client) Unlock added in v0.9.0

func (c *S3Client) Unlock(id string) error

type State

type State struct {
	Client Client
	// contains filtered or unexported fields
}

State implements the State interfaces in the state package to handle reading and writing the remote state. This State on its own does no local caching so every persist will go to the remote storage and local writes will go to memory.

func (*State) Lock added in v0.9.0

func (s *State) Lock(info *state.LockInfo) (string, error)

Lock calls the Client's Lock method if it's implemented.

func (*State) PersistState

func (s *State) PersistState() error

StatePersister impl.

func (*State) RefreshState

func (s *State) RefreshState() error

StateRefresher impl.

func (*State) State

func (s *State) State() *terraform.State

StateReader impl.

func (*State) Unlock added in v0.9.0

func (s *State) Unlock(id string) error

Unlock calls the Client's Unlock method if it's implemented.

func (*State) WriteState

func (s *State) WriteState(state *terraform.State) error

StateWriter impl.

type SwiftClient added in v0.6.0

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

SwiftClient implements the Client interface for an Openstack Swift server.

func (*SwiftClient) Delete added in v0.6.0

func (c *SwiftClient) Delete() error

func (*SwiftClient) Get added in v0.6.0

func (c *SwiftClient) Get() (*Payload, error)

func (*SwiftClient) Put added in v0.6.0

func (c *SwiftClient) Put(data []byte) error

Jump to

Keyboard shortcuts

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