def __init__(self, name=None, memory=1024): self.macs = [] if name is None: self.name = utils.get_rnd_name() else: self.name = name x = XMLElement(None, "domain", type="kvm") self.x = x x.se("name").x.text = self.name for mem in ("memory", "currentMemory"): x.se(mem, unit="MiB").x.text = str(memory) x.se("vcpu", placement="static").x.text = "1" cpu = x.se("cpu", mode="host-model") cpu.se("model", fallback="forbid") os = x.se("os") os.se("type", arch="x86_64", machine="pc-1.0").x.text = "hvm" features = x.se("features") features.se("acpi") features.se("apic") features.se("pae") self.devices = x.se("devices") self.devices.se("emulator").x.text = "/usr/bin/kvm" self.devices.se("controller", type="pci", index="0", model="pci-root") self.devices.se("graphics", type="spice", autoport="yes") mb = self.devices.se("memballoon", model="virtio") mb.se("address", type="pci", domain="0x0000", bus="0x00", slot="0x09", function="0x0")
def __init__(self, host, name, cfg=None): """Represent a VM. :param Host host: :param str name: :param dict cfg: config.provider.vms item """ self.host = host self.cfg = cfg or {} self._ssh = host.ssh self._ssh_cache = {} self.macs = [] self.disks = [] self.name = utils.get_rnd_name("rci_" + name) x = XMLElement(None, "domain", type="kvm") self.x = x x.se("name").x.text = self.name for mem in ("memory", "currentMemory"): x.se(mem, unit="MiB").x.text = str(self.cfg.get("memory", 1024)) x.se("vcpu", placement="static").x.text = str(self.cfg.get("vcpu", 1)) cpu = x.se("cpu", mode="host-model") cpu.se("model", fallback="forbid") os = x.se("os") os.se("type", arch="x86_64", machine="pc-1.0").x.text = "hvm" features = x.se("features") features.se("acpi") features.se("apic") features.se("pae") self.devices = x.se("devices") self.devices.se("emulator").x.text = "/usr/bin/kvm" self.devices.se("controller", type="pci", index="0", model="pci-root") self.devices.se("graphics", type="spice", autoport="yes") mb = self.devices.se("memballoon", model="virtio") mb.se("address", type="pci", domain="0x0000", bus="0x00", slot="0x09", function="0x0")