<domain type="xen"> <name>{% if prepare_dvm %}%NAME%{% else %}{{ vm.name }}{% endif %}</name> <uuid>{{ vm.uuid }}</uuid> <memory unit="MiB">{{ vm.maxmem }}</memory> <currentMemory unit="MiB">{{ vm.memory }}</currentMemory> <vcpu placement="static">{{ vm.vcpus }}</vcpu> <os> {% if vm.hvm %} <type arch="x86_64" machine="xenfv">hvm</type> <loader>hvmloader</loader> <boot dev="cdrom" /> <boot dev="hd" /> <!-- server_ip is the address of stubdomain. It hosts it's own DNS server. --> {% else %} <type arch="x86_64" machine="xenpv">linux</type> <kernel>{{ vm.storage.kernels_dir }}/vmlinuz</kernel> <initrd>{{ vm.storage.kernels_dir }}/initramfs</initrd> <cmdline>root=/dev/mapper/dmroot ro nomodeset console=hvc0 rd_NO_PLYMOUTH 3 {{ vm.kernelopts }}</cmdline> {% endif %} </os> {% if vm.hvm %} <features> <pae/> <acpi/> <apic/> <viridian/> </features> {% set timezone = vm.features.check_with_template('timezone', 'localtime').lower() %} {% if timezone == 'localtime' %} <clock offset="variable" adjustment="0" basis="localtime" /> {% elif timezone.isdigit() %} <clock offset="variable" adjustment="{{ timezone }}" basis="UTC" /> {% else %} <clock offset="variable" adjustment="0" basis="UTC" /> {% endif %} {% else %} <clock offset='utc' adjustment='reset'> <timer name="tsc" mode="native"/> </clock> {% endif %} <on_poweroff>destroy</on_poweroff> <on_reboot>destroy</on_reboot> <on_crash>destroy</on_crash> <devices> {% set i = 0 %} {# TODO Allow more volumes out of the box #} {% set dd = ['e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y'] %} {% for device in vm.block_devices %} <disk type="block" device="{{ device.devtype }}"> <driver name="phy" /> <source dev="{{ device.path }}" /> {% if device.name == 'root' %} <target dev="xvda" /> {% elif device.name == 'private' %} <target dev="xvdb" /> {% elif device.name == 'volatile' %} <target dev="xvdc" /> {% elif device.name == 'kernel' %} <target dev="xvdd" /> {% else %} <target dev="xvd{{dd[i]}}" /> {% set i = i + 1 %} {% endif %} {% if not device.rw %} <readonly /> {% endif %} {% if device.domain %} <domain name="{{ domain }}" /> {% endif %} {% if device.script %} <script path="{{ device.script }}"></script> {% endif %} </disk> {% endfor %} {% if vm.netvm %} <interface type="ethernet"> <mac address="{{ vm.mac }}" /> <ip address=" {%- if prepare_dvm -%} %IP% {%- else -%} {{ vm.ip }} {%- endif %}" /> <backenddomain name="{{ vm.netvm.name }}" /> <script path="vif-route-qubes"></script> </interface> {% endif %} {% for device in vm.devices.pci %} <hostdev type="pci" managed="yes"> <source> <address bus="0x{{ device.bus }}" slot="0x{{ device.device }}" function="0x{{ device.function }}" /> </source> </hostdev> {% endfor %} {% if vm.hvm %} <emulator type="stubdom" {% if vm.netvm %} cmdline="-net lwip,client_ip={{ vm.ip -}} ,server_ip={{ vm.secondary_dns -}} ,dns={{ vm.netvm.gateway -}} ,gw={{ self.netvm.gateway -}} ,netmask={{ vm.netmask }}" {% endif %} /> <input type="tablet" bus="usb"/> <video type="vga"/> {% else %} <console type="pty"> <target type="xen" port="0"/> </console> {% endif %} </devices> </domain> <!-- vim: set ft=jinja ts=4 sts=4 sw=4 et tw=80 : -->