From b1a426eeed8b2611e908869366ea0ab82c27ce36 Mon Sep 17 00:00:00 2001 From: peusterm Date: Fri, 18 Aug 2017 10:05:32 +0200 Subject: [PATCH] added stop method to normal REST API --- src/emuvim/api/rest/rest_api_endpoint.py | 14 +++++++++----- src/emuvim/examples/sonata_y1_demo_topology_1.py | 1 + 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/emuvim/api/rest/rest_api_endpoint.py b/src/emuvim/api/rest/rest_api_endpoint.py index b5f29d4..3cb737e 100755 --- a/src/emuvim/api/rest/rest_api_endpoint.py +++ b/src/emuvim/api/rest/rest_api_endpoint.py @@ -127,17 +127,21 @@ class RestApiEndpoint(object): self.__class__.__name__, self.ip, self.port)) def start(self): - thread = threading.Thread(target=self._start_flask, args=()) - thread.daemon = True - thread.start() + self.thread = threading.Thread(target=self._start_flask, args=()) + self.thread.daemon = True + self.thread.start() logging.info("Started API endpoint @ http://%s:%d" % (self.ip, self.port)) + def stop(self): + if self.http_server: + self.http_server.close() + def _start_flask(self): #self.app.run(self.ip, self.port, debug=False, use_reloader=False) #this should be a more production-fit http-server #self.app.logger.setLevel(logging.ERROR) - http_server = WSGIServer((self.ip, self.port), + self.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() + self.http_server.serve_forever() diff --git a/src/emuvim/examples/sonata_y1_demo_topology_1.py b/src/emuvim/examples/sonata_y1_demo_topology_1.py index 4098855..a21fef8 100755 --- a/src/emuvim/examples/sonata_y1_demo_topology_1.py +++ b/src/emuvim/examples/sonata_y1_demo_topology_1.py @@ -68,6 +68,7 @@ def create_topology1(): # start the emulation platform net.start() net.CLI() + rapi1.stop() net.stop() -- 2.17.1