diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 2f33792..e3055bc 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -2,7 +2,7 @@ version: '3' services: - charging_in_api: + c2_in_api: build: context: ./platform_in/ dockerfile: Dockerfile.prod diff --git a/nginx/nginx.conf b/nginx/nginx.conf index d7fd1fe..9dfa039 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -1,5 +1,5 @@ upstream ptf_incoming_api { - server charging_in_api:5002; + server c2_in_api:5002; } server { diff --git a/platform_in/app/__init__.py b/platform_in/app/__init__.py index 3896fed..2b0f9c1 100644 --- a/platform_in/app/__init__.py +++ b/platform_in/app/__init__.py @@ -50,8 +50,46 @@ def ctx(): def hello_world(): return jsonify(health="ok") - @app.route("/c2/v1/", methods=["POST"]) - def postdata(id): + @app.route("/c2/v1/", methods=["PUT"]) + def putdata(id): + + try: + # data = request.get_data() + data = request.get_data() + logging.info(f"put data goes like : {data[0:200]}") + logging.debug(f"put data in json : {json.loads(data)}") + + # Asynchronously produce a message, the delivery report callback + # will be triggered from poll() above, or flush() below, when the message has + # been successfully delivered or failed permanently. + + received_data = json.loads(data) + + + if "data" in received_data.keys(): + #received measurement type data + key = received_data["n"] + elif "ref" in received_data.keys(): + #received alarm or event type data + key = received_data["n"] + + producer.send( + topic="test.sputhan", + key="", + value=request.get_json(), + ) + + return success_response_object, success_code + + except Exception as e: + producer.flush() + logging.error("post data error", exc_info=True) + # elastic_apm.capture_exception() + return failure_response_object, failure_code + + + @app.route("/c2/v1", methods=["POST"]) + def postdata(): try: # data = request.get_data()