X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fpybind%2Fmgr%2Frestful%2Fdecorators.py;fp=src%2Fceph%2Fsrc%2Fpybind%2Fmgr%2Frestful%2Fdecorators.py;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=e5d7d62ae87ce779117ddcc6cef4b75334b53544;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/pybind/mgr/restful/decorators.py b/src/ceph/src/pybind/mgr/restful/decorators.py deleted file mode 100644 index e5d7d62..0000000 --- a/src/ceph/src/pybind/mgr/restful/decorators.py +++ /dev/null @@ -1,77 +0,0 @@ -from pecan import request, response -from base64 import b64decode -from functools import wraps - -import traceback - -import module - - -# Handle authorization -def auth(f): - @wraps(f) - def decorated(*args, **kwargs): - if not request.authorization: - response.status = 401 - response.headers['WWW-Authenticate'] = 'Basic realm="Login Required"' - return {'message': 'auth: No HTTP username/password'} - - username, password = b64decode(request.authorization[1]).split(':') - - # Check that the username exists - if username not in module.instance.keys: - response.status = 401 - response.headers['WWW-Authenticate'] = 'Basic realm="Login Required"' - return {'message': 'auth: No such user'} - - # Check the password - if module.instance.keys[username] != password: - response.status = 401 - response.headers['WWW-Authenticate'] = 'Basic realm="Login Required"' - return {'message': 'auth: Incorrect password'} - - return f(*args, **kwargs) - return decorated - - -# Helper function to lock the function -def lock(f): - @wraps(f) - def decorated(*args, **kwargs): - with module.instance.requests_lock: - return f(*args, **kwargs) - return decorated - - -# Support ?page=N argument -def paginate(f): - @wraps(f) - def decorated(*args, **kwargs): - _out = f(*args, **kwargs) - - # Do not modify anything without a specific request - if not 'page' in kwargs: - return _out - - # A pass-through for errors, etc - if not isinstance(_out, list): - return _out - - # Parse the page argument - _page = kwargs['page'] - try: - _page = int(_page) - except ValueError: - response.status = 500 - return {'message': 'The requested page is not an integer'} - - # Raise _page so that 0 is the first page and -1 is the last - _page += 1 - - if _page > 0: - _page *= 100 - else: - _page = len(_out) - (_page*100) - - return _out[_page - 100: _page] - return decorated