Merge "Allow HA routers to have automatic l3agent failover"
This commit is contained in:
commit
36c6da46e5
@ -14,8 +14,6 @@ from neutron_lib.db import api as db_api
|
|||||||
from neutron_lib.objects import common_types
|
from neutron_lib.objects import common_types
|
||||||
from oslo_versionedobjects import fields as obj_fields
|
from oslo_versionedobjects import fields as obj_fields
|
||||||
|
|
||||||
from sqlalchemy import sql
|
|
||||||
|
|
||||||
from neutron.common import _constants as n_const
|
from neutron.common import _constants as n_const
|
||||||
from neutron.db.models import agent as agent_model
|
from neutron.db.models import agent as agent_model
|
||||||
from neutron.db.models import l3_attrs
|
from neutron.db.models import l3_attrs
|
||||||
@ -59,9 +57,7 @@ class RouterL3AgentBinding(base.NeutronDbObject):
|
|||||||
agent_model.Agent.admin_state_up).outerjoin(
|
agent_model.Agent.admin_state_up).outerjoin(
|
||||||
l3_attrs.RouterExtraAttributes,
|
l3_attrs.RouterExtraAttributes,
|
||||||
l3_attrs.RouterExtraAttributes.router_id ==
|
l3_attrs.RouterExtraAttributes.router_id ==
|
||||||
l3agent.RouterL3AgentBinding.router_id).filter(
|
l3agent.RouterL3AgentBinding.router_id))
|
||||||
l3_attrs.RouterExtraAttributes.ha.in_(
|
|
||||||
[sql.false(), sql.null()])))
|
|
||||||
bindings = [cls._load_object(context, db_obj) for db_obj in
|
bindings = [cls._load_object(context, db_obj) for db_obj in
|
||||||
query.all()]
|
query.all()]
|
||||||
return bindings
|
return bindings
|
||||||
|
@ -1718,7 +1718,7 @@ class L3AgentSchedulerDbMixinTestCase(L3HATestCaseMixin):
|
|||||||
self._set_l3_agent_dead(self.agent_id1)
|
self._set_l3_agent_dead(self.agent_id1)
|
||||||
with mock.patch.object(self.plugin, 'reschedule_router') as reschedule:
|
with mock.patch.object(self.plugin, 'reschedule_router') as reschedule:
|
||||||
self.plugin.reschedule_routers_from_down_agents()
|
self.plugin.reschedule_routers_from_down_agents()
|
||||||
self.assertFalse(reschedule.called)
|
self.assertTrue(reschedule.called)
|
||||||
|
|
||||||
def test_list_l3_agents_hosting_ha_router(self):
|
def test_list_l3_agents_hosting_ha_router(self):
|
||||||
router = self._create_ha_router()
|
router = self._create_ha_router()
|
||||||
|
Loading…
Reference in New Issue
Block a user