self.driver.init_l3(interface_name, [ex_gw_port['ip_cidr']],
namespace=ri.ns_name,
+ gateway=ex_gw_port['subnet'].get('gateway_ip'),
preserve_ips=preserve_ips)
ip_address = ex_gw_port['ip_cidr'].split('/')[0]
self._send_gratuitous_arp_packet(ri, interface_name, ip_address)
- gw_ip = ex_gw_port['subnet']['gateway_ip']
- if ex_gw_port['subnet']['gateway_ip']:
- cmd = ['route', 'add', 'default', 'gw', gw_ip]
- ip_wrapper = ip_lib.IPWrapper(self.root_helper,
- namespace=ri.ns_name)
- ip_wrapper.netns.execute(cmd, check_exit_code=False)
-
def external_gateway_removed(self, ri, ex_gw_port,
interface_name, internal_cidrs):
self.root_helper = config.get_root_helper(conf)
def init_l3(self, device_name, ip_cidrs, namespace=None,
- preserve_ips=[]):
+ preserve_ips=[], gateway=None):
"""Set the L3 settings for the interface using data from the port.
ip_cidrs: list of 'X.X.X.X/YY' strings
if ip_cidr not in preserve_ips:
device.addr.delete(ip_version, ip_cidr)
+ if gateway:
+ device.route.add_gateway(gateway)
+
def check_bridge_exists(self, bridge):
if not ip_lib.device_exists(bridge):
raise exceptions.BridgeDoesNotExist(bridge=bridge)
self.send_arp.assert_called_once_with(ri, interface_name,
'20.0.0.30')
kwargs = {'preserve_ips': ['192.168.1.34/32'],
- 'namespace': 'qrouter-' + router_id}
+ 'namespace': 'qrouter-' + router_id,
+ 'gateway': '20.0.0.1'}
self.mock_driver.init_l3.assert_called_with(interface_name,
['20.0.0.30/24'],
**kwargs)