X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2Fvim-emu.git;a=blobdiff_plain;f=src%2Femuvim%2Fapi%2Ftango%2Fllcm.py;fp=src%2Femuvim%2Fapi%2Ftango%2Fllcm.py;h=eaa0b5ee48c2d26bd93d2499b6484682ddff325c;hp=aae6be1bc54d9cdf4712454bc6b52395858424b1;hb=f8f135c271341479200232641823520a541f33b0;hpb=f0120d71d73c4dc80084a3282074490e7ed4f934 diff --git a/src/emuvim/api/tango/llcm.py b/src/emuvim/api/tango/llcm.py index aae6be1..eaa0b5e 100755 --- a/src/emuvim/api/tango/llcm.py +++ b/src/emuvim/api/tango/llcm.py @@ -39,6 +39,7 @@ import threading from docker import DockerClient from flask import Flask, request import flask_restful as fr +from gevent.pywsgi import WSGIServer from subprocess import Popen import ipaddress import copy @@ -1028,6 +1029,7 @@ def initialize_GK(): GK = None initialize_GK() # setup Flask +http_server = None app = Flask(__name__) app.config['MAX_CONTENT_LENGTH'] = 512 * 1024 * 1024 # 512 MB max upload api = fr.Api(app) @@ -1039,14 +1041,22 @@ api.add_resource(Exit, '/emulator/exit') def start_rest_api(host, port, datacenters=dict()): + global http_server GK.dcs = datacenters GK.net = get_dc_network() # start the Flask server (not the best performance but ok for our use case) - app.run(host=host, - port=port, - debug=True, - use_reloader=False # this is needed to run Flask in a non-main thread - ) + # app.run(host=host, + # port=port, + # debug=True, + # use_reloader=False # this is needed to run Flask in a non-main thread + # ) + http_server = WSGIServer((host, port), app, log=open("/dev/null", "w")) + http_server.serve_forever() + + +def stop_rest_api(): + if http_server: + http_server.close() def ensure_dir(name):