aboutsummaryrefslogtreecommitdiffstats
path: root/sanitycheck/dmaap-simulator/simulator.py
diff options
context:
space:
mode:
Diffstat (limited to 'sanitycheck/dmaap-simulator/simulator.py')
-rw-r--r--sanitycheck/dmaap-simulator/simulator.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/sanitycheck/dmaap-simulator/simulator.py b/sanitycheck/dmaap-simulator/simulator.py
new file mode 100644
index 0000000..3437442
--- /dev/null
+++ b/sanitycheck/dmaap-simulator/simulator.py
@@ -0,0 +1,47 @@
+import json
+import logging as sys_logging
+
+from flask import Flask, request, logging
+app = Flask(__name__)
+
+sys_logging.basicConfig(level=sys_logging.DEBUG)
+logger = logging.create_logger(app)
+events = []
+
+@app.route("/events/unauthenticated.VES_NOTIFICATION_OUTPUT", methods=['POST'])
+def event_ves_notification_output():
+ return handle_new_event(request)
+
+@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):
+ receive_events = decode_request_data(http_request.data)
+ for event in receive_events:
+ events.append(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")
+ receive_events = data.split("\n")
+ receive_events = receive_events[:-1]
+ logger.info("received events: " + str(receive_events))
+ correct_events = []
+ for event in receive_events:
+ logger.info("received event: " + str(event))
+ 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
+
+if __name__ == "__main__":
+ app.run(host='0.0.0.0', port=3904)