浏览代码

fix get neuron by name, add shutdown of the server

nico 8 年之前
父节点
当前提交
f36cedb6c2
共有 1 个文件被更改,包括 14 次插入3 次删除
  1. 14 3
      core/RestAPI/FlaskAPI.py

+ 14 - 3
core/RestAPI/FlaskAPI.py

@@ -27,6 +27,7 @@ class FlaskAPI(threading.Thread):
         self.app.add_url_rule('/synapses/<synapse_name>', view_func=self.get_synapse, methods=['GET'])
         self.app.add_url_rule('/synapses/<synapse_name>', view_func=self.run_synapse, methods=['POST'])
         self.app.add_url_rule('/order/', view_func=self.run_order, methods=['POST'])
+        self.app.add_url_rule('/shutdown/', view_func=self.shutdown_server, methods=['POST'])
 
     def run(self):
         self.app.run(host='0.0.0.0', port="%s" % int(self.port), debug=True, threaded=True, use_reloader=False)
@@ -39,9 +40,11 @@ class FlaskAPI(threading.Thread):
         """
         all_synapse = self.brain.brain_yaml
         for el in all_synapse:
-            print el
-            if el[0]["name"] in synapse_name:
-                return el[0]
+            try:
+                if el["name"] == synapse_name:
+                    return el
+            except KeyError:
+                pass
         return None
 
     @requires_auth
@@ -126,3 +129,11 @@ class FlaskAPI(threading.Thread):
                 "error": "order cannot be null"
             }
             return jsonify(error=data), 400
+
+    @requires_auth
+    def shutdown_server(self):
+        func = request.environ.get('werkzeug.server.shutdown')
+        if func is None:
+            raise RuntimeError('Not running with the Werkzeug Server')
+        func()
+        return "Shutting down..."