settings

package
v2.1.2+incompatible Latest Latest
Warning

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

Go to latest
Published: Jul 28, 2017 License: Apache-2.0 Imports: 7 Imported by: 242

Documentation

Index

Constants

View Source
const (
	RootUsername        = "root"
	VCAPUsername        = "vcap"
	AdminGroup          = "admin"
	SudoersGroup        = "bosh_sudoers"
	SshersGroup         = "bosh_sshers"
	EphemeralUserPrefix = "bosh_"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Blobstore

type Blobstore struct {
	Type    string                 `json:"provider"`
	Options map[string]interface{} `json:"options"`
}

type BoshEnv

type BoshEnv struct {
	Password              string   `json:"password"`
	KeepRootPassword      bool     `json:"keep_root_password"`
	RemoveDevTools        bool     `json:"remove_dev_tools"`
	RemoveStaticLibraries bool     `json:"remove_static_libraries"`
	AuthorizedKeys        []string `json:"authorized_keys"`
	SwapSizeInMB          *uint64  `json:"swap_size"`
	Mbus                  struct {
		Cert CertKeyPair `json:"cert"`
	} `json:"mbus"`

	IPv6 IPv6 `json:"ipv6"`
}

type CertKeyPair

type CertKeyPair struct {
	PrivateKey  string `json:"private_key"`
	Certificate string `json:"certificate"`
}

type DNSRecords

type DNSRecords struct {
	Version uint64      `json:"Version"`
	Records [][2]string `json:"records"`
}

type DefaultNetworkResolver

type DefaultNetworkResolver interface {
	// Ideally we would find a network based on a MAC address
	// but current CPI implementations do not include it
	GetDefaultNetwork() (Network, error)
}

type DiskAssociation

type DiskAssociation struct {
	Name    string `json:"name"`
	DiskCID string `json:"cid"`
}

type DiskAssociations

type DiskAssociations struct {
	Associations []DiskAssociation `json:"disk_associations"`
}

type DiskSettings

type DiskSettings struct {
	ID             string
	DeviceID       string
	VolumeID       string
	Lun            string
	HostDeviceID   string
	Path           string
	FileSystemType disk.FileSystemType
}

type Disks

type Disks struct {
	// e.g "/dev/sda", "1"
	System string `json:"system"`

	// Older CPIs returned disk settings as string
	// e.g "/dev/sdb", "2"
	// Newer CPIs will populate it in a hash
	// e.g {"path" => "/dev/sdc", "volume_id" => "3"}
	//     {"lun" => "0", "host_device_id" => "{host-device-id}"}
	Ephemeral interface{} `json:"ephemeral"`

	// Older CPIs returned disk settings as strings
	// e.g {"disk-3845-43758-7243-38754" => "/dev/sdc"}
	//     {"disk-3845-43758-7243-38754" => "3"}
	// Newer CPIs will populate it in a hash:
	// e.g {"disk-3845-43758-7243-38754" => {"path" => "/dev/sdc"}}
	//     {"disk-3845-43758-7243-38754" => {"volume_id" => "3"}}
	//     {"disk-3845-43758-7243-38754" => {"lun" => "0", "host_device_id" => "{host-device-id}"}}
	Persistent map[string]interface{} `json:"persistent"`

	RawEphemeral []DiskSettings `json:"raw_ephemeral"`
}

type Env

type Env struct {
	Bosh             BoshEnv             `json:"bosh"`
	PersistentDiskFS disk.FileSystemType `json:"persistent_disk_fs"`
}

func (Env) GetAuthorizedKeys

func (e Env) GetAuthorizedKeys() []string

func (Env) GetKeepRootPassword

func (e Env) GetKeepRootPassword() bool

func (Env) GetPassword

func (e Env) GetPassword() string

func (Env) GetRemoveDevTools

func (e Env) GetRemoveDevTools() bool

func (Env) GetRemoveStaticLibraries

func (e Env) GetRemoveStaticLibraries() bool

func (Env) GetSwapSizeInBytes

func (e Env) GetSwapSizeInBytes() *uint64

type IPv6

type IPv6 struct {
	Enable bool `json:"enable"`
}

type Network

type Network struct {
	Type NetworkType `json:"type"`

	IP       string `json:"ip"`
	Netmask  string `json:"netmask"`
	Gateway  string `json:"gateway"`
	Resolved bool   `json:"resolved"` // was resolved via DHCP
	UseDHCP  bool   `json:"use_dhcp"`

	Default []string `json:"default"`
	DNS     []string `json:"dns"`

	Mac string `json:"mac"`

	Preconfigured bool `json:"preconfigured"`
}

func (Network) IsDHCP

func (n Network) IsDHCP() bool

func (Network) IsDefaultFor

func (n Network) IsDefaultFor(category string) bool

func (Network) IsVIP

func (n Network) IsVIP() bool

func (Network) String

func (n Network) String() string

type NetworkType

type NetworkType string
const (
	NetworkTypeDynamic NetworkType = "dynamic"
	NetworkTypeVIP     NetworkType = "vip"
)

type Networks

type Networks map[string]Network

func (Networks) DefaultIP

func (n Networks) DefaultIP() (ip string, found bool)

func (Networks) DefaultNetworkFor

func (n Networks) DefaultNetworkFor(category string) (Network, bool)

func (Networks) IPs

func (n Networks) IPs() (ips []string)

func (Networks) IsPreconfigured

func (n Networks) IsPreconfigured() bool

func (Networks) NetworkForMac

func (n Networks) NetworkForMac(mac string) (Network, bool)

type Service

type Service interface {
	LoadSettings() error

	// GetSettings does not return error because without settings Agent cannot start.
	GetSettings() Settings

	PublicSSHKeyForUsername(string) (string, error)

	InvalidateSettings() error
}

func NewService

func NewService(
	fs boshsys.FileSystem,
	settingsPath string,
	settingsSource Source,
	defaultNetworkResolver DefaultNetworkResolver,
	logger boshlog.Logger,
) (service Service)

type Settings

type Settings struct {
	AgentID   string    `json:"agent_id"`
	Blobstore Blobstore `json:"blobstore"`
	Disks     Disks     `json:"disks"`
	Env       Env       `json:"env"`
	Networks  Networks  `json:"networks"`
	Ntp       []string  `json:"ntp"`
	Mbus      string    `json:"mbus"`
	VM        VM        `json:"vm"`
}

func (Settings) EphemeralDiskSettings

func (s Settings) EphemeralDiskSettings() DiskSettings

func (Settings) PersistentDiskSettings

func (s Settings) PersistentDiskSettings(diskID string) (DiskSettings, bool)

func (Settings) RawEphemeralDiskSettings

func (s Settings) RawEphemeralDiskSettings() (devices []DiskSettings)

type Source

type Source interface {
	PublicSSHKeyForUsername(string) (string, error)
	Settings() (Settings, error)
}

type UpdateSettings

type UpdateSettings struct {
	DiskAssociations []DiskAssociation `json:"disk_associations"`
	TrustedCerts     string            `json:"trusted_certs"`
}

type VM

type VM struct {
	Name string `json:"name"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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