From 3304fa066d1dae93df0f597c1709c955e3857a5d Mon Sep 17 00:00:00 2001 From: Steven Hardy Date: Mon, 26 Jan 2015 18:44:21 +0000 Subject: Add a --no-activate option to disable device up/down actions Allows you to only install the config, but not take interfaces down/up. Useful if you wish to defer activation of a new config until a later time (e.g reboot). Change-Id: I42f3195e1d3d5d3b9d1c9dbb1f7cf1364503cbd3 --- os_net_config/tests/test_impl_eni.py | 19 +++++++++++++++++++ os_net_config/tests/test_impl_ifcfg.py | 13 +++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) (limited to 'os_net_config/tests') diff --git a/os_net_config/tests/test_impl_eni.py b/os_net_config/tests/test_impl_eni.py index 9322017..e5a712e 100644 --- a/os_net_config/tests/test_impl_eni.py +++ b/os_net_config/tests/test_impl_eni.py @@ -207,13 +207,17 @@ class TestENINetConfigApply(base.TestCase): def setUp(self): super(TestENINetConfigApply, self).setUp() self.temp_config_file = tempfile.NamedTemporaryFile() + self.ifup_interface_names = [] def test_config_path(): return self.temp_config_file.name self.stubs.Set(impl_eni, '_network_config_path', test_config_path) 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) self.provider = impl_eni.ENINetConfig() @@ -232,6 +236,19 @@ class TestENINetConfigApply(base.TestCase): self.provider.apply() iface_data = utils.get_file_data(self.temp_config_file.name) self.assertEqual((_V4_IFACE_STATIC_IP + _RTS), iface_data) + self.assertIn('eth0', self.ifup_interface_names) + + def test_apply_noactivate(self): + route = objects.Route('192.168.1.1', '172.19.0.0/24') + v4_addr = objects.Address('192.168.1.2/24') + interface = objects.Interface('eth0', addresses=[v4_addr], + routes=[route]) + self.provider.add_interface(interface) + + self.provider.apply(activate=False) + iface_data = utils.get_file_data(self.temp_config_file.name) + self.assertEqual((_V4_IFACE_STATIC_IP + _RTS), iface_data) + self.assertEqual([], self.ifup_interface_names) def test_dhcp_ovs_bridge_network_apply(self): interface = objects.Interface('eth0') @@ -242,3 +259,5 @@ class TestENINetConfigApply(base.TestCase): self.provider.apply() iface_data = utils.get_file_data(self.temp_config_file.name) self.assertEqual((_OVS_BRIDGE_DHCP + _OVS_PORT_IFACE), iface_data) + self.assertIn('eth0', self.ifup_interface_names) + self.assertIn('br0', self.ifup_interface_names) diff --git a/os_net_config/tests/test_impl_ifcfg.py b/os_net_config/tests/test_impl_ifcfg.py index 02a5cb4..3930709 100644 --- a/os_net_config/tests/test_impl_ifcfg.py +++ b/os_net_config/tests/test_impl_ifcfg.py @@ -328,6 +328,15 @@ class TestIfcfgNetConfigApply(base.TestCase): route_data = utils.get_file_data(self.temp_route_file.name) self.assertEqual("", route_data) + def test_apply_noactivate(self): + 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(activate=False) + self.assertEqual([], self.ifup_interface_names) + def test_restart_children_on_change(self): # setup and apply a bridge interface = objects.Interface('em1') @@ -336,6 +345,8 @@ class TestIfcfgNetConfigApply(base.TestCase): 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) # changing the bridge should restart the interface too self.ifup_interface_names = [] @@ -344,8 +355,6 @@ class TestIfcfgNetConfigApply(base.TestCase): 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 = [] -- cgit 1.2.3-korg