Fix FM error messages for forbidden requests
The CLI error messages for users with reader role were not clear to the operator and this change fixes this. Test Plan: PASS: In an AIO-SX with this change present, create a new openstack user with reader role and through this user execute the commands: fm alarm-list fm alarm-delete <uuid> fm event-suppress --alarm_id <alarm_id> and check that the "alarm-list" command is executed without errors and that the error message of the other commands changes from: "HTTP Client Error (HTTP 403) (Request-ID: req-<req_id>)" to: "Error: Forbidden." Story: 2010149 Task: 46620 Signed-off-by: Joao Victor Portal <Joao.VictorPortal@windriver.com> Change-Id: I45007a7f5319ef0a0238a07d671a859b5081660a
This commit is contained in:
parent
8a07de3ea1
commit
277c64bed7
@ -85,6 +85,15 @@ class HTTPClientError(HttpError):
|
|||||||
message = _("HTTP Client Error")
|
message = _("HTTP Client Error")
|
||||||
|
|
||||||
|
|
||||||
|
class HTTPForbidden(HTTPClientError):
|
||||||
|
"""HTTP 403 - Forbidden
|
||||||
|
|
||||||
|
Exception for cases in which the server understands the request
|
||||||
|
but refuses to authorize it.
|
||||||
|
"""
|
||||||
|
message = _("HTTP Client Error: Forbidden")
|
||||||
|
|
||||||
|
|
||||||
class HTTPNotFound(HTTPClientError):
|
class HTTPNotFound(HTTPClientError):
|
||||||
"""HTTP 404 - Not Found
|
"""HTTP 404 - Not Found
|
||||||
|
|
||||||
@ -172,6 +181,8 @@ def from_response(response, method, url=None):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
if 500 <= response.status_code < 600:
|
if 500 <= response.status_code < 600:
|
||||||
cls = HttpServerError
|
cls = HttpServerError
|
||||||
|
elif 403 == response.status_code:
|
||||||
|
cls = HTTPForbidden
|
||||||
elif 404 == response.status_code:
|
elif 404 == response.status_code:
|
||||||
cls = HTTPNotFound
|
cls = HTTPNotFound
|
||||||
elif 400 <= response.status_code < 500:
|
elif 400 <= response.status_code < 500:
|
||||||
|
@ -17,6 +17,7 @@ import sys
|
|||||||
from oslo_utils import importutils
|
from oslo_utils import importutils
|
||||||
|
|
||||||
import fmclient
|
import fmclient
|
||||||
|
from fmclient.common import exceptions
|
||||||
from fmclient.common import utils
|
from fmclient.common import utils
|
||||||
from fmclient import exc
|
from fmclient import exc
|
||||||
from fmclient import client
|
from fmclient import client
|
||||||
@ -292,6 +293,8 @@ class FmShell(object):
|
|||||||
args.func(client, args)
|
args.func(client, args)
|
||||||
except exc.Unauthorized:
|
except exc.Unauthorized:
|
||||||
raise exc.CommandError("Invalid Identity credentials.")
|
raise exc.CommandError("Invalid Identity credentials.")
|
||||||
|
except exceptions.HTTPForbidden:
|
||||||
|
raise exc.CommandError("Error: Forbidden.")
|
||||||
|
|
||||||
def do_bash_completion(self, args):
|
def do_bash_completion(self, args):
|
||||||
"""Prints all of the commands and options to stdout.
|
"""Prints all of the commands and options to stdout.
|
||||||
|
Loading…
Reference in New Issue
Block a user