|
Packit |
a07778 |
#!/usr/bin/env python3
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
import gi
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
gi.require_version('LibvirtGConfig', '1.0')
|
|
Packit |
a07778 |
from gi.repository import LibvirtGConfig
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
domain = LibvirtGConfig.Domain.new()
|
|
Packit |
a07778 |
domain.set_virt_type(LibvirtGConfig.DomainVirtType.KVM)
|
|
Packit |
a07778 |
domain.set_name("foo")
|
|
Packit |
a07778 |
domain.set_memory(1024*1024) # 1 GB
|
|
Packit |
a07778 |
domain.set_vcpus(2)
|
|
Packit |
a07778 |
domain.set_lifecycle(LibvirtGConfig.DomainLifecycleEvent.ON_POWEROFF,
|
|
Packit |
a07778 |
LibvirtGConfig.DomainLifecycleAction.DESTROY)
|
|
Packit |
a07778 |
domain.set_virt_type(LibvirtGConfig.DomainVirtType.KVM)
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
clock = LibvirtGConfig.DomainClock.new()
|
|
Packit |
a07778 |
clock.set_offset(LibvirtGConfig.DomainClockOffset.UTC)
|
|
Packit |
a07778 |
domain.set_clock(clock)
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
os = LibvirtGConfig.DomainOs.new()
|
|
Packit |
a07778 |
os.set_os_type(LibvirtGConfig.DomainOsType.HVM)
|
|
Packit |
a07778 |
os.set_arch("x86_64")
|
|
Packit |
a07778 |
devices = [ LibvirtGConfig.DomainOsBootDevice.CDROM,
|
|
Packit |
a07778 |
LibvirtGConfig.DomainOsBootDevice.NETWORK ]
|
|
Packit |
a07778 |
os.set_boot_devices(devices)
|
|
Packit |
a07778 |
domain.set_os(os)
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
disk = LibvirtGConfig.DomainDisk.new()
|
|
Packit |
a07778 |
disk.set_type(LibvirtGConfig.DomainDiskType.FILE)
|
|
Packit |
a07778 |
disk.set_guest_device_type(LibvirtGConfig.DomainDiskGuestDeviceType.DISK)
|
|
Packit |
a07778 |
disk.set_source("/tmp/foo/bar")
|
|
Packit |
a07778 |
disk.set_driver_name("qemu")
|
|
Packit |
a07778 |
disk.set_driver_format(LibvirtGConfig.DomainDiskFormat.QCOW2)
|
|
Packit |
a07778 |
disk.set_target_bus(LibvirtGConfig.DomainDiskBus.IDE)
|
|
Packit |
a07778 |
disk.set_target_dev("hda")
|
|
Packit |
a07778 |
domain.add_device(disk)
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
interface = LibvirtGConfig.DomainInterfaceNetwork.new()
|
|
Packit |
a07778 |
interface.set_source("default")
|
|
Packit |
a07778 |
filterref = LibvirtGConfig.DomainInterfaceFilterref.new()
|
|
Packit |
a07778 |
filterref.set_name("clean-traffic")
|
|
Packit |
a07778 |
parameter = LibvirtGConfig.DomainInterfaceFilterrefParameter.new()
|
|
Packit |
a07778 |
parameter.set_name("IP")
|
|
Packit |
a07778 |
parameter.set_value("205.23.12.40")
|
|
Packit |
a07778 |
filterref.add_parameter(parameter)
|
|
Packit |
a07778 |
interface.set_filterref(filterref)
|
|
Packit |
a07778 |
domain.add_device(interface)
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
interface = LibvirtGConfig.DomainInterfaceUser.new()
|
|
Packit |
a07778 |
interface.set_ifname("eth0")
|
|
Packit |
a07778 |
interface.set_link_state(LibvirtGConfig.DomainInterfaceLinkState.UP)
|
|
Packit |
a07778 |
interface.set_mac("00:11:22:33:44:55")
|
|
Packit |
a07778 |
interface.set_model("foo")
|
|
Packit |
a07778 |
domain.add_device(interface)
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
input = LibvirtGConfig.DomainInput.new()
|
|
Packit |
a07778 |
input.set_device_type(LibvirtGConfig.DomainInputDeviceType.TABLET)
|
|
Packit |
a07778 |
input.set_bus(LibvirtGConfig.DomainInputBus.USB)
|
|
Packit |
a07778 |
domain.add_device(input)
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
graphics = LibvirtGConfig.DomainGraphicsSpice.new()
|
|
Packit |
a07778 |
graphics.set_port(1234)
|
|
Packit |
a07778 |
graphics.set_gl(True)
|
|
Packit |
a07778 |
domain.add_device(graphics)
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
video = LibvirtGConfig.DomainVideo.new()
|
|
Packit |
a07778 |
video.set_model(LibvirtGConfig.DomainVideoModel.VIRTIO)
|
|
Packit |
a07778 |
video.set_accel3d(True)
|
|
Packit |
a07778 |
domain.add_device(video)
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
console = LibvirtGConfig.DomainConsole.new()
|
|
Packit |
a07778 |
pty = LibvirtGConfig.DomainChardevSourcePty.new()
|
|
Packit |
a07778 |
console.set_source(pty)
|
|
Packit |
a07778 |
domain.add_device(console)
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
print(domain.to_xml())
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
pool = LibvirtGConfig.StoragePool.new()
|
|
Packit |
a07778 |
pool.set_pool_type(LibvirtGConfig.StoragePoolType.DIR)
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
pool_source = LibvirtGConfig.StoragePoolSource.new()
|
|
Packit |
a07778 |
pool_source.set_directory("/foo/bar")
|
|
Packit |
a07778 |
pool.set_source(pool_source)
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
perms = LibvirtGConfig.StoragePermissions.new()
|
|
Packit |
a07778 |
perms.set_owner(1001)
|
|
Packit |
a07778 |
perms.set_group(1005)
|
|
Packit |
a07778 |
perms.set_mode(0o744)
|
|
Packit |
a07778 |
perms.set_label("virt_image_t")
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
pool_target = LibvirtGConfig.StoragePoolTarget.new()
|
|
Packit |
a07778 |
pool_target.set_path("/dev/disk/by-path")
|
|
Packit |
a07778 |
pool_target.set_permissions(perms)
|
|
Packit |
a07778 |
pool.set_target(pool_target)
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
print(pool.to_xml())
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
vol = LibvirtGConfig.StorageVol.new()
|
|
Packit |
a07778 |
vol.set_name("my-vol")
|
|
Packit |
a07778 |
vol.set_capacity(0xdeadbeef)
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
vol_target = LibvirtGConfig.StorageVolTarget.new()
|
|
Packit |
a07778 |
vol_target.set_format("qcow2")
|
|
Packit |
a07778 |
vol_target.set_permissions(perms)
|
|
Packit |
a07778 |
vol.set_target(vol_target)
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
print(vol.to_xml())
|