X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=near-rt-ric-simulator%2Fcr%2Fcr.py;fp=near-rt-ric-simulator%2Fcr%2Fcr.py;h=0000000000000000000000000000000000000000;hb=acdd3f361ff7af58b0276789cc5148180a06e552;hp=28e3b1001c156a43ef03181bf8efe004c2947f99;hpb=fd5e1f38fac7e52c0a975051c9e09a8b2c257bee;p=nonrtric.git diff --git a/near-rt-ric-simulator/cr/cr.py b/near-rt-ric-simulator/cr/cr.py deleted file mode 100644 index 28e3b100..00000000 --- a/near-rt-ric-simulator/cr/cr.py +++ /dev/null @@ -1,158 +0,0 @@ - -# ============LICENSE_START=============================================== -# Copyright (C) 2020 Nordix Foundation. All rights reserved. -# ======================================================================== -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============LICENSE_END================================================= -# - -from flask import Flask, request -from time import sleep -import time -import datetime -import json -from flask import Flask -from flask import Response -import traceback - -app = Flask(__name__) - -# list of callback messages -msg_callbacks={} - -# Server info -HOST_IP = "0.0.0.0" -HOST_PORT = 8090 - -# Metrics vars -cntr_msg_callbacks=0 -cntr_msg_fetched=0 - -# Request and response constants -CALLBACK_URL="/callbacks/" -APP_READ_URL="/get-event/" - -MIME_TEXT="text/plain" -MIME_JSON="application/json" -CAUGHT_EXCEPTION="Caught exception: " -SERVER_ERROR="Server error :" - -#I'm alive function -@app.route('/', - methods=['GET']) -def index(): - return 'OK', 200 - -### Callback interface, for control - -# Fetch the oldest callback message for an id -# URI and parameter, (GET): /get-event/ -# response: message + 200 or 204 -@app.route(APP_READ_URL, - methods=['GET']) -def receiveresponse(id): - global msg_callbacks - global cntr_msg_fetched - - try: - if ((id in msg_callbacks.keys()) and (len(msg_callbacks[id]) > 0)): - cntr_msg_fetched+=1 - msg=str(msg_callbacks[id][0]) - print("Fetching msg for id: "+id+", msg="+msg) - del msg_callbacks[id][0] - return msg,200 - print("No messages for id: "+id) - except Exception as e: - print(CAUGHT_EXCEPTION+str(e)) - - return "",204 - - -# Receive a callback message -# URI and payload, (PUT or POST): /callbacks/ -# response: OK 200 or 500 for other errors -@app.route(CALLBACK_URL, - methods=['PUT','POST']) -def events_write(id): - global msg_callbacks - global cntr_msg_callbacks - - try: - print("Received callback for id: "+id +", content-type="+request.content_type) - try: - print("data:"+request.get_data) - if (request.content_type == MIME_JSON): - msg = request.json - print("Payload(json): "+str(msg)) - elif (request.content_type == MIME_TEXT): - msg= request.form - print("Payload(text): "+str(msg)) - else: - msg="\"\"" - print("Payload(content-type="+request.content_type+"). Setting data to empty, quoted, string") - except: - msg="\"\"" - print("Payload does not contain any json or text data, setting empty string as payload") - - cntr_msg_callbacks += 1 - if (id in msg_callbacks.keys()): - msg_callbacks[id].append(msg) - else: - msg_callbacks[id]=[] - msg_callbacks[id].append(msg) - except Exception as e: - print(CAUGHT_EXCEPTION+str(e)) - return 'OK',500 - - return 'OK',200 - - -### Functions for metrics read out ### - -@app.route('/counter/received_callbacks', - methods=['GET']) -def requests_submitted(): - return Response(str(cntr_msg_callbacks), status=200, mimetype=MIME_TEXT) - -@app.route('/counter/fetched_callbacks', - methods=['GET']) -def requests_fetched(): - return Response(str(cntr_msg_fetched), status=200, mimetype=MIME_TEXT) - -@app.route('/counter/current_messages', - methods=['GET']) -def current_messages(): - return Response(str(cntr_msg_callbacks-cntr_msg_fetched), status=200, mimetype=MIME_TEXT) - - - -### Admin ### - -# Reset all messsages and counters -@app.route('/reset', - methods=['GET', 'POST', 'PUT']) -def reset(): - global msg_callbacks - global cntr_msg_fetched - global cntr_msg_callbacks - - msg_callbacks={} - cntr_msg_fetched=0 - cntr_msg_callbacks=0 - - return Response('OK', status=200, mimetype=MIME_TEXT) - -### Main function ### - -if __name__ == "__main__": - app.run(port=HOST_PORT, host=HOST_IP)