From 2810a7aca4fc7d9773d77e5186f87dcf77f60ef4 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Wed, 21 Sep 2011 05:34:56 -0700 Subject: add tests and fix bug when no ip was set --- nova/tests/test_linux_net.py | 55 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) (limited to 'nova/tests') diff --git a/nova/tests/test_linux_net.py b/nova/tests/test_linux_net.py index 99577b88e..e8f2d7c63 100755 --- a/nova/tests/test_linux_net.py +++ b/nova/tests/test_linux_net.py @@ -345,3 +345,58 @@ class LinuxNetworkTestCase(test.TestCase): expected = ("10.0.0.1,fake_instance00.novalocal,192.168.0.100") actual = self.driver._host_dhcp(fixed_ips[0]) self.assertEquals(actual, expected) + + def _test_initialize_gateway(self, existing, expected): + self.flags(fake_network=False) + executes = [] + def fake_execute(*args, **kwargs): + executes.append(args) + if args[0] == 'ip' and args[1] == 'addr' and args[2] == 'show': + return existing, "" + self.stubs.Set(utils, 'execute', fake_execute) + network = {'dhcp_server': '192.168.1.1', + 'cidr': '192.168.1.0/24', + 'broadcast': '192.168.1.255', + 'cidr_v6': '2001:db8::/64'} + self.driver.initialize_gateway_device('eth0', network) + self.assertEqual(executes, expected) + + def test_initialize_gateway_moves_wrong_ip(self): + existing = ("2: eth0: " + " mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000\n" + " link/ether de:ad:be:ef:be:ef brd ff:ff:ff:ff:ff:ff\n" + " inet 192.168.0.1/24 brd 192.168.0.255 scope global eth0\n" + " inet6 dead::beef:dead:beef:dead/64 scope link\n" + " valid_lft forever preferred_lft forever\n") + expected = [('ip', 'addr', 'show', 'dev', 'eth0', 'scope', 'global'), + ('ip', 'addr', 'del', '192.168.0.1/24', 'brd', '192.168.0.255', 'scope', 'global', 'dev', 'eth0'), + ('ip', 'addr', 'add', '192.168.1.1/24', 'brd', '192.168.1.255', 'dev', 'eth0'), + ('ip', 'addr', 'add', '192.168.0.1/24', 'brd', '192.168.0.255', 'scope', 'global', 'dev', 'eth0'), + ('ip', '-f', 'inet6', 'addr', 'change', '2001:db8::/64', 'dev', 'eth0'), + ('ip', 'link', 'set', 'dev', 'eth0', 'promisc', 'on')] + self._test_initialize_gateway(existing, expected) + + def test_initialize_gateway_no_move_right_ip(self): + existing = ("2: eth0: " + " mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000\n" + " link/ether de:ad:be:ef:be:ef brd ff:ff:ff:ff:ff:ff\n" + " inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0\n" + " inet 192.168.0.1/24 brd 192.168.0.255 scope global eth0\n" + " inet6 dead::beef:dead:beef:dead/64 scope link\n" + " valid_lft forever preferred_lft forever\n") + expected = [('ip', 'addr', 'show', 'dev', 'eth0', 'scope', 'global'), + ('ip', '-f', 'inet6', 'addr', 'change', '2001:db8::/64', 'dev', 'eth0'), + ('ip', 'link', 'set', 'dev', 'eth0', 'promisc', 'on')] + self._test_initialize_gateway(existing, expected) + + def test_initialize_gateway_add_if_blank(self): + existing = ("2: eth0: " + " mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000\n" + " link/ether de:ad:be:ef:be:ef brd ff:ff:ff:ff:ff:ff\n" + " inet6 dead::beef:dead:beef:dead/64 scope link\n" + " valid_lft forever preferred_lft forever\n") + expected = [('ip', 'addr', 'show', 'dev', 'eth0', 'scope', 'global'), + ('ip', 'addr', 'add', '192.168.1.1/24', 'brd', '192.168.1.255', 'dev', 'eth0'), + ('ip', '-f', 'inet6', 'addr', 'change', '2001:db8::/64', 'dev', 'eth0'), + ('ip', 'link', 'set', 'dev', 'eth0', 'promisc', 'on')] + self._test_initialize_gateway(existing, expected) -- cgit