def __init__(self, message=None, **kwargs): self.kwargs = kwargs if 'code' not in self.kwargs and hasattr(self, 'code'): self.kwargs['code'] = self.code if message: self.message = message try: self.message = self.message % kwargs except KeyError: # kwargs doesn't match a variable in the message # log the issue and the kwargs LOG.exception( _LE('Exception in string format operation, ' 'kwargs: %s') % kwargs) try: ferr = CONF.fatal_exception_format_errors except cfg.NoSuchOptError: ferr = CONF.oslo_versionedobjects.fatal_exception_format_errors if ferr: raise super(Commissaire_OpenstackException, self).__init__(self.message)
def wrapped(*args, **kw): try: return func(*args, **kw) except Exception as excp: if isinstance(excp, Commissaire_OpenstackException): http_error_code = excp.code else: http_error_code = 500 if http_error_code >= 500: # log the error message with its associated # correlation id log_correlation_id = str(uuid.uuid4()) LOG.error( _LE("%(correlation_id)s:%(excp)s") % { 'correlation_id': log_correlation_id, 'excp': str(excp) }) # raise a client error with an obfuscated message return func_server_error(log_correlation_id, http_error_code) else: # raise a client error the original message LOG.debug(excp) return func_client_error(excp, http_error_code)