configstore

package
v0.0.0-...-f19ae85 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2015 License: AGPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Default = func() (Storage, error) {
	return NewDisk(osenv.JujuHome())
}

Default returns disk-based environment config storage rooted at JujuHome.

View Source
var DefaultAdminUsername = "admin"

DefaultAdminUsername is used as the username to connect as in the absense of any explicit username being defined in the config store.

View Source
var ErrEnvironInfoAlreadyExists = errors.New("environment info already exists")

Functions

This section is empty.

Types

type APICredentials

type APICredentials struct {
	// User holds the name of the user to connect as.
	User     string
	Password string
}

APICredentials hold credentials for connecting to an API endpoint.

type APIEndpoint

type APIEndpoint struct {
	// APIAddress holds a list of API addresses. It may not be
	// current, and it will be empty if the environment has not been
	// bootstrapped.
	Addresses []string

	// Hostnames holds a list of API addresses which may contain
	// unresolved hostnames. It's used to compare more recent API
	// addresses before resolving hostnames to determine if the cached
	// addresses have changed and therefore perform (a possibly slow)
	// local DNS resolution before comparing them against Addresses.
	Hostnames []string

	// CACert holds the CA certificate that
	// signed the API server's key.
	CACert string

	// EnvironUUID holds the UUID for the environment we are connecting to.
	// This may be empty if the environment has not been bootstrapped.
	EnvironUUID string
}

APIEndpoint holds information about an API endpoint.

type EnvironInfo

type EnvironInfo interface {
	// Initialized returns whether the environment information has
	// been initialized. It will return true for EnvironInfo instances
	// that have been created but not written.
	Initialized() bool

	// BootstrapConfig returns the configuration attributes
	// that an environment will be bootstrapped with.
	BootstrapConfig() map[string]interface{}

	// APIEndpoint returns the current API endpoint information.
	APIEndpoint() APIEndpoint

	// APICredentials returns the current API credentials.
	APICredentials() APICredentials

	// SetBootstrapConfig sets the configuration attributes
	// to be used for bootstrapping.
	// This method may only be called on an EnvironInfo
	// obtained using ConfigStorage.CreateInfo.
	SetBootstrapConfig(map[string]interface{})

	// SetAPIEndpoint sets the API endpoint information
	// currently associated with the environment.
	SetAPIEndpoint(APIEndpoint)

	// SetAPICreds sets the API credentials currently
	// associated with the environment.
	SetAPICredentials(APICredentials)

	// Location returns the location of the source of the environment
	// information in a human readable format.
	Location() string

	// Write writes the current information to persistent storage. A
	// subsequent call to ConfigStorage.ReadInfo can retrieve it. After this
	// call succeeds, Initialized will return true.
	// It return ErrAlreadyExists if the EnvironInfo is not yet Initialized
	// and the EnvironInfo has been written before.
	Write() error

	// Destroy destroys the information associated with
	// the environment.
	Destroy() error
}

EnvironInfo holds information associated with an environment.

type EnvironInfoData

type EnvironInfoData struct {
	User            string
	Password        string
	EnvironUUID     string                 `json:"environ-uuid,omitempty" yaml:"environ-uuid,omitempty"`
	StateServers    []string               `json:"state-servers" yaml:"state-servers"`
	ServerHostnames []string               `json:"server-hostnames,omitempty" yaml:"server-hostnames,omitempty"`
	CACert          string                 `json:"ca-cert" yaml:"ca-cert"`
	Config          map[string]interface{} `json:"bootstrap-config,omitempty" yaml:"bootstrap-config,omitempty"`
}

EnvironInfoData is the serialisation structure for the original JENV file.

type Storage

type Storage interface {
	// ReadInfo reads information associated with
	// the environment with the given name.
	// If there is no such information, it will
	// return an errors.NotFound error.
	ReadInfo(envName string) (EnvironInfo, error)

	// CreateInfo creates some uninitialized information associated
	// with the environment with the given name.
	CreateInfo(envName string) EnvironInfo

	// List returns a slice of existing environment names that the Storage
	// knows about.
	List() ([]string, error)
}

Storage stores environment configuration data.

func NewDisk

func NewDisk(dir string) (Storage, error)

NewDisk returns a ConfigStorage implementation that stores configuration in the given directory. The parent of the directory must already exist; the directory itself is created if it doesn't already exist.

func NewMem

func NewMem() Storage

NewMem returns a ConfigStorage implementation that stores configuration in memory.

Jump to

Keyboard shortcuts

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