Do not create fip agent port for dvr_no_external node
Change-Id: I6c108806aaf41ee12594d9b0909b1a301c394c64 Closes-Bug: #1723891
This commit is contained in:
parent
c0fe9e34a1
commit
d2e14524c9
|
@ -848,6 +848,9 @@ class _DVRAgentInterfaceMixin(object):
|
|||
"""
|
||||
l3_agent_db = self._get_agent_by_type_and_host(
|
||||
context, const.AGENT_TYPE_L3, host)
|
||||
l3_agent_mode = self._get_agent_mode(l3_agent_db)
|
||||
if l3_agent_mode == l3_const.L3_AGENT_MODE_DVR_NO_EXTERNAL:
|
||||
return
|
||||
if l3_agent_db:
|
||||
LOG.debug("Agent ID exists: %s", l3_agent_db['id'])
|
||||
f_port = self._get_agent_gw_ports_exist_for_network(
|
||||
|
|
|
@ -29,6 +29,7 @@ from neutron.db import agents_db
|
|||
from neutron.db import common_db_mixin
|
||||
from neutron.db import l3_dvr_db
|
||||
from neutron.db import l3_dvrscheduler_db
|
||||
from neutron.db.models import agent as agent_model
|
||||
from neutron.db.models import l3 as l3_models
|
||||
from neutron.db import models_v2
|
||||
from neutron.extensions import l3
|
||||
|
@ -470,6 +471,39 @@ class L3DvrTestCase(test_db_base_plugin_v2.NeutronDbPluginV2TestCase):
|
|||
fip, floatingip, router))
|
||||
self.assertTrue(create_fip.called)
|
||||
|
||||
def test_create_fip_agent_gw_port_if_not_exists_with_l3_agent(self):
|
||||
fport_db = {'id': _uuid()}
|
||||
self.mixin._get_agent_gw_ports_exist_for_network = mock.Mock(
|
||||
return_value=fport_db)
|
||||
|
||||
fipagent = agent_model.Agent(
|
||||
binary='foo-agent',
|
||||
host='host',
|
||||
agent_type='L3 agent',
|
||||
topic='foo_topic',
|
||||
configurations='{"agent_mode": "dvr_no_external"}')
|
||||
self.mixin._get_agent_by_type_and_host = mock.Mock(
|
||||
return_value=fipagent)
|
||||
fport = self.mixin.create_fip_agent_gw_port_if_not_exists(
|
||||
self.ctx,
|
||||
'network_id',
|
||||
'host')
|
||||
self.assertIsNone(fport)
|
||||
|
||||
fipagent = agent_model.Agent(
|
||||
binary='foo-agent',
|
||||
host='host',
|
||||
agent_type='L3 agent',
|
||||
topic='foo_topic',
|
||||
configurations='{"agent_mode": "dvr"}')
|
||||
self.mixin._get_agent_by_type_and_host = mock.Mock(
|
||||
return_value=fipagent)
|
||||
fport = self.mixin.create_fip_agent_gw_port_if_not_exists(
|
||||
self.ctx,
|
||||
'network_id',
|
||||
'host')
|
||||
self.assertIsNotNone(fport)
|
||||
|
||||
def test_create_floatingip_agent_gw_port_with_non_dvr_router(self):
|
||||
floatingip = {
|
||||
'id': _uuid(),
|
||||
|
|
Loading…
Reference in New Issue