Merge branch 'better-error' of https://bitbucket.org/yackob03/quay into better-error
Conflicts: util/http.py
This commit is contained in:
commit
9650c1867b
4 changed files with 53 additions and 38 deletions
16
util/http.py
16
util/http.py
|
@ -1,11 +1,12 @@
|
|||
import logging
|
||||
|
||||
from app import mixpanel
|
||||
from flask import request, abort as flask_abort, make_response
|
||||
from auth.auth import process_auth, extract_namespace_repo_from_session, get_authenticated_user, get_validated_token
|
||||
from flask import request, abort as flask_abort, jsonify
|
||||
from auth.auth import get_authenticated_user, get_validated_token
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
DEFAULT_MESSAGE = {}
|
||||
DEFAULT_MESSAGE[400] = 'Invalid Request'
|
||||
DEFAULT_MESSAGE[401] = 'Unauthorized'
|
||||
|
@ -14,7 +15,8 @@ DEFAULT_MESSAGE[404] = 'Not Found'
|
|||
DEFAULT_MESSAGE[409] = 'Conflict'
|
||||
|
||||
def abort(status_code, message=None, **kwargs):
|
||||
message = str(message) % kwargs if message else DEFAULT_MESSAGE.get(status_code, '')
|
||||
message = (str(message) % kwargs if message else
|
||||
DEFAULT_MESSAGE.get(status_code, ''))
|
||||
|
||||
params = dict(request.view_args)
|
||||
params.copy(kwargs)
|
||||
|
@ -27,11 +29,13 @@ def abort(status_code, message=None, **kwargs):
|
|||
message = '%s (user: %s)' % (message, auth_user.username)
|
||||
elif auth_token:
|
||||
mixpanel.track(auth_token.core, 'http_error', params)
|
||||
message = '%s (token: %s)' % (message, auth_token.friendly_name or auth_token.code)
|
||||
message = '%s (token: %s)' % (message,
|
||||
auth_token.friendly_name or auth_token.code)
|
||||
|
||||
# Log the abort.
|
||||
logger.error('Error %s: %s. Arguments: %s' % (status_code, message, params))
|
||||
resp = jsonify({'error': message})
|
||||
resp.status_code = status_code
|
||||
|
||||
# Report the abort to the user.
|
||||
flask_abort(make_response(message, status_code, {}))
|
||||
|
||||
flask_abort(resp)
|
||||
|
|
Reference in a new issue