diff --git a/qubes/tests/vm/qubesvm.py b/qubes/tests/vm/qubesvm.py index 11e6fa2e0..0993eb8d2 100644 --- a/qubes/tests/vm/qubesvm.py +++ b/qubes/tests/vm/qubesvm.py @@ -1143,7 +1143,8 @@ def test_600_libvirt_xml_hvm_with_guivm(self): destroy - + @@ -1172,6 +1173,69 @@ def test_600_libvirt_xml_hvm_with_guivm(self): lxml.etree.XML(libvirt_xml), lxml.etree.XML(expected) ) + def test_600_libvirt_xml_hvm_with_qemu_args(self): + my_uuid = "7db78950-c467-4863-94d1-af59806384ea" + expected = """ + test-inst-test + 7db78950-c467-4863-94d1-af59806384ea + 400 + 400 + 2 + + + + + + + + + hvm + + hvmloader + + + + + + + + + + + destroy + destroy + destroy + + + + + + + + + + + + + + """ + vm = self.get_vm(uuid=my_uuid) + vm.netvm = None + vm.virt_mode = "hvm" + vm.debug = True + vm.features['qemu-extra-args'] = '-some-option' + libvirt_xml = vm.create_config_file() + self.assertXMLEqual( + lxml.etree.XML(libvirt_xml), lxml.etree.XML(expected) + ) + def test_600_libvirt_xml_hvm_dom0_kernel(self): my_uuid = "7db78950-c467-4863-94d1-af59806384ea" expected = f""" diff --git a/templates/libvirt/xen.xml b/templates/libvirt/xen.xml index ec56214c3..307438933 100644 --- a/templates/libvirt/xen.xml +++ b/templates/libvirt/xen.xml @@ -167,9 +167,11 @@ {% endfor %} {% endfor %} - {% if vm.netvm %} - {% include 'libvirt/devices/net.xml' with context %} - {% endif %} + {% block network %} + {% if vm.netvm %} + {% include 'libvirt/devices/net.xml' with context %} + {% endif %} + {% endblock %} {% for assignment in vm.devices.pci.get_assigned_devices(True) %} {% for device in assignment.devices %} @@ -182,6 +184,12 @@ {% if vm.virt_mode == 'hvm' %} + {% set qemu_opts_common = "-qubes-audio:audiovm_xid=" ~ + audiovm_xid ~ " " ~ + vm.features.check_with_template('qemu-extra-args', '') -%} + {% set qemu_opts_common = qemu_opts_common | trim -%} + {% set qemu_opts_common = qemu_opts_common ~ + (" -trace xen_platform_log" if vm.debug else "") -%}