NSX|V3: ensure neutron raises better exceptions
Update the fault map to raise better exceptions. Change-Id: If2c9461c1f9ff9fc6a0c485cacc67d8d42c5daf5 Depends-On: Idc89c0ece2e6ff3b0368f431fea098128bd68c34
This commit is contained in:
parent
878ad90f34
commit
7da588e17d
@ -21,6 +21,7 @@ from neutron_lib.exceptions import port_security as psec_exc
|
||||
from neutron.api.rpc.agentnotifiers import dhcp_rpc_agent_api
|
||||
from neutron.api.rpc.handlers import dhcp_rpc
|
||||
from neutron.api.rpc.handlers import metadata_rpc
|
||||
from neutron.api.v2 import base
|
||||
from neutron.common import rpc as n_rpc
|
||||
from neutron.common import topics
|
||||
from neutron.db import _resource_extend as resource_extend
|
||||
@ -71,6 +72,7 @@ from oslo_utils import excutils
|
||||
from oslo_utils import importutils
|
||||
from oslo_utils import uuidutils
|
||||
from sqlalchemy import exc as sql_exc
|
||||
import webob.exc
|
||||
|
||||
from vmware_nsx._i18n import _
|
||||
from vmware_nsx.api_replay import utils as api_replay_utils
|
||||
@ -174,6 +176,7 @@ class NsxV3Plugin(agentschedulers_db.AZDhcpAgentSchedulerDbMixin,
|
||||
router=l3_db_models.Router,
|
||||
floatingip=l3_db_models.FloatingIP)
|
||||
def __init__(self):
|
||||
self._extend_fault_map()
|
||||
self._extension_manager = managers.ExtensionManager()
|
||||
super(NsxV3Plugin, self).__init__()
|
||||
# Bind the dummy L3 notifications
|
||||
@ -246,6 +249,22 @@ class NsxV3Plugin(agentschedulers_db.AZDhcpAgentSchedulerDbMixin,
|
||||
# Register NSXv3 trunk driver to support trunk extensions
|
||||
self.trunk_driver = trunk_driver.NsxV3TrunkDriver.create(self)
|
||||
|
||||
def _extend_fault_map(self):
|
||||
"""Extends the Neutron Fault Map.
|
||||
|
||||
Exceptions specific to the NSX Plugin are mapped to standard
|
||||
HTTP Exceptions.
|
||||
"""
|
||||
base.FAULT_MAP.update({nsx_lib_exc.ManagerError:
|
||||
webob.exc.HTTPBadRequest,
|
||||
nsx_lib_exc.ServiceClusterUnavailable:
|
||||
webob.exc.HTTPServiceUnavailable,
|
||||
nsx_lib_exc.ClientCertificateNotTrusted:
|
||||
webob.exc.HTTPBadRequest,
|
||||
nsx_exc.SecurityGroupMaximumCapacityReached:
|
||||
webob.exc.HTTPBadRequest,
|
||||
})
|
||||
|
||||
def _init_fwaas(self):
|
||||
# Bind FWaaS callbacks to the driver
|
||||
self.fwaas_callbacks = fwaas_callbacks.Nsxv3FwaasCallbacks(self.nsxlib)
|
||||
|
@ -135,7 +135,7 @@ class TestSecurityGroupsNoDynamicCriteria(test_nsxv3.NsxV3PluginTestCaseMixin,
|
||||
res = self._create_port(self.fmt, net['network']['id'])
|
||||
res_body = self.deserialize(self.fmt, res)
|
||||
|
||||
self.assertEqual(500, res.status_int)
|
||||
self.assertEqual(400, res.status_int)
|
||||
self.assertEqual('SecurityGroupMaximumCapacityReached',
|
||||
res_body['NeutronError']['type'])
|
||||
|
||||
@ -161,7 +161,7 @@ class TestSecurityGroupsNoDynamicCriteria(test_nsxv3.NsxV3PluginTestCaseMixin,
|
||||
res = req.get_response(self.api)
|
||||
res_body = self.deserialize(self.fmt, res)
|
||||
|
||||
self.assertEqual(500, res.status_int)
|
||||
self.assertEqual(400, res.status_int)
|
||||
self.assertEqual('SecurityGroupMaximumCapacityReached',
|
||||
res_body['NeutronError']['type'])
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user