aboutsummaryrefslogtreecommitdiffstats
path: root/os_net_config/tests/test_objects.py
diff options
context:
space:
mode:
authorDan Sneddon <dsneddon@redhat.com>2015-09-02 17:07:48 -0700
committerDan Sneddon <dsneddon@redhat.com>2015-10-12 11:03:25 -0700
commitd01acefc15cebcfc5b7d808d3ed4f41cbaf8d74d (patch)
tree36611573e6a153f6562d9b28a706d22915547bea /os_net_config/tests/test_objects.py
parent62bc734ad540cde0cf47b863db686b328d575d33 (diff)
Add Linux Bridge capability to os-net-config ifcfg
This patch adds support for Linux Bridges to os-net-config. This is done completely with ifcfg files, brctl is not used directly. Hierarchy is preserved, so a Linux Bridge may have a Linux Bond as a member, which in turn may have multiple interfaces as members. This changeset has been updated to include a more specific example for Linux bridge configuration (that doesn't combine bridging and bonding). This change depends on the change to add support for Linux Bonds. Change-Id: I1ddacd514b02af30139a868071d82cde19b1f946
Diffstat (limited to 'os_net_config/tests/test_objects.py')
-rw-r--r--os_net_config/tests/test_objects.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/os_net_config/tests/test_objects.py b/os_net_config/tests/test_objects.py
index 3d95bd6..a2e021b 100644
--- a/os_net_config/tests/test_objects.py
+++ b/os_net_config/tests/test_objects.py
@@ -267,6 +267,82 @@ class TestBridge(base.TestCase):
self.assertEqual("br-foo", interface2.bridge_name)
+class TestLinuxBridge(base.TestCase):
+
+ def test_from_json_dhcp(self):
+ data = """{
+"type": "linux_bridge",
+"name": "br-foo",
+"use_dhcp": true,
+"members": [{
+ "type": "interface",
+ "name": "em1"
+}]
+}
+"""
+ bridge = objects.object_from_json(json.loads(data))
+ self.assertEqual("br-foo", bridge.name)
+ self.assertEqual(True, bridge.use_dhcp)
+ interface1 = bridge.members[0]
+ self.assertEqual("em1", interface1.name)
+ self.assertEqual(False, interface1.ovs_port)
+ self.assertEqual("br-foo", interface1.linux_bridge_name)
+
+ def test_from_json_dhcp_with_nic1(self):
+ def dummy_numbered_nics(nic_mapping=None):
+ return {"nic1": "em5"}
+ self.stubs.Set(objects, '_numbered_nics', dummy_numbered_nics)
+
+ data = """{
+"type": "linux_bridge",
+"name": "br-foo",
+"use_dhcp": true,
+"members": [{
+ "type": "interface",
+ "name": "nic1"
+}]
+}
+"""
+ bridge = objects.object_from_json(json.loads(data))
+ self.assertEqual("br-foo", bridge.name)
+ self.assertEqual(True, bridge.use_dhcp)
+ interface1 = bridge.members[0]
+ self.assertEqual("em5", interface1.name)
+ self.assertEqual(False, interface1.ovs_port)
+ self.assertEqual("br-foo", interface1.linux_bridge_name)
+
+ def test_from_json_primary_interface(self):
+ data = """{
+"type": "linux_bridge",
+"name": "br-foo",
+"use_dhcp": true,
+"members": [
+ {
+ "type": "interface",
+ "name": "em1",
+ "primary": "true"
+ },
+ {
+ "type": "interface",
+ "name": "em2"
+ }]
+}
+"""
+ bridge = objects.object_from_json(json.loads(data))
+ self.assertEqual("br-foo", bridge.name)
+ self.assertEqual(True, bridge.use_dhcp)
+ self.assertEqual("em1", bridge.primary_interface_name)
+ interface1 = bridge.members[0]
+ self.assertEqual("em1", interface1.name)
+ self.assertEqual(False, interface1.ovs_port)
+ self.assertEqual(True, interface1.primary)
+ self.assertEqual("br-foo", interface1.linux_bridge_name)
+ interface2 = bridge.members[1]
+ self.assertEqual("em2", interface2.name)
+ self.assertEqual(False, interface2.ovs_port)
+ self.assertEqual("br-foo", interface2.linux_bridge_name)
+
+
class TestBond(base.TestCase):
def test_from_json_dhcp(self):