summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-02-10 00:54:14 +0000
committerGerrit Code Review <review@openstack.org>2013-02-10 00:54:14 +0000
commitf9c4cd90a94516ec05acbb62b13b48af646fa218 (patch)
tree3d2883d372934c6f578f2be0f3a016794b985272 /nova/tests
parent328c61ea1d00e3816c2200f088733130d097de91 (diff)
parent58e069092dc052c913600bfd27d17d12c278c25a (diff)
Merge "Introduce support for 802.1qbg and 802.1qbh to Nova VIF model"
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/network/test_manager.py2
-rw-r--r--nova/tests/test_libvirt_vif.py121
2 files changed, 123 insertions, 0 deletions
diff --git a/nova/tests/network/test_manager.py b/nova/tests/network/test_manager.py
index c0a434e6c..3728dd2e0 100644
--- a/nova/tests/network/test_manager.py
+++ b/nova/tests/network/test_manager.py
@@ -186,6 +186,8 @@ class FlatNetworkTestCase(test.TestCase):
'vif_uuid':
'00000000-0000-0000-0000-00000000000000%02d' % nid,
'ovs_interfaceid': None,
+ 'qbh_params': None,
+ 'qbg_params': None,
'should_create_vlan': False,
'should_create_bridge': False}
self.assertThat(info, matchers.DictMatches(check))
diff --git a/nova/tests/test_libvirt_vif.py b/nova/tests/test_libvirt_vif.py
index c6937bde3..916b961da 100644
--- a/nova/tests/test_libvirt_vif.py
+++ b/nova/tests/test_libvirt_vif.py
@@ -111,6 +111,41 @@ class LibvirtVifTestCase(test.TestCase):
'vif_uuid': 'vif-xxx-yyy-zzz',
}
+ net_8021 = {
+ 'cidr': '101.168.1.0/24',
+ 'cidr_v6': '101:1db9::/64',
+ 'gateway_v6': '101:1db9::1',
+ 'netmask_v6': '64',
+ 'netmask': '255.255.255.0',
+ 'interface': 'eth0',
+ 'vlan': 99,
+ 'gateway': '101.168.1.1',
+ 'broadcast': '101.168.1.255',
+ 'dns1': '8.8.8.8',
+ 'id': 'network-id-xxx-yyy-zzz'
+ }
+
+ mapping_8021qbh = {
+ 'mac': 'ca:fe:de:ad:be:ef',
+ 'vif_uuid': 'vif-xxx-yyy-zzz',
+ 'vif_devname': 'tap-xxx-yyy-zzz',
+ 'vif_type': network_model.VIF_TYPE_802_QBH,
+ 'qbh_params': network_model.VIF8021QbhParams(
+ profileid="xxx-yyy-zzz"),
+ }
+
+ mapping_8021qbg = {
+ 'mac': 'ca:fe:de:ad:be:ef',
+ 'vif_uuid': 'vif-xxx-yyy-zzz',
+ 'vif_devname': 'tap-xxx-yyy-zzz',
+ 'vif_type': network_model.VIF_TYPE_802_QBG,
+ 'qbg_params': network_model.VIF8021QbgParams(
+ managerid="xxx-yyy-zzz",
+ typeid="aaa-bbb-ccc",
+ typeidversion="1",
+ instanceid="ddd-eee-fff")
+ }
+
mapping_none = {
'mac': 'ca:fe:de:ad:be:ef',
'gateway_v6': net_bridge['gateway_v6'],
@@ -457,3 +492,89 @@ class LibvirtVifTestCase(test.TestCase):
self.net_ovs,
self.mapping_ovs,
br_want)
+
+ def test_generic_8021qbh_driver(self):
+ def get_connection():
+ return fakelibvirt.Connection("qemu:///session",
+ False)
+ d = vif.LibvirtGenericVIFDriver(get_connection)
+ xml = self._get_instance_xml(d,
+ self.net_8021,
+ self.mapping_8021qbh)
+
+ doc = etree.fromstring(xml)
+ ret = doc.findall('./devices/interface')
+ self.assertEqual(len(ret), 1)
+ node = ret[0]
+ self.assertEqual(node.get("type"), "direct")
+
+ br_name = node.find("source").get("dev")
+ self.assertEqual(br_name, "eth0")
+ mac = node.find("mac").get("address")
+ self.assertEqual(mac, self.mapping_8021qbh['mac'])
+ vp = node.find("virtualport")
+ self.assertEqual(vp.get("type"), "802.1Qbh")
+ profile_id_found = False
+ for p_elem in vp.findall("parameters"):
+ wantparams = self.mapping_8021qbh['qbh_params']
+ profile_id = p_elem.get("profileid", None)
+ if profile_id:
+ self.assertEqual(profile_id,
+ wantparams['profileid'])
+ profile_id_found = True
+
+ self.assertTrue(profile_id_found)
+
+ def test_generic_8021qbg_driver(self):
+ def get_connection():
+ return fakelibvirt.Connection("qemu:///session",
+ False)
+ d = vif.LibvirtGenericVIFDriver(get_connection)
+ xml = self._get_instance_xml(d,
+ self.net_8021,
+ self.mapping_8021qbg)
+
+ doc = etree.fromstring(xml)
+ print xml
+ ret = doc.findall('./devices/interface')
+ self.assertEqual(len(ret), 1)
+ node = ret[0]
+ self.assertEqual(node.get("type"), "direct")
+
+ br_name = node.find("source").get("dev")
+ self.assertEqual(br_name, "eth0")
+ mac = node.find("mac").get("address")
+ self.assertEqual(mac, self.mapping_8021qbg['mac'])
+ vp = node.find("virtualport")
+ self.assertEqual(vp.get("type"), "802.1Qbg")
+ manager_id_found = False
+ type_id_found = False
+ typeversion_id_found = False
+ instance_id_found = False
+ for p_elem in vp.findall("parameters"):
+ wantparams = self.mapping_8021qbg['qbg_params']
+ manager_id = p_elem.get("managerid", None)
+ type_id = p_elem.get("typeid", None)
+ typeversion_id = p_elem.get("typeidversion", None)
+ instance_id = p_elem.get("instanceid", None)
+ if manager_id:
+ self.assertEqual(manager_id,
+ wantparams['managerid'])
+ manager_id_found = True
+ if type_id:
+ self.assertEqual(type_id,
+ wantparams['typeid'])
+ type_id_found = True
+ if typeversion_id:
+ self.assertEqual(typeversion_id,
+ wantparams['typeidversion'])
+ typeversion_id_found = True
+ if instance_id:
+ self.assertEqual(instance_id,
+ wantparams['instanceid'])
+ instance_id_found = True
+
+ self.assertTrue(manager_id_found)
+ self.assertTrue(type_id_found)
+ self.assertTrue(typeversion_id_found)
+ self.assertTrue(instance_id_found)