Browse Source

Merge "Fix showing nonexistent NetworkGateway throws 500 instead of 404"

changes/45/59045/1
Jenkins 9 years ago committed by Gerrit Code Review
parent
commit
f560994bac
  1. 2
      neutron/plugins/nicira/NeutronPlugin.py
  2. 10
      neutron/plugins/nicira/dbexts/nicira_networkgw_db.py
  3. 6
      neutron/tests/unit/nicira/test_nicira_plugin.py

2
neutron/plugins/nicira/NeutronPlugin.py

@ -222,7 +222,7 @@ class NvpPluginV2(addr_pair_db.AllowedAddressPairsMixin,
try:
def_network_gw = self._get_network_gateway(ctx,
def_l2_gw_uuid)
except sa_exc.NoResultFound:
except networkgw_db.GatewayNotFound:
# Create in DB only - don't go on NVP
def_gw_data = {'id': def_l2_gw_uuid,
'name': 'default L2 gateway service',

10
neutron/plugins/nicira/dbexts/nicira_networkgw_db.py

@ -48,6 +48,10 @@ class GatewayInUse(exceptions.InUse):
"with one or more neutron networks.")
class GatewayNotFound(exceptions.NotFound):
message = _("Network Gateway %(gateway_id)s could not be found")
class NetworkGatewayPortInUse(exceptions.InUse):
message = _("Port '%(port_id)s' is owned by '%(device_owner)s' and "
"therefore cannot be deleted directly via the port API.")
@ -130,7 +134,11 @@ class NetworkGatewayMixin(nvp_networkgw.NetworkGatewayPluginBase):
resource = nvp_networkgw.RESOURCE_NAME.replace('-', '_')
def _get_network_gateway(self, context, gw_id):
return self._get_by_id(context, NetworkGateway, gw_id)
try:
gw = self._get_by_id(context, NetworkGateway, gw_id)
except sa_orm_exc.NoResultFound:
raise GatewayNotFound(gateway_id=gw_id)
return gw
def _make_gw_connection_dict(self, gw_conn):
return {'port_id': gw_conn['port_id'],

6
neutron/tests/unit/nicira/test_nicira_plugin.py

@ -1421,6 +1421,12 @@ class TestNiciraNetworkGateway(test_l2_gw.NetworkGatewayDbTestCase,
# The default gateway must still be there
self._test_delete_network_gateway(1)
def test_show_network_gateway_nvp_error_returns_404(self):
invalid_id = 'b5afd4a9-eb71-4af7-a082-8fc625a35b61'
req = self.new_show_request(nvp_networkgw.COLLECTION_NAME, invalid_id)
res = req.get_response(self.ext_api)
self.assertEqual(webob.exc.HTTPNotFound.code, res.status_int)
class TestNiciraMultiProviderNetworks(NiciraPluginV2TestCase):

Loading…
Cancel
Save