- cntr_msg_callbacks += 1
- msg[TIME_STAMP]=str(datetime.now())
- if (id in msg_callbacks.keys()):
- msg_callbacks[id].append(msg)
- else:
- msg_callbacks[id]=[]
- msg_callbacks[id].append(msg)
-
- if (id in cntr_callbacks.keys()):
- cntr_callbacks[id][0] += 1
- else:
- cntr_callbacks[id]=[]
- cntr_callbacks[id].append(1)
- cntr_callbacks[id].append(0)
+ with lock:
+ cntr_msg_callbacks += 1
+ msg[TIME_STAMP]=str(datetime.now())
+ if (id in msg_callbacks.keys()):
+ msg_callbacks[id].append(msg)
+ else:
+ msg_callbacks[id]=[]
+ msg_callbacks[id].append(msg)
+
+ if (id in cntr_callbacks.keys()):
+ cntr_callbacks[id][0] += 1
+ else:
+ cntr_callbacks[id]=[]
+ cntr_callbacks[id].append(1)
+ cntr_callbacks[id].append(0)
+
+ except Exception as e:
+ print(CAUGHT_EXCEPTION+str(e))
+ traceback.print_exc()
+ return 'NOTOK',500
+
+ return 'OK',200
+
+
+# Receive a json callback message with payload fromatted accoirding to output frm the message router
+# URI and payload, (PUT or POST): /callbacks/<id> <json messages>
+# json is a list of string encoded json items
+# response: OK 200 or 500 for other errors
+@app.route(CALLBACK_MR_URL,
+ methods=['PUT','POST'])
+def events_write_mr(id):
+ global msg_callbacks
+ global cntr_msg_callbacks
+
+ try:
+ print("Received callback (mr) for id: "+id +", content-type="+request.content_type)
+ remote_host_logging(request)
+ print("raw data: str(request.data): "+str(request.data))
+ do_delay()
+ try:
+ #if (request.content_type == MIME_JSON):
+ if (MIME_JSON in request.content_type):
+ data = request.data
+ msg_list = json.loads(data)
+ print("Payload(json): "+str(msg_list))
+ else:
+ msg_list=[]
+ print("Payload(content-type="+request.content_type+"). Setting empty json as payload")
+ except Exception as e:
+ msg_list=[]
+ print("(Exception) Payload does not contain any json, setting empty json as payload")
+ traceback.print_exc()
+
+ with lock:
+ remote_host_logging(request)
+ for msg in msg_list:
+ print("msg (str): "+str(msg))
+ msg=json.loads(msg)
+ print("msg (json): "+str(msg))
+ cntr_msg_callbacks += 1
+ msg[TIME_STAMP]=str(datetime.now())
+ if (id in msg_callbacks.keys()):
+ msg_callbacks[id].append(msg)
+ else:
+ msg_callbacks[id]=[]
+ msg_callbacks[id].append(msg)
+
+ if (id in cntr_callbacks.keys()):
+ cntr_callbacks[id][0] += 1
+ else:
+ cntr_callbacks[id]=[]
+ cntr_callbacks[id].append(1)
+ cntr_callbacks[id].append(0)