Horizon Exceptions¶
Exceptions raised by the Horizon code and the machinery for handling them.
-
exception
horizon.exceptions.
AlreadyExists
(name, resource_type)[source]¶ Exception to be raised when trying to create an API resource which already exists.
-
exception
horizon.exceptions.
BadRequest
[source]¶ Generic error to replace all “BadRequest”-type API errors.
-
exception
horizon.exceptions.
ConfigurationError
[source]¶ Exception to be raised when invalid settings have been provided.
-
exception
horizon.exceptions.
Conflict
[source]¶ Generic error to replace all “Conflict”-type API errors.
-
exception
horizon.exceptions.
GetFileError
(name, resource_type)[source]¶ Exception to be raised when the value of get_file did not start with https:// or http://
-
exception
horizon.exceptions.
HandledException
(wrapped)[source]¶ Used internally to track exceptions that have gone through
horizon.exceptions.handle()
more than once.
-
exception
horizon.exceptions.
HorizonException
[source]¶ Base exception class for distinguishing our own exception classes.
-
class
horizon.exceptions.
HorizonReporterFilter
[source]¶ Error report filter that’s always active, even in DEBUG mode.
-
exception
horizon.exceptions.
Http302
(location, message=None)[source]¶ Error class which can be raised from within a handler to cause an early bailout and redirect at the middleware level.
-
exception
horizon.exceptions.
NotAuthenticated
[source]¶ Raised when a user is trying to make requests and they are not logged in.
The included
HorizonMiddleware
catchesNotAuthenticated
and handles it gracefully by displaying an error message and redirecting the user to a login page.
-
exception
horizon.exceptions.
NotAuthorized
[source]¶ Raised whenever a user attempts to access a resource which they do not have permission-based access to (such as when failing the
require_perms()
decorator).The included
HorizonMiddleware
catchesNotAuthorized
and handles it gracefully by displaying an error message and redirecting the user to a login page.
-
exception
horizon.exceptions.
NotAvailable
[source]¶ Exception to be raised when something is not available.
-
exception
horizon.exceptions.
NotFound
[source]¶ Generic error to replace all “Not Found”-type API errors.
-
exception
horizon.exceptions.
RecoverableError
[source]¶ Generic error to replace any “Recoverable”-type API errors.
-
exception
horizon.exceptions.
ServiceCatalogException
(service_name)[source]¶ Raised when a requested service is not available in the
ServiceCatalog
returned by Keystone.
-
exception
horizon.exceptions.
WorkflowError
[source]¶ Exception to be raised when something goes wrong in a workflow.
-
exception
horizon.exceptions.
WorkflowValidationError
[source]¶ Exception raised during workflow validation if required data is missing, or existing data is not valid.
-
horizon.exceptions.
check_message
(keywords, message)[source]¶ Checks an exception for given keywords and raises a new
ActionError
with the desired message if the keywords are found. This allows selective control over API error messages.
-
horizon.exceptions.
handle
(request, message=None, redirect=None, ignore=False, escalate=False, log_level=None, force_log=None)[source]¶ Centralized error handling for Horizon.
Because Horizon consumes so many different APIs with completely different
Exception
types, it’s necessary to have a centralized place for handling exceptions which may be raised.Exceptions are roughly divided into 3 types:
UNAUTHORIZED
: Errors resulting from authentication or authorization problems. These result in being logged out and sent to the login screen.NOT_FOUND
: Errors resulting from objects which could not be located via the API. These generally result in a user-facing error message, but are otherwise returned to the normal code flow. Optionally a redirect value may be passed to the error handler so users are returned to a different view than the one requested in addition to the error message.RECOVERABLE
: Generic API errors which generate a user-facing message but drop directly back to the regular code flow.
All other exceptions bubble the stack as normal unless the
ignore
argument is passed in asTrue
, in which case only unrecognized errors are bubbled.If the exception is not re-raised, an appropriate wrapper exception class indicating the type of exception that was encountered will be returned.