added stop method to normal REST API
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 @@
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 @@
# start the emulation platform
net.start()
net.CLI()
+ rapi1.stop()
net.stop()