X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fapi%2Frest%2Frest_api_endpoint.py;h=10b6c26fa318ea077ea7467c05a775387fa36092;hb=78faf0ec78bffc066105e090646b13faa6a26305;hp=71f87b94cd27fffdff6843ea900966e19cbf0080;hpb=5b876700bdef500e17c212f5b0bcea5383e44528;p=osm%2Fvim-emu.git diff --git a/src/emuvim/api/rest/rest_api_endpoint.py b/src/emuvim/api/rest/rest_api_endpoint.py index 71f87b9..10b6c26 100755 --- a/src/emuvim/api/rest/rest_api_endpoint.py +++ b/src/emuvim/api/rest/rest_api_endpoint.py @@ -30,7 +30,7 @@ import logging import threading from flask import Flask from flask_restful import Api -#from gevent.wsgi import WSGIServer +from gevent.wsgi import WSGIServer # need to import total module to set its global variable dcs import compute @@ -38,10 +38,10 @@ from compute import dcs, ComputeList, Compute, ComputeResources, DatacenterList, # need to import total module to set its global variable net import network -from network import NetworkAction +from network import NetworkAction, DrawD3jsgraph import monitor -from monitor import MonitorInterfaceAction, MonitorFlowAction, MonitorLinkAction, MonitorSkewAction +from monitor import MonitorInterfaceAction, MonitorFlowAction, MonitorLinkAction, MonitorSkewAction, MonitorTerminal import pkg_resources from os import path @@ -85,7 +85,8 @@ class RestApiEndpoint(object): # network related actions (setup chaining between VNFs) self.api.add_resource(NetworkAction, "/restapi/network") - + self.api.add_resource(DrawD3jsgraph, + "/restapi/network/d3jsgraph") # monitoring related actions # export a network interface traffic rate counter @@ -102,6 +103,10 @@ class RestApiEndpoint(object): # the skewness metric is exported self.api.add_resource(MonitorSkewAction, "/restapi/monitor/skewness") + # start a terminal window for the specified vnfs + self.api.add_resource(MonitorTerminal, + "/restapi/monitor/term") + logging.debug("Created API endpoint %s(%s:%d)" % (self.__class__.__name__, self.ip, self.port)) @@ -125,7 +130,11 @@ class RestApiEndpoint(object): logging.info("Started API endpoint @ http://%s:%d" % (self.ip, self.port)) def _start_flask(self): - self.app.run(self.ip, self.port, debug=True, use_reloader=False) + #self.app.run(self.ip, self.port, debug=False, use_reloader=False) #this should be a more production-fit http-server - #http_server = WSGIServer((self.ip, self.port), self.app) - #http_server.serve_forever() + #self.app.logger.setLevel(logging.ERROR) + http_server = WSGIServer((self.ip, self.port), + self.app, + log=open("/dev/null", "w") # This disables HTTP request logs to not mess up the CLI when e.g. the auto-updated dashboard is used + ) + http_server.serve_forever()