aboutsummaryrefslogtreecommitdiffstats
path: root/os_net_config/tests
diff options
context:
space:
mode:
Diffstat (limited to 'os_net_config/tests')
-rw-r--r--os_net_config/tests/test_cli.py17
-rw-r--r--os_net_config/tests/test_impl_ifcfg.py24
-rw-r--r--os_net_config/tests/test_objects.py46
3 files changed, 87 insertions, 0 deletions
diff --git a/os_net_config/tests/test_cli.py b/os_net_config/tests/test_cli.py
index 939b12e..c5c825f 100644
--- a/os_net_config/tests/test_cli.py
+++ b/os_net_config/tests/test_cli.py
@@ -147,6 +147,23 @@ class TestCli(base.TestCase):
'-c %s --detailed-exit-codes'
% interface_yaml, exitcodes=(0,))
+ def test_ovs_dpdk_bond_noop_output(self):
+ ivs_yaml = os.path.join(SAMPLE_BASE, 'ovs_dpdk_bond.yaml')
+ ivs_json = os.path.join(SAMPLE_BASE, 'ovs_dpdk_bond.json')
+ stdout_yaml, stderr = self.run_cli('ARG0 --provider=ifcfg --noop '
+ '-c %s' % ivs_yaml)
+ self.assertEqual('', stderr)
+ stdout_json, stderr = self.run_cli('ARG0 --provider=ifcfg --noop '
+ '-c %s' % ivs_json)
+ self.assertEqual('', stderr)
+ sanity_devices = ['DEVICE=br-link',
+ 'TYPE=OVSUserBridge',
+ 'DEVICE=dpdkbond0',
+ 'TYPE=OVSDPDKBond']
+ for dev in sanity_devices:
+ self.assertIn(dev, stdout_yaml)
+ self.assertEqual(stdout_yaml, stdout_json)
+
def test_nfvswitch_noop_output(self):
nfvswitch_yaml = os.path.join(SAMPLE_BASE, 'nfvswitch.yaml')
nfvswitch_json = os.path.join(SAMPLE_BASE, 'nfvswitch.json')
diff --git a/os_net_config/tests/test_impl_ifcfg.py b/os_net_config/tests/test_impl_ifcfg.py
index ad27d83..74dd1f9 100644
--- a/os_net_config/tests/test_impl_ifcfg.py
+++ b/os_net_config/tests/test_impl_ifcfg.py
@@ -788,6 +788,30 @@ OVS_BRIDGE=br-link
self.provider.bridge_data['br-link'])
self.assertEqual(dpdk0_config, self.get_interface_config('dpdk0'))
+ def test_network_ovs_dpdk_bond(self):
+ iface0 = objects.Interface(name='eth1')
+ dpdk0 = objects.OvsDpdkPort(name='dpdk0', members=[iface0])
+ iface1 = objects.Interface(name='eth2')
+ dpdk1 = objects.OvsDpdkPort(name='dpdk1', members=[iface1])
+ bond = objects.OvsDpdkBond('dpdkbond0', members=[dpdk0, dpdk1])
+ bridge = objects.OvsUserBridge('br-link', members=[bond])
+ self.provider.add_bond(bond)
+ self.provider.add_bridge(bridge)
+
+ dpdk_bond_config = """# This file is autogenerated by os-net-config
+DEVICE=dpdkbond0
+ONBOOT=yes
+HOTPLUG=no
+NM_CONTROLLED=no
+PEERDNS=no
+DEVICETYPE=ovs
+TYPE=OVSDPDKBond
+OVS_BRIDGE=br-link
+BOND_IFACES="dpdk0 dpdk1"
+"""
+ self.assertEqual(dpdk_bond_config,
+ self.get_interface_config('dpdkbond0'))
+
class TestIfcfgNetConfigApply(base.TestCase):
diff --git a/os_net_config/tests/test_objects.py b/os_net_config/tests/test_objects.py
index 7e8441c..92d43b9 100644
--- a/os_net_config/tests/test_objects.py
+++ b/os_net_config/tests/test_objects.py
@@ -830,3 +830,49 @@ class TestNicMapping(base.TestCase):
expected = {}
# This only emits a warning, so it should still work
self.assertEqual(expected, objects._mapped_nics())
+
+
+class TestOvsDpdkBond(base.TestCase):
+
+ def test_from_json_dhcp(self):
+ data = """{
+"type": "ovs_dpdk_bond",
+"name": "dpdkbond0",
+"use_dhcp": true,
+"members": [
+ {
+ "type": "ovs_dpdk_port",
+ "name": "dpdk0",
+ "members": [
+ {
+ "type": "interface",
+ "name": "eth1"
+ }
+ ]
+ },
+ {
+ "type": "ovs_dpdk_port",
+ "name": "dpdk1",
+ "members": [
+ {
+ "type": "interface",
+ "name": "eth2"
+ }
+ ]
+ }
+]
+}
+"""
+ bond = objects.object_from_json(json.loads(data))
+ self.assertEqual("dpdkbond0", bond.name)
+ self.assertTrue(bond.use_dhcp)
+ dpdk_port0 = bond.members[0]
+ self.assertEqual("dpdk0", dpdk_port0.name)
+ self.assertEqual("vfio-pci", dpdk_port0.driver)
+ iface1 = dpdk_port0.members[0]
+ self.assertEqual("eth1", iface1.name)
+ dpdk_port1 = bond.members[1]
+ self.assertEqual("dpdk1", dpdk_port1.name)
+ self.assertEqual("vfio-pci", dpdk_port1.driver)
+ iface2 = dpdk_port1.members[0]
+ self.assertEqual("eth2", iface2.name)