Merge "Fix get_subnet_ids_on_router in dvr scheduler"

This commit is contained in:
Jenkins 2015-11-23 19:25:03 +00:00 committed by Gerrit Code Review
commit 5fcfa65d97
2 changed files with 23 additions and 2 deletions

View File

@ -142,8 +142,12 @@ class L3_DVRsch_db_mixin(l3agent_sch_db.L3AgentSchedulerDbMixin):
int_ports = self._core_plugin.get_ports(context, filters=filter_rtr)
for int_port in int_ports:
int_ips = int_port['fixed_ips']
int_subnet = int_ips[0]['subnet_id']
subnet_ids.add(int_subnet)
if int_ips:
int_subnet = int_ips[0]['subnet_id']
subnet_ids.add(int_subnet)
else:
LOG.debug('DVR: Could not find a subnet id'
'for router %s', router_id)
return subnet_ids
def check_ports_on_host_and_subnet(self, context, host,

View File

@ -1136,6 +1136,23 @@ class L3DvrSchedulerTestCase(testlib_api.SqlTestCase):
self.assertEqual(sub_ids.pop(),
dvr_port.get('fixed_ips').pop(0).get('subnet_id'))
def test_get_subnet_ids_on_router_no_subnet(self):
dvr_port = {
'id': 'dvr_port1',
'device_id': 'r1',
'device_owner': 'network:router_interface_distributed',
'fixed_ips': []
}
r1 = {
'id': 'r1',
'distributed': True,
}
with mock.patch.object(db_v2.NeutronDbPluginV2, 'get_ports',
return_value=[dvr_port]):
sub_ids = self.dut.get_subnet_ids_on_router(self.adminContext,
r1['id'])
self.assertEqual(len(sub_ids), 0)
def _test_check_ports_on_host_and_subnet_base(self, port_status):
dvr_port = {
'id': 'fake_id',