diff --git a/nova/tests/unit/virt/libvirt/test_vif.py b/nova/tests/unit/virt/libvirt/test_vif.py
index 31dee1b0fc..39e5c97032 100644
--- a/nova/tests/unit/virt/libvirt/test_vif.py
+++ b/nova/tests/unit/virt/libvirt/test_vif.py
@@ -1519,17 +1519,25 @@ class LibvirtVifTestCase(test.NoDBTestCase):
@mock.patch("nova.network.os_vif_util.nova_to_osvif_instance")
@mock.patch("nova.network.os_vif_util.nova_to_osvif_vif")
- def test_config_os_vif_bridge(self, mock_convert_vif,
- mock_convert_inst):
- mock_convert_vif.return_value = self.os_vif_bridge
+ def _test_config_os_vif(self, os_vif_model, vif_model,
+ libvirt_supports_mtu, expected_xml, mock_convert_vif,
+ mock_convert_inst):
+ mock_convert_vif.return_value = os_vif_model
mock_convert_inst.return_value = self.os_vif_inst_info
d = vif.LibvirtGenericVIFDriver()
- xml = self._get_instance_xml(d, self.vif_bridge,
- has_min_libvirt_version=True)
+ xml = self._get_instance_xml(d, vif_model,
+ has_min_libvirt_version=libvirt_supports_mtu)
node = self._get_node(xml)
- self._assertXmlEqual("""
+ self._assertXmlEqual(expected_xml, node)
+
+ def test_config_os_vif_bridge(self):
+ os_vif_type = self.os_vif_bridge
+ vif_type = self.vif_bridge
+ libvirt_supports_mtu = True
+
+ expected_xml = """
@@ -1541,21 +1549,17 @@ class LibvirtVifTestCase(test.NoDBTestCase):
- """, node)
+ """
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_instance")
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_vif")
- def test_config_os_vif_bridge_no_mtu(self, mock_convert_vif,
- mock_convert_inst):
- mock_convert_vif.return_value = self.os_vif_bridge
- mock_convert_inst.return_value = self.os_vif_inst_info
+ self._test_config_os_vif(
+ os_vif_type, vif_type, libvirt_supports_mtu, expected_xml)
- d = vif.LibvirtGenericVIFDriver()
- xml = self._get_instance_xml(d, self.vif_bridge,
- has_min_libvirt_version=False)
- node = self._get_node(xml)
+ def test_config_os_vif_bridge_no_mtu(self):
+ os_vif_type = self.os_vif_bridge
+ vif_type = self.vif_bridge
+ libvirt_supports_mtu = False
- self._assertXmlEqual("""
+ expected_xml = """
@@ -1566,23 +1570,19 @@ class LibvirtVifTestCase(test.NoDBTestCase):
- """, node)
+ """
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_instance")
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_vif")
- def test_config_os_vif_bridge_nofw(self, mock_convert_vif,
- mock_convert_inst):
+ self._test_config_os_vif(
+ os_vif_type, vif_type, libvirt_supports_mtu, expected_xml)
+
+ def test_config_os_vif_bridge_nofw(self):
self.flags(firewall_driver="nova.virt.firewall.NoopFirewallDriver")
- mock_convert_vif.return_value = self.os_vif_bridge
- mock_convert_inst.return_value = self.os_vif_inst_info
+ os_vif_type = self.os_vif_bridge
+ vif_type = self.vif_bridge
+ libvirt_supports_mtu = True
- d = vif.LibvirtGenericVIFDriver()
- xml = self._get_instance_xml(d, self.vif_bridge,
- has_min_libvirt_version=True)
- node = self._get_node(xml)
-
- self._assertXmlEqual("""
+ expected_xml = """
@@ -1593,23 +1593,19 @@ class LibvirtVifTestCase(test.NoDBTestCase):
- """, node)
+ """
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_instance")
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_vif")
- def test_config_os_vif_bridge_nofw_no_mtu(self, mock_convert_vif,
- mock_convert_inst):
+ self._test_config_os_vif(
+ os_vif_type, vif_type, libvirt_supports_mtu, expected_xml)
+
+ def test_config_os_vif_bridge_nofw_no_mtu(self):
self.flags(firewall_driver="nova.virt.firewall.NoopFirewallDriver")
- mock_convert_vif.return_value = self.os_vif_bridge
- mock_convert_inst.return_value = self.os_vif_inst_info
+ os_vif_type = self.os_vif_bridge
+ vif_type = self.vif_bridge
+ libvirt_supports_mtu = False
- d = vif.LibvirtGenericVIFDriver()
- xml = self._get_instance_xml(d, self.vif_bridge,
- has_min_libvirt_version=False)
- node = self._get_node(xml)
-
- self._assertXmlEqual("""
+ expected_xml = """
@@ -1619,40 +1615,33 @@ class LibvirtVifTestCase(test.NoDBTestCase):
- """, node)
+ """
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_instance")
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_vif")
- def test_config_os_vif_vhostuser(self, mock_convert_vif,
- mock_convert_inst):
- mock_convert_vif.return_value = self.os_vif_vhostuser
- mock_convert_inst.return_value = self.os_vif_inst_info
+ self._test_config_os_vif(
+ os_vif_type, vif_type, libvirt_supports_mtu, expected_xml)
- d = vif.LibvirtGenericVIFDriver()
- xml = self._get_instance_xml(d, self.vif_vhostuser)
- node = self._get_node(xml)
+ def test_config_os_vif_vhostuser(self):
+ os_vif_type = self.os_vif_vhostuser
+ vif_type = self.vif_vhostuser
+ libvirt_supports_mtu = False
- self._assertXmlEqual("""
+ expected_xml = """
- """, node)
+ """
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_instance")
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_vif")
- def test_config_os_vif_agilio_ovs_fallthrough(self, mock_convert_vif,
- mock_convert_inst):
- mock_convert_vif.return_value = self.os_vif_agilio_ovs
- mock_convert_inst.return_value = self.os_vif_inst_info
+ self._test_config_os_vif(
+ os_vif_type, vif_type, libvirt_supports_mtu, expected_xml)
- d = vif.LibvirtGenericVIFDriver()
- xml = self._get_instance_xml(d, self.vif_agilio_ovs,
- has_min_libvirt_version=True)
- node = self._get_node(xml)
+ def test_config_os_vif_agilio_ovs_fallthrough(self):
+ os_vif_type = self.os_vif_agilio_ovs
+ vif_type = self.vif_agilio_ovs
+ libvirt_supports_mtu = True
- self._assertXmlEqual("""
+ expected_xml = """
@@ -1667,22 +1656,17 @@ class LibvirtVifTestCase(test.NoDBTestCase):
- """, node)
+ """
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_instance")
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_vif")
- def test_config_os_vif_agilio_ovs_fallthrough_no_mtu(self,
- mock_convert_vif,
- mock_convert_inst):
- mock_convert_vif.return_value = self.os_vif_agilio_ovs
- mock_convert_inst.return_value = self.os_vif_inst_info
+ self._test_config_os_vif(
+ os_vif_type, vif_type, libvirt_supports_mtu, expected_xml)
- d = vif.LibvirtGenericVIFDriver()
- xml = self._get_instance_xml(d, self.vif_agilio_ovs,
- has_min_libvirt_version=False)
- node = self._get_node(xml)
+ def test_config_os_vif_agilio_ovs_fallthrough_no_mtu(self):
+ os_vif_type = self.os_vif_agilio_ovs
+ vif_type = self.vif_agilio_ovs
+ libvirt_supports_mtu = False
- self._assertXmlEqual("""
+ expected_xml = """
@@ -1696,59 +1680,50 @@ class LibvirtVifTestCase(test.NoDBTestCase):
- """, node)
+ """
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_instance")
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_vif")
- def test_config_os_vif_agilio_ovs_forwarder(self, mock_convert_vif,
- mock_convert_inst):
- mock_convert_vif.return_value = self.os_vif_agilio_forwarder
- mock_convert_inst.return_value = self.os_vif_inst_info
+ self._test_config_os_vif(
+ os_vif_type, vif_type, libvirt_supports_mtu, expected_xml)
- d = vif.LibvirtGenericVIFDriver()
- xml = self._get_instance_xml(d, self.vif_agilio_ovs_forwarder)
- node = self._get_node(xml)
+ def test_config_os_vif_agilio_ovs_forwarder(self):
+ os_vif_type = self.os_vif_agilio_forwarder
+ vif_type = self.vif_agilio_ovs_forwarder
+ libvirt_supports_mtu = None # not supported for direct VIFs
- self._assertXmlEqual("""
+ expected_xml = """
- """, node)
+ """
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_instance")
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_vif")
- def test_config_os_vif_agilio_ovs_direct(self, mock_convert_vif,
- mock_convert_inst):
- mock_convert_vif.return_value = self.os_vif_agilio_direct
- mock_convert_inst.return_value = self.os_vif_inst_info
+ self._test_config_os_vif(
+ os_vif_type, vif_type, libvirt_supports_mtu, expected_xml)
- d = vif.LibvirtGenericVIFDriver()
- xml = self._get_instance_xml(d, self.vif_agilio_ovs_direct)
- node = self._get_node(xml)
+ def test_config_os_vif_agilio_ovs_direct(self):
+ os_vif_type = self.os_vif_agilio_direct
+ vif_type = self.vif_agilio_ovs_direct
+ libvirt_supports_mtu = None # not supported for direct VIFs
- self._assertXmlEqual("""
+ expected_xml = """
- """, node)
+ """
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_instance")
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_vif")
- def test_config_os_vif_ovs(self, mock_convert_vif,
- mock_convert_inst):
- mock_convert_vif.return_value = self.os_vif_ovs
- mock_convert_inst.return_value = self.os_vif_inst_info
+ self._test_config_os_vif(
+ os_vif_type, vif_type, libvirt_supports_mtu, expected_xml)
- d = vif.LibvirtGenericVIFDriver()
- xml = self._get_instance_xml(d, self.vif_ovs)
- node = self._get_node(xml)
+ def test_config_os_vif_ovs(self):
+ os_vif_type = self.os_vif_ovs
+ vif_type = self.vif_ovs
+ libvirt_supports_mtu = True
- self._assertXmlEqual("""
+ expected_xml = """
@@ -1762,21 +1737,17 @@ class LibvirtVifTestCase(test.NoDBTestCase):
- """, node)
+ """
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_instance")
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_vif")
- def test_config_os_vif_ovs_no_mtu(self, mock_convert_vif,
- mock_convert_inst):
- mock_convert_vif.return_value = self.os_vif_ovs
- mock_convert_inst.return_value = self.os_vif_inst_info
+ self._test_config_os_vif(
+ os_vif_type, vif_type, libvirt_supports_mtu, expected_xml)
- d = vif.LibvirtGenericVIFDriver()
- xml = self._get_instance_xml(d, self.vif_ovs,
- has_min_libvirt_version=False)
- node = self._get_node(xml)
+ def test_config_os_vif_ovs_no_mtu(self):
+ os_vif_type = self.os_vif_ovs
+ vif_type = self.vif_ovs
+ libvirt_supports_mtu = False
- self._assertXmlEqual("""
+ expected_xml = """
@@ -1789,20 +1760,17 @@ class LibvirtVifTestCase(test.NoDBTestCase):
- """, node)
+ """
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_instance")
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_vif")
- def test_config_os_vif_ovs_hybrid(self, mock_convert_vif,
- mock_convert_inst):
- mock_convert_vif.return_value = self.os_vif_ovs_hybrid
- mock_convert_inst.return_value = self.os_vif_inst_info
+ self._test_config_os_vif(
+ os_vif_type, vif_type, libvirt_supports_mtu, expected_xml)
- d = vif.LibvirtGenericVIFDriver()
- xml = self._get_instance_xml(d, self.vif_ovs)
- node = self._get_node(xml)
+ def test_config_os_vif_ovs_hybrid(self):
+ os_vif_type = self.os_vif_ovs_hybrid
+ vif_type = self.vif_ovs
+ libvirt_supports_mtu = True
- self._assertXmlEqual("""
+ expected_xml = """
@@ -1814,21 +1782,17 @@ class LibvirtVifTestCase(test.NoDBTestCase):
- """, node)
+ """
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_instance")
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_vif")
- def test_config_os_vif_ovs_hybrid_no_mtu(self, mock_convert_vif,
- mock_convert_inst):
- mock_convert_vif.return_value = self.os_vif_ovs_hybrid
- mock_convert_inst.return_value = self.os_vif_inst_info
+ self._test_config_os_vif(
+ os_vif_type, vif_type, libvirt_supports_mtu, expected_xml)
- d = vif.LibvirtGenericVIFDriver()
- xml = self._get_instance_xml(d, self.vif_ovs,
- has_min_libvirt_version=False)
- node = self._get_node(xml)
+ def test_config_os_vif_ovs_hybrid_no_mtu(self):
+ os_vif_type = self.os_vif_ovs_hybrid
+ vif_type = self.vif_ovs
+ libvirt_supports_mtu = False
- self._assertXmlEqual("""
+ expected_xml = """
@@ -1839,27 +1803,27 @@ class LibvirtVifTestCase(test.NoDBTestCase):
- """, node)
+ """
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_instance")
- @mock.patch("nova.network.os_vif_util.nova_to_osvif_vif")
- def test_config_os_vif_hostdevice_ethernet(self, mock_convert_vif,
- mock_convert_inst):
- mock_convert_vif.return_value = self.os_vif_hostdevice_ethernet
- mock_convert_inst.return_value = self.os_vif_inst_info
+ self._test_config_os_vif(
+ os_vif_type, vif_type, libvirt_supports_mtu, expected_xml)
- d = vif.LibvirtGenericVIFDriver()
- xml = self._get_instance_xml(d, self.vif_bridge)
- node = self._get_node(xml)
+ def test_config_os_vif_hostdevice_ethernet(self):
+ os_vif_type = self.os_vif_hostdevice_ethernet
+ vif_type = self.vif_bridge
+ libvirt_supports_mtu = None # not supported for hostdev
- self._assertXmlEqual("""
+ expected_xml = """
- """, node)
+ """
+
+ self._test_config_os_vif(
+ os_vif_type, vif_type, libvirt_supports_mtu, expected_xml)
@mock.patch("nova.network.os_vif_util.nova_to_osvif_instance")
@mock.patch("nova.network.os_vif_util.nova_to_osvif_vif")