Merge "Spawn metadata proxy on dvr ha standby routers" into stable/pike
This commit is contained in:
commit
e71e4b3ea8
|
@ -149,7 +149,10 @@ class AgentMixin(object):
|
||||||
interface_name, enable)
|
interface_name, enable)
|
||||||
|
|
||||||
def _update_metadata_proxy(self, ri, router_id, state):
|
def _update_metadata_proxy(self, ri, router_id, state):
|
||||||
if state == 'master':
|
# NOTE(slaweq): Since the metadata proxy is spawned in the qrouter
|
||||||
|
# namespace and not in the snat namespace, even standby DVR-HA
|
||||||
|
# routers needs to serve metadata requests to local ports.
|
||||||
|
if state == 'master' or ri.router.get('distributed', False):
|
||||||
LOG.debug('Spawning metadata proxy for router %s', router_id)
|
LOG.debug('Spawning metadata proxy for router %s', router_id)
|
||||||
self.metadata_driver.spawn_monitored_metadata_proxy(
|
self.metadata_driver.spawn_monitored_metadata_proxy(
|
||||||
self.process_monitor, ri.ns_name, self.conf.metadata_port,
|
self.process_monitor, ri.ns_name, self.conf.metadata_port,
|
||||||
|
|
|
@ -214,6 +214,45 @@ class TestBasicRouterOperations(BasicRouterOperationsFramework):
|
||||||
agent.enqueue_state_change(router.id, 'master')
|
agent.enqueue_state_change(router.id, 'master')
|
||||||
self.assertFalse(agent._update_metadata_proxy.call_count)
|
self.assertFalse(agent._update_metadata_proxy.call_count)
|
||||||
|
|
||||||
|
def test_enqueue_state_change_router_active_ha(self):
|
||||||
|
agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)
|
||||||
|
router = {'distributed': False}
|
||||||
|
router_info = mock.MagicMock(router=router)
|
||||||
|
with mock.patch.object(
|
||||||
|
agent.metadata_driver, 'spawn_monitored_metadata_proxy'
|
||||||
|
) as spawn_metadata_proxy, mock.patch.object(
|
||||||
|
agent.metadata_driver, 'destroy_monitored_metadata_proxy'
|
||||||
|
) as destroy_metadata_proxy:
|
||||||
|
agent._update_metadata_proxy(router_info, "router_id", "master")
|
||||||
|
spawn_metadata_proxy.assert_called()
|
||||||
|
destroy_metadata_proxy.assert_not_called()
|
||||||
|
|
||||||
|
def test_enqueue_state_change_router_standby_ha(self):
|
||||||
|
agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)
|
||||||
|
router = {'distributed': False}
|
||||||
|
router_info = mock.MagicMock(router=router)
|
||||||
|
with mock.patch.object(
|
||||||
|
agent.metadata_driver, 'spawn_monitored_metadata_proxy'
|
||||||
|
) as spawn_metadata_proxy, mock.patch.object(
|
||||||
|
agent.metadata_driver, 'destroy_monitored_metadata_proxy'
|
||||||
|
) as destroy_metadata_proxy:
|
||||||
|
agent._update_metadata_proxy(router_info, "router_id", "standby")
|
||||||
|
spawn_metadata_proxy.assert_not_called()
|
||||||
|
destroy_metadata_proxy.assert_called()
|
||||||
|
|
||||||
|
def test_enqueue_state_change_router_standby_ha_dvr(self):
|
||||||
|
agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)
|
||||||
|
router = {'distributed': True}
|
||||||
|
router_info = mock.MagicMock(router=router)
|
||||||
|
with mock.patch.object(
|
||||||
|
agent.metadata_driver, 'spawn_monitored_metadata_proxy'
|
||||||
|
) as spawn_metadata_proxy, mock.patch.object(
|
||||||
|
agent.metadata_driver, 'destroy_monitored_metadata_proxy'
|
||||||
|
) as destroy_metadata_proxy:
|
||||||
|
agent._update_metadata_proxy(router_info, "router_id", "standby")
|
||||||
|
spawn_metadata_proxy.assert_called()
|
||||||
|
destroy_metadata_proxy.assert_not_called()
|
||||||
|
|
||||||
def _test__configure_ipv6_params_on_ext_gw_port_if_necessary_helper(
|
def _test__configure_ipv6_params_on_ext_gw_port_if_necessary_helper(
|
||||||
self, state, enable_expected):
|
self, state, enable_expected):
|
||||||
agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)
|
agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)
|
||||||
|
|
Loading…
Reference in New Issue