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',
"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.")
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'],
# 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):