config

package
v0.0.0-...-e623927 Latest Latest
Warning

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

Go to latest
Published: Mar 1, 2018 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultConfig = Config{
	Remotes:       DefaultRemotes,
	DefaultRemote: "local",
}

DefaultConfig is the default configuration

View Source
var DefaultRemotes = map[string]Remote{
	"images":       ImagesRemote,
	"local":        LocalRemote,
	"ubuntu":       UbuntuRemote,
	"ubuntu-daily": UbuntuDailyRemote,
}

DefaultRemotes is the list of default remotes

View Source
var ImagesRemote = Remote{
	Addr:     "https://images.linuxcontainers.org",
	Public:   true,
	Protocol: "simplestreams",
}

ImagesRemote is the community image server (over simplestreams)

View Source
var LocalRemote = Remote{
	Addr:   "unix://",
	Static: true,
	Public: false,
}

LocalRemote is the default local remote (over the LXD unix socket)

View Source
var StaticRemotes = map[string]Remote{
	"local":        LocalRemote,
	"ubuntu":       UbuntuRemote,
	"ubuntu-daily": UbuntuDailyRemote,
}

StaticRemotes is the list of remotes which can't be removed

View Source
var UbuntuDailyRemote = Remote{
	Addr:     "https://cloud-images.ubuntu.com/daily",
	Static:   true,
	Public:   true,
	Protocol: "simplestreams",
}

UbuntuDailyRemote is the Ubuntu daily image server (over simplestreams)

View Source
var UbuntuRemote = Remote{
	Addr:     "https://cloud-images.ubuntu.com/releases",
	Static:   true,
	Public:   true,
	Protocol: "simplestreams",
}

UbuntuRemote is the Ubuntu image server (over simplestreams)

Functions

This section is empty.

Types

type Config

type Config struct {
	// DefaultRemote holds the remote daemon name from the Remotes map
	// that the client should communicate with by default
	DefaultRemote string `yaml:"default-remote"`

	// Remotes defines a map of remote daemon names to the details for
	// communication with the named daemon
	Remotes map[string]Remote `yaml:"remotes"`

	// Command line aliases for `lxc`
	Aliases map[string]string `yaml:"aliases"`

	// Configuration directory
	ConfigDir string `yaml:"-"`

	// The UserAgent to pass for all queries
	UserAgent string `yaml:"-"`
	// contains filtered or unexported fields
}

Config holds settings to be used by a client or daemon

func LoadConfig

func LoadConfig(path string) (*Config, error)

LoadConfig reads the configuration from the config path; if the path does not exist, it returns a default configuration.

func NewConfig

func NewConfig(configDir string, defaults bool) *Config

NewConfig returns a Config, optionally using default remotes.

func (*Config) ConfigPath

func (c *Config) ConfigPath(paths ...string) string

ConfigPath returns a joined path of the configuration directory and passed arguments

func (*Config) GenerateClientCertificate

func (c *Config) GenerateClientCertificate() error

GenerateClientCertificate will generate the needed client.crt and client.key if needed

func (*Config) GetContainerServer

func (c *Config) GetContainerServer(name string) (lxd.ContainerServer, error)

GetContainerServer returns a ContainerServer struct for the remote

func (*Config) GetImageServer

func (c *Config) GetImageServer(name string) (lxd.ImageServer, error)

GetImageServer returns a ImageServer struct for the remote

func (*Config) HasClientCertificate

func (c *Config) HasClientCertificate() bool

HasClientCertificate will return true if a client certificate has already been generated

func (*Config) ParseRemote

func (c *Config) ParseRemote(raw string) (string, string, error)

ParseRemote splits remote and object

func (*Config) SaveConfig

func (c *Config) SaveConfig(path string) error

SaveConfig writes the provided configuration to the config file.

func (*Config) SaveCookies

func (c *Config) SaveCookies()

SaveCookies saves cookies to file

func (*Config) ServerCertPath

func (c *Config) ServerCertPath(remote string) string

ServerCertPath returns the path for the remote's server certificate

func (*Config) SetAuthInteractor

func (c *Config) SetAuthInteractor(interactor httpbakery.Interactor)

SetAuthInteractor sets the interactor for macaroon-based authorization

type Remote

type Remote struct {
	Addr     string `yaml:"addr"`
	Public   bool   `yaml:"public"`
	Protocol string `yaml:"protocol,omitempty"`
	AuthType string `yaml:"auth_type,omitempty"`
	Static   bool   `yaml:"-"`
}

Remote holds details for communication with a remote daemon

Jump to

Keyboard shortcuts

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