Merge "Fix floating-ips in error state in dvr mode"
This commit is contained in:
commit
ef86198181
|
@ -1600,14 +1600,16 @@ class L3NATAgent(firewall_l3_agent.FWaaSL3AgentRpcCallback,
|
||||||
rtr_2_fip, fip_2_rtr = ri.rtr_fip_subnet.get_pair()
|
rtr_2_fip, fip_2_rtr = ri.rtr_fip_subnet.get_pair()
|
||||||
ip_wrapper = ip_lib.IPWrapper(self.root_helper,
|
ip_wrapper = ip_lib.IPWrapper(self.root_helper,
|
||||||
namespace=ri.ns_name)
|
namespace=ri.ns_name)
|
||||||
int_dev = ip_wrapper.add_veth(rtr_2_fip_name,
|
if not ip_lib.device_exists(rtr_2_fip_name, self.root_helper,
|
||||||
fip_2_rtr_name, fip_ns_name)
|
namespace=ri.ns_name):
|
||||||
self.internal_ns_interface_added(str(rtr_2_fip),
|
int_dev = ip_wrapper.add_veth(rtr_2_fip_name,
|
||||||
rtr_2_fip_name, ri.ns_name)
|
fip_2_rtr_name, fip_ns_name)
|
||||||
self.internal_ns_interface_added(str(fip_2_rtr),
|
self.internal_ns_interface_added(str(rtr_2_fip),
|
||||||
fip_2_rtr_name, fip_ns_name)
|
rtr_2_fip_name, ri.ns_name)
|
||||||
int_dev[0].link.set_up()
|
self.internal_ns_interface_added(str(fip_2_rtr),
|
||||||
int_dev[1].link.set_up()
|
fip_2_rtr_name, fip_ns_name)
|
||||||
|
int_dev[0].link.set_up()
|
||||||
|
int_dev[1].link.set_up()
|
||||||
# add default route for the link local interface
|
# add default route for the link local interface
|
||||||
device = ip_lib.IPDevice(rtr_2_fip_name, self.root_helper,
|
device = ip_lib.IPDevice(rtr_2_fip_name, self.root_helper,
|
||||||
namespace=ri.ns_name)
|
namespace=ri.ns_name)
|
||||||
|
|
|
@ -2107,6 +2107,7 @@ vrrp_instance VR_1 {
|
||||||
fip_ns_name = agent.get_fip_ns_name(str(fip['floating_network_id']))
|
fip_ns_name = agent.get_fip_ns_name(str(fip['floating_network_id']))
|
||||||
|
|
||||||
with mock.patch.object(l3_agent.LinkLocalAllocator, '_write'):
|
with mock.patch.object(l3_agent.LinkLocalAllocator, '_write'):
|
||||||
|
self.device_exists.return_value = False
|
||||||
agent.create_rtr_2_fip_link(ri, fip['floating_network_id'])
|
agent.create_rtr_2_fip_link(ri, fip['floating_network_id'])
|
||||||
self.mock_ip.add_veth.assert_called_with(rtr_2_fip_name,
|
self.mock_ip.add_veth.assert_called_with(rtr_2_fip_name,
|
||||||
fip_2_rtr_name, fip_ns_name)
|
fip_2_rtr_name, fip_ns_name)
|
||||||
|
@ -2116,6 +2117,17 @@ vrrp_instance VR_1 {
|
||||||
|
|
||||||
# TODO(mrsmith): test _create_agent_gateway_port
|
# TODO(mrsmith): test _create_agent_gateway_port
|
||||||
|
|
||||||
|
def test_create_rtr_2_fip_link_already_exists(self):
|
||||||
|
agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)
|
||||||
|
router = prepare_router_data()
|
||||||
|
|
||||||
|
ri = l3_agent.RouterInfo(router['id'], self.conf.root_helper,
|
||||||
|
router=router)
|
||||||
|
self.device_exists.return_value = True
|
||||||
|
with mock.patch.object(l3_agent.LinkLocalAllocator, '_write'):
|
||||||
|
agent.create_rtr_2_fip_link(ri, {})
|
||||||
|
self.assertFalse(self.mock_ip.add_veth.called)
|
||||||
|
|
||||||
def test_floating_ip_added_dist(self):
|
def test_floating_ip_added_dist(self):
|
||||||
agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)
|
agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)
|
||||||
router = prepare_router_data()
|
router = prepare_router_data()
|
||||||
|
|
Loading…
Reference in New Issue