Register Manilaclient exceptions in Horizon

Add Manilaclient's NotFound exception to 'NOT_FOUND' exception family
in Horizon. Without it we get error 500 from Horizon on pages with
resource tables where something is being deleted and then not found.
Do the same for "recoverable" and "unauthorized" types too.

Also, remove redundant, already registered exceptions related to other
projects from "manila_ui.exceptions" module.

Change-Id: I1dffec243feb12783dceb705ff6191dbcc8b3aa5
Closes-Bug: #1481902
Closes-Bug: #1579114
This commit is contained in:
Valeriy Ponomaryov 2016-05-10 13:11:30 +03:00
parent 44575b2f22
commit 8d9433621a
2 changed files with 24 additions and 37 deletions

View File

@ -1,6 +1,29 @@
# Copyright 2016 Mirantis Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from manila_ui import exceptions
PANEL_DASHBOARD = 'project'
PANEL_GROUP = 'compute'
PANEL = 'shares'
ADD_PANEL = 'manila_ui.dashboards.project.shares.panel.Shares'
# ADD_INSTALLED_APPS enables using html templates from within the plugin
ADD_INSTALLED_APPS = ['manila_ui.dashboards.project']
ADD_EXCEPTIONS = {
'recoverable': exceptions.RECOVERABLE,
'not_found': exceptions.NOT_FOUND,
'unauthorized': exceptions.UNAUTHORIZED,
}

View File

@ -16,56 +16,20 @@
# License for the specific language governing permissions and limitations
# under the License.
from cinderclient import exceptions as cinderclient
from glanceclient.common import exceptions as glanceclient
from heatclient import exc as heatclient
from keystoneclient import exceptions as keystoneclient
from manilaclient import exceptions as manilaclient
from neutronclient.common import exceptions as neutronclient
from novaclient import exceptions as novaclient
from requests import exceptions as requests
from swiftclient import client as swiftclient
UNAUTHORIZED = (
keystoneclient.Unauthorized,
cinderclient.Unauthorized,
novaclient.Unauthorized,
glanceclient.Unauthorized,
manilaclient.AuthorizationFailure,
manilaclient.Unauthorized,
neutronclient.Unauthorized,
heatclient.HTTPUnauthorized,
)
NOT_FOUND = (
keystoneclient.NotFound,
cinderclient.NotFound,
novaclient.NotFound,
glanceclient.NotFound,
manilaclient.NotFound,
neutronclient.NotFound,
heatclient.HTTPNotFound,
)
# NOTE(gabriel): This is very broad, and may need to be dialed in.
RECOVERABLE = (
keystoneclient.ClientException,
# AuthorizationFailure is raised when Keystone is "unavailable".
keystoneclient.AuthorizationFailure,
keystoneclient.Forbidden,
cinderclient.ClientException,
cinderclient.ConnectionError,
cinderclient.Forbidden,
novaclient.ClientException,
novaclient.Forbidden,
glanceclient.ClientException,
manilaclient.ClientException,
neutronclient.Forbidden,
neutronclient.NeutronClientException,
swiftclient.ClientException,
heatclient.HTTPForbidden,
heatclient.HTTPException,
requests.RequestException,
)