aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBartosz Gardziejewski <bartosz.gardziejewski@nokia.com>2020-07-22 12:42:45 +0200
committerBartosz Gardziejewski <bartosz.gardziejewski@nokia.com>2020-07-22 12:42:45 +0200
commitb5f7978fd9075904cda17e0010e1c1960e39b646 (patch)
tree5c2d1e0855bd8633f1d8c84a546780ec3ea38979
parenta4a1e1b4a98a980d3bf9eec719124d6f2d25d018 (diff)
Extend Dmaap simulator to support all topics.
Issue-ID: DCAEGEN2-1771 Signed-off-by: Bartosz Gardziejewski <bartosz.gardziejewski@nokia.com> Change-Id: I23ff978dc8ab2e0b7c3c7ab0388114748b70bc60
-rw-r--r--sanitycheck/dmaap-simulator/simulator.py52
1 files changed, 39 insertions, 13 deletions
diff --git a/sanitycheck/dmaap-simulator/simulator.py b/sanitycheck/dmaap-simulator/simulator.py
index 3437442..6a06266 100644
--- a/sanitycheck/dmaap-simulator/simulator.py
+++ b/sanitycheck/dmaap-simulator/simulator.py
@@ -1,30 +1,40 @@
import json
import logging as sys_logging
-from flask import Flask, request, logging
+from flask import Flask, request, logging, Response
+
app = Flask(__name__)
sys_logging.basicConfig(level=sys_logging.DEBUG)
logger = logging.create_logger(app)
-events = []
+events = {}
+
+
+@app.route("/events/<path:topic>", methods=['POST'])
+def event_sec_fault_output(topic):
+ return handle_new_event(topic, request)
+
+
+@app.route("/events", methods=['GET'])
+def get_events():
+ resp = Response(json.dumps(events))
+ resp.headers['Content-Type'] = 'application/json'
+ return resp
+
-@app.route("/events/unauthenticated.VES_NOTIFICATION_OUTPUT", methods=['POST'])
-def event_ves_notification_output():
- return handle_new_event(request)
+@app.route("/events/<path:topic>", methods=['GET'])
+def get_events_from_topic(topic):
+ resp = Response(json.dumps(get_events_from_map(topic)))
+ resp.headers['Content-Type'] = 'application/json'
+ return resp
-@app.route("/events/unauthenticated.SEC_FAULT_OUTPUT", methods=['POST'])
-def event_sec_fault_output():
- return handle_new_event(request)
-def handle_new_event(http_request):
+def handle_new_event(topic, http_request):
receive_events = decode_request_data(http_request.data)
for event in receive_events:
- events.append(json.loads(event))
+ add_event_to_map(topic, json.loads(event))
return {}, 200
-@app.route("/events", methods=['GET'])
-def get_events():
- return json.dumps(events), 200
def decode_request_data(request_data):
data = request_data.decode("utf-8")
@@ -37,11 +47,27 @@ def decode_request_data(request_data):
correct_events.append(get_correct_json(event))
return correct_events
+
def get_correct_json(incorrect_json):
json_start_position = incorrect_json.find("{")
correct_json = incorrect_json[json_start_position:]
correct_json = correct_json.replace("\r", "").replace("\t", "").replace(" ", "")
return correct_json
+
+def add_event_to_map(topic, event):
+ if events.__contains__(topic):
+ events[topic].append(event)
+ else:
+ events[topic] = [event]
+
+
+def get_events_from_map(topic):
+ if events.__contains__(topic):
+ return events[topic]
+ else:
+ return []
+
+
if __name__ == "__main__":
app.run(host='0.0.0.0', port=3904)