mypy: For EC2, pre-assign address & gateway to enable assertion.

This commit is contained in:
neiljp (Neil Pilgrim)
2017-07-09 13:30:13 -07:00
committed by Tim Abbott
parent fd941e8f88
commit ba51958c40

View File

@@ -110,16 +110,22 @@ for device in macs.values():
log.info("Device ens%i not configured, starting dhcpd" % (device_number,))
subprocess.check_call(['/sbin/dhcpcd', 'ens%i' % device_number])
dev_num = str(device_number)
address = address_of(device_number)
gateway = guess_gateway(device_number)
assert(address is not None)
assert(gateway is not None)
# Horrible hack to route return packets on the correct interface
# See http://unix.stackexchange.com/a/4421/933
subprocess.check_call(
['/sbin/ip', 'rule', 'add', 'fwmark', str(device_number), 'table', str(device_number)])
['/sbin/ip', 'rule', 'add', 'fwmark', dev_num, 'table', dev_num])
subprocess.check_call(
['/sbin/ip', 'route', 'add', '0.0.0.0/0', 'table', str(device_number), 'dev',
'ens%i' % device_number, 'via', guess_gateway(device_number)])
['/sbin/ip', 'route', 'add', '0.0.0.0/0', 'table', dev_num, 'dev',
'ens%i' % device_number, 'via', gateway])
subprocess.check_call(
['/sbin/iptables', '-t', 'mangle', '-A', 'OUTPUT', '-m', 'conntrack', '--ctorigdst',
address_of(device_number), '-j', 'MARK', '--set-mark', str(device_number)])
address, '-j', 'MARK', '--set-mark', dev_num])
to_configure.remove(address_of(device_number))