Blame internal/osbuild/qemu_assembler.go

Packit 63bb0d
package osbuild
Packit 63bb0d
Packit 63bb0d
// QEMUAssemblerOptions desrcibe how to assemble a tree into an image using qemu.
Packit 63bb0d
//
Packit 63bb0d
// The assembler creates an image of the given size, adds a GRUB2 bootloader
Packit 63bb0d
// and if necessary and a partition table to it with the given PTUUID
Packit 63bb0d
// containing the indicated partitions. Finally, the image is converted into
Packit 63bb0d
// the target format and stored with the given filename.
Packit 63bb0d
type QEMUAssemblerOptions struct {
Packit 63bb0d
	Bootloader *QEMUBootloader `json:"bootloader,omitempty"`
Packit 63bb0d
	Format     string          `json:"format"`
Packit 63bb0d
	Filename   string          `json:"filename"`
Packit 63bb0d
	Size       uint64          `json:"size"`
Packit 63bb0d
	PTUUID     string          `json:"ptuuid"`
Packit 63bb0d
	PTType     string          `json:"pttype"`
Packit 63bb0d
	Partitions []QEMUPartition `json:"partitions"`
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
type QEMUPartition struct {
Packit 63bb0d
	Start      uint64          `json:"start"`
Packit 63bb0d
	Size       uint64          `json:"size,omitempty"`
Packit 63bb0d
	Type       string          `json:"type,omitempty"`
Packit 63bb0d
	Bootable   bool            `json:"bootable,omitempty"`
Packit 63bb0d
	UUID       string          `json:"uuid,omitempty"`
Packit 63bb0d
	Filesystem *QEMUFilesystem `json:"filesystem,omitempty"`
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
type QEMUFilesystem struct {
Packit 63bb0d
	Type       string `json:"type"`
Packit 63bb0d
	UUID       string `json:"uuid"`
Packit 63bb0d
	Label      string `json:"label,omitempty"`
Packit 63bb0d
	Mountpoint string `json:"mountpoint"`
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
type QEMUBootloader struct {
Packit 63bb0d
	Type     string `json:"type,omitempty"`
Packit 63bb0d
	Platform string `json:"platform,omitempty"`
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func (QEMUAssemblerOptions) isAssemblerOptions() {}
Packit 63bb0d
Packit 63bb0d
// NewQEMUAssembler creates a new QEMU Assembler object.
Packit 63bb0d
func NewQEMUAssembler(options *QEMUAssemblerOptions) *Assembler {
Packit 63bb0d
	return &Assembler{
Packit 63bb0d
		Name:    "org.osbuild.qemu",
Packit 63bb0d
		Options: options,
Packit 63bb0d
	}
Packit 63bb0d
}