<domain type='<%= domain_type %>'>
  <name><%= name %></name>
  <memory><%= memory_size %></memory>
  <vcpu><%= cpus %></vcpu>
  <os>
    <type arch='<%= arch %>'><%= os_type %></type>
<% boot_order.each do |dev| -%>
    <boot dev='<%= dev %>'/>
<% end -%>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
<% if !cpu.empty? -%>
<% if cpu[:mode] -%>
  <cpu mode='<%= cpu[:mode] %>'>
<% else -%>
  <cpu>
<% end -%>
<%
  fallback = 'allow'
  model = ''
  if cpu[:model]
    fallback = cpu[:model][:fallback] if cpu[:model][:fallback]
    model    = cpu[:model][:name]     if cpu[:model][:name]
  end
-%>
    <model fallback='<%= fallback %>'><%= model %></model>
  </cpu>
<% end -%>
  <clock offset='utc'/>
  <devices>
<% volumes.each do |vol| -%>
    <disk type='file' device='disk'>
      <driver name='qemu' type='<%= vol.format_type %>'/>
      <source file='<%= vol.path %>'/>
      <%# we need to ensure a unique target dev -%>
      <target dev='vd<%= ('a'..'z').to_a[volumes.index(vol)] %>' bus='virtio'/>
    </disk>
<% end -%>
<% if iso_file -%>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='<%= "#{iso_dir}/#{iso_file}" %>'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='1' unit='0'/>
    </disk>
<% end -%>
<% nics.each do |nic| -%>
    <interface type='<%= nic.type %>'>
      <source <%= nic.type == 'bridge' ? "bridge='#{nic.bridge}'" : "network='#{nic.network}'" %> />
      <model type='<%= nic.model %>'/>
    </interface>
<% end -%>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target port='0'/>
    </console>
    <input type='tablet' bus='usb'/>
    <input type='mouse' bus='ps2'/>
<%
display_type = display[:type]

if display[:port].empty?
  display_port = display[:port]
  autoport = 'no'
else
  display_port = '-1'
  autoport = 'yes'
end

unless display[:listen].empty?
  display_listen = "listen='#{display[:listen]}'"
end

unless display[:password].empty?
  display_password = "passwd='#{display[:password]}'"
end
-%>
    <graphics type='<%= display_type %>' port='<%= display_port %>' autoport='<%= autoport %>' <%= display_listen %> <%= display_password %> />
    <video>
      <model type='cirrus' vram='9216' heads='1'/>
    </video>
  </devices>
</domain>
