aboutsummaryrefslogtreecommitdiffstats
path: root/os_net_config/tests
diff options
context:
space:
mode:
authorDan Prince <dprince@redhat.com>2014-08-25 17:29:06 -0400
committerDan Prince <dprince@redhat.com>2014-08-25 17:29:06 -0400
commit82bfaf3f7b4c7bb000da70b0a6e9cd847eca4a4d (patch)
tree3bc46ea290ae2a9ac0cb7245ef6dfd52319f6fbe /os_net_config/tests
parentb0ecc03512db73765a9e5c0d5f9ac3f9e8db4daf (diff)
ifcfg: restart child interfaces on updates
If a top level bridge or bond is modified we also want to restart the child interfaces.
Diffstat (limited to 'os_net_config/tests')
-rw-r--r--os_net_config/tests/test_impl_ifcfg.py60
1 files changed, 55 insertions, 5 deletions
diff --git a/os_net_config/tests/test_impl_ifcfg.py b/os_net_config/tests/test_impl_ifcfg.py
index 405f71e..c1026d9 100644
--- a/os_net_config/tests/test_impl_ifcfg.py
+++ b/os_net_config/tests/test_impl_ifcfg.py
@@ -118,10 +118,10 @@ class TestIfcfgNetConfig(base.TestCase):
super(TestIfcfgNetConfig, self).tearDown()
def get_interface_config(self, name='em1'):
- return self.provider.interfaces[name]
+ return self.provider.interface_data[name]
def get_route_config(self, name='em1'):
- return self.provider.routes.get(name, '')
+ return self.provider.route_data.get(name, '')
def test_add_base_interface(self):
interface = objects.Interface('em1')
@@ -165,7 +165,7 @@ class TestIfcfgNetConfig(base.TestCase):
self.provider.add_bridge(bridge)
self.assertEqual(_OVS_INTERFACE, self.get_interface_config())
self.assertEqual(_OVS_BRIDGE_DHCP,
- self.provider.bridges['br-ctlplane'])
+ self.provider.bridge_data['br-ctlplane'])
def test_network_ovs_bridge_with_dhcp_primary_interface(self):
def test_interface_mac(name):
@@ -179,7 +179,7 @@ class TestIfcfgNetConfig(base.TestCase):
self.provider.add_bridge(bridge)
self.assertEqual(_OVS_INTERFACE, self.get_interface_config())
self.assertEqual(_OVS_BRIDGE_DHCP_PRIMARY_INTERFACE,
- self.provider.bridges['br-ctlplane'])
+ self.provider.bridge_data['br-ctlplane'])
def test_network_ovs_bridge_with_dhcp_primary_interface_with_extra(self):
def test_interface_mac(name):
@@ -195,7 +195,7 @@ class TestIfcfgNetConfig(base.TestCase):
self.provider.add_bridge(bridge)
self.assertEqual(_OVS_INTERFACE, self.get_interface_config())
self.assertEqual(_OVS_BRIDGE_DHCP_OVS_EXTRA,
- self.provider.bridges['br-ctlplane'])
+ self.provider.bridge_data['br-ctlplane'])
def test_add_vlan(self):
vlan = objects.Vlan('em1', 5)
@@ -244,6 +244,7 @@ class TestIfcfgNetConfigApply(base.TestCase):
self.temp_route_file = tempfile.NamedTemporaryFile()
self.temp_bridge_file = tempfile.NamedTemporaryFile()
self.temp_cleanup_file = tempfile.NamedTemporaryFile(delete=False)
+ self.ifup_interface_names = []
def test_ifcfg_path(name):
return self.temp_ifcfg_file.name
@@ -262,6 +263,8 @@ class TestIfcfgNetConfigApply(base.TestCase):
self.stubs.Set(impl_ifcfg, 'cleanup_pattern', test_cleanup_pattern)
def test_execute(*args, **kwargs):
+ if args[0] == '/sbin/ifup':
+ self.ifup_interface_names.append(args[1])
pass
self.stubs.Set(processutils, 'execute', test_execute)
@@ -305,6 +308,53 @@ class TestIfcfgNetConfigApply(base.TestCase):
route_data = utils.get_file_data(self.temp_route_file.name)
self.assertEqual("", route_data)
+ def test_restart_children_on_change(self):
+ # setup and apply a bridge
+ interface = objects.Interface('em1')
+ bridge = objects.OvsBridge('br-ctlplane', use_dhcp=True,
+ members=[interface])
+ self.provider.add_interface(interface)
+ self.provider.add_bridge(bridge)
+ self.provider.apply()
+
+ # changing the bridge should restart the interface too
+ self.ifup_interface_names = []
+ bridge = objects.OvsBridge('br-ctlplane', use_dhcp=False,
+ members=[interface])
+ self.provider.add_interface(interface)
+ self.provider.add_bridge(bridge)
+ self.provider.apply()
+ self.assertIn('em1', self.ifup_interface_names)
+ self.assertIn('br-ctlplane', self.ifup_interface_names)
+
+ # setup and apply a bond on a bridge
+ self.ifup_interface_names = []
+ interface1 = objects.Interface('em1')
+ interface2 = objects.Interface('em2')
+ bond = objects.OvsBond('bond0',
+ members=[interface1, interface2])
+ bridge = objects.OvsBridge('br-ctlplane', use_dhcp=True,
+ members=[bond])
+ self.provider.add_interface(interface1)
+ self.provider.add_interface(interface2)
+ self.provider.add_bond(bond)
+ self.provider.add_bridge(bridge)
+ self.provider.apply()
+
+ # changing the bridge should restart everything
+ self.ifup_interface_names = []
+ bridge = objects.OvsBridge('br-ctlplane', use_dhcp=False,
+ members=[bond])
+ self.provider.add_interface(interface1)
+ self.provider.add_interface(interface2)
+ self.provider.add_bond(bond)
+ self.provider.add_bridge(bridge)
+ self.provider.apply()
+ self.assertIn('br-ctlplane', self.ifup_interface_names)
+ self.assertIn('bond0', self.ifup_interface_names)
+ self.assertIn('em1', self.ifup_interface_names)
+ self.assertIn('em2', self.ifup_interface_names)
+
def test_vlan_apply(self):
vlan = objects.Vlan('em1', 5)
self.provider.add_vlan(vlan)