diff --git a/nova/tests/unit/virt/libvirt/test_vif.py b/nova/tests/unit/virt/libvirt/test_vif.py index 18b5dc3832..e691714846 100644 --- a/nova/tests/unit/virt/libvirt/test_vif.py +++ b/nova/tests/unit/virt/libvirt/test_vif.py @@ -97,6 +97,13 @@ class LibvirtVifTestCase(test.NoDBTestCase): bridge_interface=None, vlan=99, mtu=1000) + network_ivs = network_model.Network(id=uuids.network, + bridge='br0', + label=None, + subnets=[subnet_bridge_4, subnet_bridge_6], + bridge_interface=None, + vlan=99) + vif_agilio_ovs = network_model.VIF(id=uuids.vif, address='ca:fe:de:ad:be:ef', network=network_ovs, @@ -158,6 +165,13 @@ class LibvirtVifTestCase(test.NoDBTestCase): devname=None, ovs_interfaceid=None) + vif_ivs = network_model.VIF(id=uuids.vif, + address='ca:fe:de:ad:be:ef', + network=network_ivs, + type=network_model.VIF_TYPE_IVS, + devname='tap-xxx-yyy-zzz', + ovs_interfaceid=uuids.ovs) + vif_none = network_model.VIF(id=uuids.vif, address='ca:fe:de:ad:be:ef', network=network_bridge, @@ -1067,6 +1081,14 @@ class LibvirtVifTestCase(test.NoDBTestCase): self._assertTypeAndMacEquals(node, "bridge", "source", "bridge", vif, br_want, 1) + def test_ivs_hybrid_driver(self): + d = vif.LibvirtGenericVIFDriver() + br_want = "qbr" + self.vif_ivs['id'] + br_want = br_want[:network_model.NIC_NAME_LEN] + self._check_neutron_hybrid_driver(d, + self.vif_ivs, + br_want) + def test_generic_hybrid_driver(self): d = vif.LibvirtGenericVIFDriver() br_want = "qbr" + self.vif_ovs['id'] @@ -1393,6 +1415,17 @@ class LibvirtVifTestCase(test.NoDBTestCase): self._assertMacEquals(node, self.vif_agilio_ovs_forwarder) self._assertModel(xml, network_model.VIF_MODEL_VIRTIO) + def test_ivs_ethernet_driver(self): + self.flags(firewall_driver="nova.virt.firewall.NoopFirewallDriver") + d = vif.LibvirtGenericVIFDriver() + xml = self._get_instance_xml(d, self.vif_ivs) + node = self._get_node(xml) + dev_want = self.vif_ivs['devname'] + self._assertTypeAndMacEquals(node, "ethernet", "target", "dev", + self.vif_ivs, dev_want) + script = node.find("script") + self.assertIsNone(script) + @mock.patch("nova.network.os_vif_util.nova_to_osvif_instance") @mock.patch("nova.network.os_vif_util.nova_to_osvif_vif") @mock.patch.object(os_vif, "plug") diff --git a/nova/virt/libvirt/vif.py b/nova/virt/libvirt/vif.py index 0c3fcca5b4..32d09e052d 100644 --- a/nova/virt/libvirt/vif.py +++ b/nova/virt/libvirt/vif.py @@ -500,7 +500,7 @@ class LibvirtGenericVIFDriver(object): return conf def _set_config_VIFGeneric(self, instance, vif, conf, host): - dev = self.get_vif_devname(vif) + dev = vif.vif_name designer.set_vif_host_backend_ethernet_config(conf, dev, host) def _set_config_VIFBridge(self, instance, vif, conf, host=None):