Documentation
¶
Index ¶
- Constants
- Variables
- func GenerateMacAddress() string
- func NewDefaultRuncmd() []string
- type Client
- type ClientImpl
- func (s *ClientImpl) CreateCloudinit(ctx context.Context, params CreateCloudinitParams) error
- func (s *ClientImpl) CreateCloudinitByReader(ctx context.Context, params CreateCloudinitByReaderParams) error
- func (s *ClientImpl) CreateDomain(ctx context.Context, domain Domain) error
- func (s *ClientImpl) CreateImage(ctx context.Context, params CreateImageParams) error
- func (s *ClientImpl) DeleteDomain(ctx context.Context, domainID string) error
- func (s *ClientImpl) GetDomain(ctx context.Context, domainID string) (Domain, error)
- func (s *ClientImpl) GetDomainMonitor(ctx context.Context, domainID string) (DomainMonitor, error)
- func (s *ClientImpl) GetPrivateIP(ctx context.Context, domainID string) (string, error)
- func (s *ClientImpl) ListDomains(ctx context.Context, params ListDomainsParams) ([]Domain, error)
- func (s *ClientImpl) RemoveImage(ctx context.Context, imgPath string) error
- func (s *ClientImpl) StartDomain(ctx context.Context, domainID string) error
- func (s *ClientImpl) StopDomain(ctx context.Context, domainID string) error
- func (s *ClientImpl) UpdateDomain(ctx context.Context, domainID string, params UpdateDomainParams) error
- func (s *ClientImpl) WriteCloudinit(ctx context.Context, userdata io.Reader, metadata io.Reader, ...) error
- type Cpu
- type CreateCloudinitByReaderParams
- type CreateCloudinitParams
- type CreateImageParams
- type Domain
- type DomainMonitor
- type DomainNetwork
- type Ethernet
- type ListDomainsParams
- type Match
- type Memory
- type Metadata
- type Network
- type NetworkConfig
- type OS
- type Status
- type Unit
- type UpdateDomainParams
- type User
- type Userdata
Constants ¶
View Source
const (
QemuConnect = "qemu:///system"
)
Variables ¶
View Source
var (
ErrDomainNotFound = errors.New("domain not found")
)
Functions ¶
func GenerateMacAddress ¶
func GenerateMacAddress() string
func NewDefaultRuncmd ¶
func NewDefaultRuncmd() []string
Types ¶
type Client ¶
type Client interface {
// CLOUDINIT
CreateCloudinit(ctx context.Context, params CreateCloudinitParams) error
CreateCloudinitByReader(ctx context.Context, params CreateCloudinitByReaderParams) error
WriteCloudinit(ctx context.Context, userdata io.Reader, metadata io.Reader, networkConfig io.Reader, cloudinitFile io.Writer) error
// DOMAIN
GetDomain(ctx context.Context, domainID string) (Domain, error)
GetDomainMonitor(ctx context.Context, domainID string) (DomainMonitor, error)
ListDomains(ctx context.Context, params ListDomainsParams) ([]Domain, error)
CreateDomain(ctx context.Context, domain Domain) error
UpdateDomain(ctx context.Context, domainID string, params UpdateDomainParams) error
DeleteDomain(ctx context.Context, domainID string) error
StartDomain(ctx context.Context, domainID string) error
StopDomain(ctx context.Context, domainID string) error
GetPrivateIP(ctx context.Context, domainID string) (string, error)
// QEMU
CreateImage(ctx context.Context, params CreateImageParams) error
}
type ClientImpl ¶
type ClientImpl struct {
// contains filtered or unexported fields
}
func (*ClientImpl) CreateCloudinit ¶
func (s *ClientImpl) CreateCloudinit(ctx context.Context, params CreateCloudinitParams) error
func (*ClientImpl) CreateCloudinitByReader ¶
func (s *ClientImpl) CreateCloudinitByReader(ctx context.Context, params CreateCloudinitByReaderParams) error
func (*ClientImpl) CreateDomain ¶
func (s *ClientImpl) CreateDomain(ctx context.Context, domain Domain) error
CreateDomain creates a new domain in libvirt
Supports rollback operation, safe to use in anywhere, anytime
func (*ClientImpl) CreateImage ¶
func (s *ClientImpl) CreateImage(ctx context.Context, params CreateImageParams) error
func (*ClientImpl) DeleteDomain ¶
func (s *ClientImpl) DeleteDomain(ctx context.Context, domainID string) error
DeleteDomain removes the domain from libvirt
Does not support rollback operation so it should done last
func (*ClientImpl) GetDomainMonitor ¶
func (s *ClientImpl) GetDomainMonitor(ctx context.Context, domainID string) (DomainMonitor, error)
func (*ClientImpl) GetPrivateIP ¶
func (*ClientImpl) ListDomains ¶
func (s *ClientImpl) ListDomains(ctx context.Context, params ListDomainsParams) ([]Domain, error)
func (*ClientImpl) RemoveImage ¶
func (s *ClientImpl) RemoveImage(ctx context.Context, imgPath string) error
func (*ClientImpl) StartDomain ¶
func (s *ClientImpl) StartDomain(ctx context.Context, domainID string) error
func (*ClientImpl) StopDomain ¶
func (s *ClientImpl) StopDomain(ctx context.Context, domainID string) error
func (*ClientImpl) UpdateDomain ¶
func (s *ClientImpl) UpdateDomain(ctx context.Context, domainID string, params UpdateDomainParams) error
type CreateCloudinitParams ¶
type CreateCloudinitParams struct {
Filepath string
Userdata Userdata
Metadata Metadata
NetworkConfig NetworkConfig
}
type CreateImageParams ¶
type Domain ¶
type Domain struct {
ID string
Name string
Memory Memory
Cpu Cpu
OS OS
Storage uint
Network DomainNetwork
}
func (Domain) BaseFileName ¶
func (Domain) BaseImagePath ¶
func (Domain) CloudinitFileName ¶
func (Domain) CloudinitPath ¶
func (Domain) VMFileName ¶
func (Domain) VMImagePath ¶
type DomainMonitor ¶
type DomainNetwork ¶
type DomainNetwork struct {
MacAddress string
}
type ListDomainsParams ¶
type ListDomainsParams struct {
Flags libvirt.ConnectListAllDomainsFlags
}
type Metadata ¶
type Metadata struct {
InstanceID string `json:"instance-id" yaml:"instance-id"`
LocalHostname string `json:"local-hostname" yaml:"local-hostname"`
}
func NewDefaultMetadata ¶
func NewDefaultMetadata() Metadata
type NetworkConfig ¶
type NetworkConfig struct {
Network Network `json:"network" yaml:"network"`
}
func NewDefaultNetworkConfig ¶
func NewDefaultNetworkConfig() NetworkConfig
type UpdateDomainParams ¶
type User ¶
type User struct {
Name string `json:"name,omitempty" yaml:"name,omitempty"`
SSHAuthorizedKeys []string `json:"ssh-authorized-keys,omitempty" yaml:"ssh-authorized-keys,omitempty"`
Passwd string `json:"passwd,omitempty" yaml:"passwd,omitempty"`
LockPasswd bool `json:"lock_passwd" yaml:"lock_passwd"`
Groups string `json:"groups,omitempty" yaml:"groups,omitempty"`
Sudo string `json:"sudo,omitempty" yaml:"sudo,omitempty"`
Shell string `json:"shell,omitempty" yaml:"shell,omitempty"`
}
func NewDefaultUser ¶
func NewDefaultUser() User
Click to show internal directories.
Click to hide internal directories.