Merge "Validate expected parameters in add/remove router interfaces"

This commit is contained in:
Jenkins 2014-07-19 06:39:56 +00:00 committed by Gerrit Code Review
commit 85c5cffb11
2 changed files with 10 additions and 3 deletions

View File

@ -413,11 +413,11 @@ class L3_NAT_db_mixin(l3.RouterPluginBase):
return DEVICE_OWNER_ROUTER_INTF return DEVICE_OWNER_ROUTER_INTF
def _validate_interface_info(self, interface_info): def _validate_interface_info(self, interface_info):
if not interface_info: port_id_specified = interface_info and 'port_id' in interface_info
subnet_id_specified = interface_info and 'subnet_id' in interface_info
if not (port_id_specified or subnet_id_specified):
msg = _("Either subnet_id or port_id must be specified") msg = _("Either subnet_id or port_id must be specified")
raise n_exc.BadRequest(resource='router', msg=msg) raise n_exc.BadRequest(resource='router', msg=msg)
port_id_specified = 'port_id' in interface_info
subnet_id_specified = 'subnet_id' in interface_info
if port_id_specified and subnet_id_specified: if port_id_specified and subnet_id_specified:
msg = _("Cannot specify both subnet-id and port-id") msg = _("Cannot specify both subnet-id and port-id")
raise n_exc.BadRequest(resource='router', msg=msg) raise n_exc.BadRequest(resource='router', msg=msg)

View File

@ -789,6 +789,13 @@ class L3NatTestCaseBase(L3NatTestCaseMixin):
None, None,
p['port']['id']) p['port']['id'])
def test_router_add_interface_empty_port_and_subnet_ids(self):
with self.router() as r:
self._router_interface_action('add', r['router']['id'],
None, None,
expected_code=exc.
HTTPBadRequest.code)
def test_router_add_interface_port_bad_tenant_returns_404(self): def test_router_add_interface_port_bad_tenant_returns_404(self):
with mock.patch('neutron.context.Context.to_dict') as tdict: with mock.patch('neutron.context.Context.to_dict') as tdict:
admin_context = {'roles': ['admin']} admin_context = {'roles': ['admin']}