qemu

package
v4.1.2 Latest Latest
Warning

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

Go to latest
Published: Jun 10, 2022 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// FCOS streams
	// Testing FCOS stream
	Testing string = "testing"
	// Next FCOS stream
	Next string = "next"
	// Stable FCOS stream
	Stable string = "stable"
)
View Source
const (
	VolumeTypeVirtfs = "virtfs"
	MountType9p      = "9p"
)

Variables

View Source
var (
	QemuCommand = "qemu-system-x86_64"
)

Functions

func GetQemuProvider

func GetQemuProvider() machine.Provider

Types

type MachineVM

type MachineVM struct {
	// ConfigPath is the path to the configuration file
	ConfigPath machine.VMFile
	// The command line representation of the qemu command
	CmdLine []string
	// HostUser contains info about host user
	machine.HostUser
	// ImageConfig describes the bootable image
	machine.ImageConfig
	// Mounts is the list of remote filesystems to mount
	Mounts []machine.Mount
	// Name of VM
	Name string
	// PidFilePath is the where the PID file lives
	PidFilePath machine.VMFile
	// QMPMonitor is the qemu monitor object for sending commands
	QMPMonitor Monitor
	// ReadySocket tells host when vm is booted
	ReadySocket machine.VMFile
	// ResourceConfig is physical attrs of the VM
	machine.ResourceConfig
	// SSHConfig for accessing the remote vm
	machine.SSHConfig
	// Starting tells us whether the machine is running or if we have just dialed it to start it
	Starting bool
	// Created contains the original created time instead of querying the file mod time
	Created time.Time
	// LastUp contains the last recorded uptime
	LastUp time.Time
}

func (*MachineVM) Init

func (v *MachineVM) Init(opts machine.InitOptions) (bool, error)

Init writes the json configuration file to the filesystem for other verbs (start, stop)

func (*MachineVM) Inspect

func (v *MachineVM) Inspect() (*machine.InspectInfo, error)

Inspect returns verbose detail about the machine

func (*MachineVM) Remove

func (v *MachineVM) Remove(_ string, opts machine.RemoveOptions) (string, func() error, error)

Remove deletes all the files associated with a machine including ssh keys, the image itself

func (*MachineVM) SSH

func (v *MachineVM) SSH(_ string, opts machine.SSHOptions) error

SSH opens an interactive SSH session to the vm specified. Added ssh function to VM interface: pkg/machine/config/go : line 58

func (*MachineVM) Set

func (v *MachineVM) Set(_ string, opts machine.SetOptions) ([]error, error)

func (*MachineVM) Start

func (v *MachineVM) Start(name string, _ machine.StartOptions) error

Start executes the qemu command line and forks it

func (*MachineVM) State

func (v *MachineVM) State(bypass bool) (machine.Status, error)

func (*MachineVM) Stop

func (v *MachineVM) Stop(_ string, _ machine.StopOptions) error

Stop uses the qmp monitor to call a system_powerdown

type MachineVMV1 deprecated

type MachineVMV1 struct {
	// CPUs to be assigned to the VM
	CPUs uint64
	// The command line representation of the qemu command
	CmdLine []string
	// Mounts is the list of remote filesystems to mount
	Mounts []machine.Mount
	// IdentityPath is the fq path to the ssh priv key
	IdentityPath string
	// IgnitionFilePath is the fq path to the .ign file
	IgnitionFilePath string
	// ImageStream is the update stream for the image
	ImageStream string
	// ImagePath is the fq path to
	ImagePath string
	// Memory in megabytes assigned to the vm
	Memory uint64
	// Disk size in gigabytes assigned to the vm
	DiskSize uint64
	// Name of the vm
	Name string
	// SSH port for user networking
	Port int
	// QMPMonitor is the qemu monitor object for sending commands
	QMPMonitor Monitorv1
	// RemoteUsername of the vm user
	RemoteUsername string
	// Whether this machine should run in a rootful or rootless manner
	Rootful bool
	// UID is the numerical id of the user that called machine
	UID int
}

Deprecated: MachineVMV1 is being deprecated in favor a more flexible and informative structure

type Monitor

type Monitor struct {
	//	Address portion of the qmp monitor (/tmp/tmp.sock)
	Address machine.VMFile
	// Network portion of the qmp monitor (unix)
	Network string
	// Timeout in seconds for qmp monitor transactions
	Timeout time.Duration
}

func NewQMPMonitor

func NewQMPMonitor(network, name string, timeout time.Duration) (Monitor, error)

NewQMPMonitor creates the monitor subsection of our vm

type Monitorv1

type Monitorv1 struct {
	//	Address portion of the qmp monitor (/tmp/tmp.sock)
	Address string
	// Network portion of the qmp monitor (unix)
	Network string
	// Timeout in seconds for qmp monitor transactions
	Timeout time.Duration
}

type Provider

type Provider struct{}

func (*Provider) CheckExclusiveActiveVM

func (p *Provider) CheckExclusiveActiveVM() (bool, string, error)

CheckExclusiveActiveVM checks if there is a VM already running that does not allow other VMs to be running

func (*Provider) IsValidVMName

func (p *Provider) IsValidVMName(name string) (bool, error)

func (*Provider) List

List lists all vm's that use qemu virtualization

func (*Provider) LoadVMByName

func (p *Provider) LoadVMByName(name string) (machine.VM, error)

LoadVMByName reads a json file that describes a known qemu vm and returns a vm instance

func (*Provider) NewMachine

func (p *Provider) NewMachine(opts machine.InitOptions) (machine.VM, error)

NewMachine initializes an instance of a virtual machine based on the qemu virtualization.

func (*Provider) RemoveAndCleanMachines

func (p *Provider) RemoveAndCleanMachines() error

RemoveAndCleanMachines removes all machine and cleans up any other files associated with podman machine

Jump to

Keyboard shortcuts

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