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)
349
def _test_initialize_gateway(self, existing, expected):
350
self.flags(fake_network=False)
353
def fake_execute(*args, **kwargs):
354
executes.append(args)
355
if args[0] == 'ip' and args[1] == 'addr' and args[2] == 'show':
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)
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")
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'),
384
self._test_initialize_gateway(existing, expected)
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")
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'),
400
self._test_initialize_gateway(existing, expected)
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")
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'),
416
self._test_initialize_gateway(existing, expected)