X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2Fvim-emu.git;a=blobdiff_plain;f=src%2Femuvim%2Fapi%2Frest%2Fmonitor.py;h=bf0f26bd42d0e8372f20583009171acffd95cafb;hp=74f7acf279a3bf31bed681b4cc751c49ac34fb59;hb=5b428742f78d79c2c465957b01d911a3513c3d30;hpb=e0796231bf6fd5b7d09d4a850227be7bc9bbdc6a diff --git a/src/emuvim/api/rest/monitor.py b/src/emuvim/api/rest/monitor.py index 74f7acf..bf0f26b 100755 --- a/src/emuvim/api/rest/monitor.py +++ b/src/emuvim/api/rest/monitor.py @@ -37,7 +37,7 @@ from flask_restful import Resource, reqparse from flask import request import json -logging.basicConfig(level=logging.INFO) +logging.basicConfig() CORS_HEADER = {'Access-Control-Allow-Origin': '*'} @@ -199,13 +199,16 @@ class MonitorLinkAction(Resource): # no check if vnfs are really connected to this datacenter... try: - # get URL parameters - data = request.args - #then no data + # check json payload + logging.debug("json: {}".format(request.json)) + logging.debug("args: {}".format(request.args)) + + data = request.json + if data is None: + data = request.args if data is None: data = {} - vnf_src_name = data.get("vnf_src_name") vnf_dst_name = data.get("vnf_dst_name") vnf_src_interface = data.get("vnf_src_interface") @@ -277,10 +280,10 @@ class MonitorSkewAction(Resource): c = net.monitor_agent.update_skewmon(vnf_name, resource_name, action='start') # return monitor message response - return str(c), 200 + return str(c), 200, CORS_HEADER except Exception as ex: logging.exception("API error.") - return ex.message, 500 + return ex.message, 500, CORS_HEADER def delete(self): logging.debug("REST CALL: stop monitor skewness") @@ -300,3 +303,27 @@ class MonitorSkewAction(Resource): logging.exception("API error.") return ex.message, 500, CORS_HEADER +class MonitorTerminal(Resource): + """ + start a terminal for the selected VNFs + :param vnf_list: list of names of the VNFs to start a terminal from (all VNFs if None) + :return: message string indicating if the monitor action is succesful or not + """ + global net + + def get(self): + # get URL parameters + data = request.args + if data is None: + data = {} + vnf_list = data.get("vnf_list") + logging.debug("REST CALL: start terminal for: {}".format(vnf_list)) + try: + # start terminals + c = net.monitor_agent.term(vnf_list) + + # return monitor message response + return str(c), 200, CORS_HEADER + except Exception as ex: + logging.exception("API error.") + return ex.message, 500, CORS_HEADER