The heat.api.middleware.fault Module

A middleware that turns exceptions into parsable string.

Inspired by Cinder’s faultwrapper.

class heat.api.middleware.fault.Fault(error)[source]

Bases: object

class heat.api.middleware.fault.FaultWrapper(application)[source]

Bases: heat.common.wsgi.Middleware

Replace error body with something the client can parse.

error_map = {'IncompatibleObjectVersion': <class 'webob.exc.HTTPBadRequest'>, 'UserParameterMissing': <class 'webob.exc.HTTPBadRequest'>, 'StopActionFailed': <class 'webob.exc.HTTPInternalServerError'>, 'InvalidTemplateReference': <class 'webob.exc.HTTPBadRequest'>, 'OrphanedObjectError': <class 'webob.exc.HTTPBadRequest'>, 'InvalidBreakPointHook': <class 'webob.exc.HTTPBadRequest'>, 'PropertyUnspecifiedError': <class 'webob.exc.HTTPBadRequest'>, 'ServerBuildFailed': <class 'webob.exc.HTTPInternalServerError'>, 'ObjectFieldInvalid': <class 'webob.exc.HTTPBadRequest'>, 'StackExists': <class 'webob.exc.HTTPConflict'>, 'InvalidTemplateVersion': <class 'webob.exc.HTTPBadRequest'>, 'ImmutableParameterModified': <class 'webob.exc.HTTPBadRequest'>, 'StackValidationFailed': <class 'webob.exc.HTTPBadRequest'>, 'Forbidden': <class 'webob.exc.HTTPForbidden'>, 'RequestLimitExceeded': <class 'webob.exc.HTTPBadRequest'>, 'ReadOnlyFieldError': <class 'webob.exc.HTTPBadRequest'>, 'ResourcePropertyConflict': <class 'webob.exc.HTTPBadRequest'>, 'NotSupported': <class 'webob.exc.HTTPBadRequest'>, 'InvalidTenant': <class 'webob.exc.HTTPForbidden'>, 'RevertFailed': <class 'webob.exc.HTTPInternalServerError'>, 'ObjectActionError': <class 'webob.exc.HTTPBadRequest'>, 'ActionInProgress': <class 'webob.exc.HTTPConflict'>, 'AttributeError': <class 'webob.exc.HTTPBadRequest'>, 'UnsupportedObjectError': <class 'webob.exc.HTTPBadRequest'>, 'ResourceNotAvailable': <class 'webob.exc.HTTPNotFound'>, 'EventSendFailed': <class 'webob.exc.HTTPInternalServerError'>, 'ResourceActionNotSupported': <class 'webob.exc.HTTPBadRequest'>, 'ValueError': <class 'webob.exc.HTTPBadRequest'>, 'PhysicalResourceNameAmbiguity': <class 'webob.exc.HTTPBadRequest'>, 'NotFound': <class 'webob.exc.HTTPNotFound'>, 'InvalidTemplateSection': <class 'webob.exc.HTTPBadRequest'>, 'Invalid': <class 'webob.exc.HTTPBadRequest'>, 'InvalidGlobalResource': <class 'webob.exc.HTTPInternalServerError'>, 'EntityNotFound': <class 'webob.exc.HTTPNotFound'>, 'InvalidSchemaError': <class 'webob.exc.HTTPBadRequest'>, 'PhysicalResourceIDAmbiguity': <class 'webob.exc.HTTPBadRequest'>, 'MissingCredentialError': <class 'webob.exc.HTTPBadRequest'>, 'ResourceTypeUnavailable': <class 'webob.exc.HTTPBadRequest'>, 'UnknownUserParameter': <class 'webob.exc.HTTPBadRequest'>}
process_request(req)[source]