minor redis adjustments
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Torma Kristóf 2020-11-28 20:17:17 +01:00
parent 791003f89e
commit 73c1636063
7 changed files with 38 additions and 2 deletions

View File

@ -7,12 +7,13 @@ from flask_restful import Api
from flask_cors import CORS
import sentry_sdk
from sentry_sdk.integrations.flask import FlaskIntegration
from sentry_sdk.integrations.redis import RedisIntegration
from healthcheck import HealthCheck
from flaskaddons.marshm import ma
from flaskaddons.fred import flaskred
from utils.config import SENTRY_DSN, RELEASEMODE, RELEASE_ID, PORT, DEBUG, REDIS_URL, ALLOWED_ORIGINS
from utils.errorhandlers import register_all_error_handlers
from utils import register_all_error_handlers, redis_available
from resources import LoginApi, ListsApi, MeApi, SingleListApi, ItemApi
"""
@ -27,7 +28,7 @@ __version__text__ = "1"
if SENTRY_DSN:
sentry_sdk.init(
dsn=SENTRY_DSN,
integrations=[FlaskIntegration()],
integrations=[FlaskIntegration(), RedisIntegration()],
traces_sample_rate=1.0,
send_default_pii=True,
release=RELEASE_ID,
@ -70,6 +71,7 @@ api.add_resource(ListsApi, '/api/lists')
api.add_resource(SingleListApi, '/api/lists/<listid>')
api.add_resource(ItemApi, '/api/items/<itemid>')
health.add_check(redis_available)
app.add_url_rule("/healthz", "healthcheck", view_func=lambda: health.run())
register_all_error_handlers(app)

View File

@ -7,6 +7,8 @@ __copyright__ = "Copyright 2020, onSpot Team"
__module_name__ = "itemapi"
__version__text__ = "1"
from datetime import timedelta
from flask import request, current_app, abort
from flaskaddons.fred import flaskred
@ -24,6 +26,8 @@ class ItemApi(APIInteractionResource):
except Exception as e:
current_app.logger.info(e)
abort(401, "unauthorized")
flaskred.expire(request.headers.get('Authorization'), timedelta(minutes=15))
try:
itemtype = flaskred.get(itemid).decode('UTF-8')
except Exception as e:

View File

@ -7,6 +7,8 @@ __copyright__ = "Copyright 2020, onSpot Team"
__module_name__ = "listsapi"
__version__text__ = "1"
from datetime import timedelta
import musicbrainzngs
from flask import current_app, abort, request
@ -26,6 +28,8 @@ class ListsApi(UserStoreResource):
current_app.logger.info(e)
abort(401, "unauthorized")
flaskred.expire(request.headers.get('Authorization'), timedelta(minutes=15))
musicbrainzngs.auth(currcreds['name'], currcreds['password'])
collections = musicbrainzngs.get_collections()
musicbrainzngs.auth(None, None)

View File

@ -7,6 +7,8 @@ __copyright__ = "Copyright 2020, onSpot Team"
__module_name__ = "meapi"
__version__text__ = "1"
from datetime import timedelta
from flask import request, current_app, abort
from flask_restful import Resource
@ -24,4 +26,5 @@ class MeApi(Resource):
except Exception as e:
current_app.logger.info(e)
abort(401, "unauthorized")
flaskred.expire(request.headers.get('Authorization'), timedelta(minutes=15))
return {"name": currusername}, 200

View File

@ -7,6 +7,8 @@ __copyright__ = "Copyright 2020, onSpot Team"
__module_name__ = "singlelistapi"
__version__text__ = "1"
from datetime import timedelta
import musicbrainzngs
from flask import request, current_app, abort
@ -25,6 +27,7 @@ class SingleListApi(APIInteractionResource):
except Exception as e:
current_app.logger.info(e)
abort(401, "unauthorized")
flaskred.expire(request.headers.get('Authorization'), timedelta(minutes=15))
try:
list_type = flaskred.get(listid).decode('UTF-8')
except Exception as e:

View File

@ -1 +1,3 @@
from .aes_encrypt import AESCrypto
from .healthchecks import redis_available
from .errorhandlers import register_all_error_handlers

18
src/utils/healthchecks.py Normal file
View File

@ -0,0 +1,18 @@
#!/usr/bin/env python3
from flaskaddons import flaskred
"""
Healthchek functions
"""
__author__ = "@tormakris"
__copyright__ = "Copyright 2020, onSpot Team"
__module_name__ = "healthchecks"
__version__text__ = "1"
def redis_available():
flaskred.info()
return True, "redis ok"