~hudson-openstack/nova/trunk

« back to all changes in this revision

Viewing changes to nova/tests/test_linux_net.py

  • Committer: Tarmac
  • Author(s): Vishvananda Ishaya
  • Date: 2011-09-21 13:31:54 UTC
  • mfrom: (1541.12.4 fix-dhcp)
  • Revision ID: tarmac-20110921133154-sgi5da2en4x1mgp8
Makes sure ips are moved on the bridge for nodes running dnsmasq so that the gateway ip is always first.

Show diffs side-by-side

added added

removed removed

Lines of Context:
345
345
        expected = ("10.0.0.1,fake_instance00.novalocal,192.168.0.100")
346
346
        actual = self.driver._host_dhcp(fixed_ips[0])
347
347
        self.assertEquals(actual, expected)
 
348
 
 
349
    def _test_initialize_gateway(self, existing, expected):
 
350
        self.flags(fake_network=False)
 
351
        executes = []
 
352
 
 
353
        def fake_execute(*args, **kwargs):
 
354
            executes.append(args)
 
355
            if args[0] == 'ip' and args[1] == 'addr' and args[2] == 'show':
 
356
                return existing, ""
 
357
        self.stubs.Set(utils, 'execute', fake_execute)
 
358
        network = {'dhcp_server': '192.168.1.1',
 
359
                   'cidr': '192.168.1.0/24',
 
360
                   'broadcast': '192.168.1.255',
 
361
                   'cidr_v6': '2001:db8::/64'}
 
362
        self.driver.initialize_gateway_device('eth0', network)
 
363
        self.assertEqual(executes, expected)
 
364
 
 
365
    def test_initialize_gateway_moves_wrong_ip(self):
 
366
        existing = ("2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> "
 
367
            "    mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000\n"
 
368
            "    link/ether de:ad:be:ef:be:ef brd ff:ff:ff:ff:ff:ff\n"
 
369
            "    inet 192.168.0.1/24 brd 192.168.0.255 scope global eth0\n"
 
370
            "    inet6 dead::beef:dead:beef:dead/64 scope link\n"
 
371
            "    valid_lft forever preferred_lft forever\n")
 
372
        expected = [
 
373
            ('ip', 'addr', 'show', 'dev', 'eth0', 'scope', 'global'),
 
374
            ('ip', 'addr', 'del', '192.168.0.1/24',
 
375
             'brd', '192.168.0.255', 'scope', 'global', 'dev', 'eth0'),
 
376
            ('ip', 'addr', 'add', '192.168.1.1/24',
 
377
             'brd', '192.168.1.255', 'dev', 'eth0'),
 
378
            ('ip', 'addr', 'add', '192.168.0.1/24',
 
379
             'brd', '192.168.0.255', 'scope', 'global', 'dev', 'eth0'),
 
380
            ('ip', '-f', 'inet6', 'addr', 'change',
 
381
             '2001:db8::/64', 'dev', 'eth0'),
 
382
            ('ip', 'link', 'set', 'dev', 'eth0', 'promisc', 'on'),
 
383
        ]
 
384
        self._test_initialize_gateway(existing, expected)
 
385
 
 
386
    def test_initialize_gateway_no_move_right_ip(self):
 
387
        existing = ("2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> "
 
388
            "    mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000\n"
 
389
            "    link/ether de:ad:be:ef:be:ef brd ff:ff:ff:ff:ff:ff\n"
 
390
            "    inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0\n"
 
391
            "    inet 192.168.0.1/24 brd 192.168.0.255 scope global eth0\n"
 
392
            "    inet6 dead::beef:dead:beef:dead/64 scope link\n"
 
393
            "    valid_lft forever preferred_lft forever\n")
 
394
        expected = [
 
395
            ('ip', 'addr', 'show', 'dev', 'eth0', 'scope', 'global'),
 
396
            ('ip', '-f', 'inet6', 'addr', 'change',
 
397
             '2001:db8::/64', 'dev', 'eth0'),
 
398
            ('ip', 'link', 'set', 'dev', 'eth0', 'promisc', 'on'),
 
399
        ]
 
400
        self._test_initialize_gateway(existing, expected)
 
401
 
 
402
    def test_initialize_gateway_add_if_blank(self):
 
403
        existing = ("2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> "
 
404
            "    mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000\n"
 
405
            "    link/ether de:ad:be:ef:be:ef brd ff:ff:ff:ff:ff:ff\n"
 
406
            "    inet6 dead::beef:dead:beef:dead/64 scope link\n"
 
407
            "    valid_lft forever preferred_lft forever\n")
 
408
        expected = [
 
409
            ('ip', 'addr', 'show', 'dev', 'eth0', 'scope', 'global'),
 
410
            ('ip', 'addr', 'add', '192.168.1.1/24',
 
411
             'brd', '192.168.1.255', 'dev', 'eth0'),
 
412
            ('ip', '-f', 'inet6', 'addr', 'change',
 
413
             '2001:db8::/64', 'dev', 'eth0'),
 
414
            ('ip', 'link', 'set', 'dev', 'eth0', 'promisc', 'on'),
 
415
        ]
 
416
        self._test_initialize_gateway(existing, expected)