Refactored logging
[osm/vim-emu.git] / src / emuvim / api / rest / monitor.py
index 74f7acf..bf0f26b 100755 (executable)
@@ -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