From 650c9e074dbaf8533d2a78818b149b6f0e51371c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torma=20Krist=C3=B3f?= Date: Fri, 17 Apr 2020 16:18:54 +0200 Subject: [PATCH] redis communicator done --- app.py | 2 +- consumerlocator.py | 1 + redisconnector.py | 62 ++++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 3 ++- 4 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 redisconnector.py diff --git a/app.py b/app.py index d474e71..bebb909 100644 --- a/app.py +++ b/app.py @@ -27,7 +27,7 @@ logging.basicConfig( ) LOGGER = logging.getLogger(__name__) -KNOWNCONSUMER = os.getenv("PRODUCER_KNOWNCONSUMER",'10.69.42.1') +KNOWNCONSUMER = os.getenv("PRODUCER_KNOWNCONSUMER", '10.69.42.1') if __name__ == "__main__": """ diff --git a/consumerlocator.py b/consumerlocator.py index b2fc4af..5fb91aa 100644 --- a/consumerlocator.py +++ b/consumerlocator.py @@ -15,6 +15,7 @@ __version__text__ = "1" KNOWNCONSUMER = os.getenv("PRODUCER_KNOWNCONSUMER",'10.69.42.1') + class ConsumerLocator: """ diff --git a/redisconnector.py b/redisconnector.py new file mode 100644 index 0000000..30dd958 --- /dev/null +++ b/redisconnector.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python + +import os +import redis +import json + +""" +Redis interaction +""" + +__author__ = "@tormakris" +__copyright__ = "Copyright 2020, GoldenPogácsa Team" +__module_name__ = "redis" +__version__text__ = "1" + + +REDISHOST = os.getenv("PRODUCER_REDIS", 'localhost') + + +class RedisConnector: + """ + Class abstracting Redis communication + """ + def __init__(self): + """ + Initialize class + """ + self.redisconnection = redis.StrictRedis(host=REDISHOST, port=6379, db=0) + + def get_consumerlist(self): + """ + Gets list of consumers stored in Redis. + :return: + """ + return json.loads(self.redisconnection.get('consumerList')) + + def set_consumerlist(self, consumerlist): + """ + Sets list of consumers stored in Redis. + :param consumerlist: + :return: + """ + json_list = json.dumps(consumerlist) + self.redisconnection.set('consumerList', json_list) + + def get_currentconsumer(self): + """ + Gets currently active consumer. + :return: + """ + return self.redisconnection.get('currentConsumer') + + def set_currentconsumer(self, currentconsumer): + """ + Sets currently active consumer + :param currentconsumer: + :return: + """ + self.redisconnection.set('currentConsumer', currentconsumer) + + consumerlist = property(get_consumerlist, set_consumerlist) + currentconsumer = property(get_currentconsumer, set_currentconsumer) diff --git a/requirements.txt b/requirements.txt index 60339c2..a714251 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,4 +2,5 @@ sentry_sdk requests pytest pytest-mock -pytest-httpserver \ No newline at end of file +pytest-httpserver +redis \ No newline at end of file -- 2.45.2