aboutsummaryrefslogtreecommitdiffstats
path: root/os_net_config/tests
diff options
context:
space:
mode:
authorDan Prince <dprince@redhat.com>2014-06-10 14:01:06 -0400
committerDan Prince <dprince@redhat.com>2014-06-10 14:01:06 -0400
commit86230e11d10a9a605f1eaaf9ab3619875224eb3d (patch)
treecac4dce869f1049b86b576dfb4e034f41e40e784 /os_net_config/tests
parent3e1474324568a277bd3d8e493d26021ec3f3767c (diff)
Implement apply for ifcfg implementation
Adds an apply function to the ifcfg implementation which: 1) Shuts down existing interfaces w/ ifdown 2) writes new interfaces config files (routes too) 3) Starts up new interfaces w/ ifup
Diffstat (limited to 'os_net_config/tests')
-rw-r--r--os_net_config/tests/test_impl_ifcfg.py81
1 files changed, 63 insertions, 18 deletions
diff --git a/os_net_config/tests/test_impl_ifcfg.py b/os_net_config/tests/test_impl_ifcfg.py
index 7a2deec..a383a56 100644
--- a/os_net_config/tests/test_impl_ifcfg.py
+++ b/os_net_config/tests/test_impl_ifcfg.py
@@ -16,16 +16,18 @@ import tempfile
from os_net_config import impl_ifcfg
from os_net_config import objects
+from os_net_config.openstack.common import processutils
from os_net_config.tests import base
+from os_net_config import utils
-_BASE_IFCFG = """DEVICE=foo
+_BASE_IFCFG = """DEVICE=em1
ONBOOT=yes
HOTPLUG=no
"""
_V4_IFCFG = _BASE_IFCFG + """BOOTPROTO=static
-IPADDR=192.168.1.1
+IPADDR=192.168.1.2
NETMASK=255.255.255.0
"""
@@ -40,43 +42,86 @@ _OVS_IFCFG = _BASE_IFCFG + "DEVICETYPE=ovs\n"
_OVS_BRIDGE_IFCFG = _BASE_IFCFG + "DEVICETYPE=ovs\n"
-class TestIfcfgNetwork(base.TestCase):
+_ROUTES = """default via 192.168.1.1 dev em1
+172.19.0.0/24 via 192.168.1.1 dev em1
+"""
+
+
+class TestIfcfgNetConfig(base.TestCase):
def setUp(self):
- super(TestIfcfgNetwork, self).setUp()
- self.temp_config_file = tempfile.NamedTemporaryFile()
+ super(TestIfcfgNetConfig, self).setUp()
+ self.temp_ifcfg_file = tempfile.NamedTemporaryFile()
+ self.temp_route_file = tempfile.NamedTemporaryFile()
+
+ def test_ifcfg_path(name):
+ return self.temp_ifcfg_file.name
+ self.stubs.Set(impl_ifcfg, 'ifcfg_config_path', test_ifcfg_path)
- def test_config_path(name):
- return self.temp_config_file.name
- self.stubs.Set(impl_ifcfg, 'ifcfg_config_path', test_config_path)
- self.provider = impl_ifcfg.IfcfgNetwork()
+ def test_routes_path(name):
+ return self.temp_route_file.name
+ self.stubs.Set(impl_ifcfg, 'route_config_path', test_routes_path)
+
+ self.provider = impl_ifcfg.IfcfgNetConfig()
def tearDown(self):
- self.temp_config_file.close()
- super(TestIfcfgNetwork, self).tearDown()
+ self.temp_ifcfg_file.close()
+ self.temp_route_file.close()
+ super(TestIfcfgNetConfig, self).tearDown()
def get_interface_config(self):
- return self.provider.interfaces['foo']
+ return self.provider.interfaces['em1']
+
+ def get_route_config(self):
+ return self.provider.routes['em1']
def test_add_base_interface(self):
- interface = objects.Interface('foo')
+ interface = objects.Interface('em1')
self.provider.addInterface(interface)
self.assertEqual(_BASE_IFCFG, self.get_interface_config())
def test_add_ovs_interface(self):
- interface = objects.Interface('foo')
+ interface = objects.Interface('em1')
interface.type = 'ovs'
self.provider.addInterface(interface)
self.assertEqual(_OVS_IFCFG, self.get_interface_config())
def test_add_interface_with_v4(self):
- v4_addr = objects.Address('192.168.1.1/24')
- interface = objects.Interface('foo', addresses=[v4_addr])
+ v4_addr = objects.Address('192.168.1.2/24')
+ interface = objects.Interface('em1', addresses=[v4_addr])
self.provider.addInterface(interface)
self.assertEqual(_V4_IFCFG, self.get_interface_config())
def test_add_interface_with_v6(self):
v6_addr = objects.Address('2001:abc:a::/64')
- interface = objects.Interface('foo', addresses=[v6_addr])
+ interface = objects.Interface('em1', addresses=[v6_addr])
self.provider.addInterface(interface)
- self.assertEqual(_V6_IFCFG, self.get_interface_config())
+
+ def test_network_with_routes(self):
+ route1 = objects.Route('192.168.1.1', default=True)
+ route2 = objects.Route('192.168.1.1', '172.19.0.0/24')
+ v4_addr = objects.Address('192.168.1.2/24')
+ interface = objects.Interface('em1', addresses=[v4_addr],
+ routes=[route1, route2])
+ self.provider.addInterface(interface)
+ self.assertEqual(_V4_IFCFG, self.get_interface_config())
+ self.assertEqual(_ROUTES, self.get_route_config())
+
+ def test_apply(self):
+ route1 = objects.Route('192.168.1.1', default=True)
+ route2 = objects.Route('192.168.1.1', '172.19.0.0/24')
+ v4_addr = objects.Address('192.168.1.2/24')
+ interface = objects.Interface('em1', addresses=[v4_addr],
+ routes=[route1, route2])
+ self.provider.addInterface(interface)
+
+ def test_execute(*args, **kwargs):
+ pass
+ self.stubs.Set(processutils, 'execute', test_execute)
+
+ self.provider.apply()
+
+ ifcfg_data = utils.get_file_data(self.temp_ifcfg_file.name)
+ self.assertEqual(_V4_IFCFG, ifcfg_data)
+ route_data = utils.get_file_data(self.temp_route_file.name)
+ self.assertEqual(_ROUTES, route_data)