summaryrefslogtreecommitdiff
path: root/src-py
diff options
context:
space:
mode:
authorLV-426 <lv-426@taproot.org.il>2014-11-30 12:36:10 +0200
committerLV-426 <lv-426@taproot.org.il>2014-12-02 02:33:05 +0200
commit23bb05b2f506743bf9c0008f8a7d9dd68bfa326e (patch)
tree45b876bb70ec9e76e8a39e42988eeca459ea1de4 /src-py
parent427fbc64eeda746ad2c3e06cd34db296a00dbb78 (diff)
applicative REST API init - provides logic<>web-framework decoupling
Diffstat (limited to 'src-py')
-rw-r--r--src-py/rhizi_api.py12
-rw-r--r--src-py/rhizi_server.py27
2 files changed, 27 insertions, 12 deletions
diff --git a/src-py/rhizi_api.py b/src-py/rhizi_api.py
index 6bc77cb6..7391c90f 100644
--- a/src-py/rhizi_api.py
+++ b/src-py/rhizi_api.py
@@ -31,8 +31,6 @@ class FlaskExt(Flask):
ret.headers['Access-Control-Allow-Headers'] = "Origin, Content-Type, Accept, Authorization"
return ret
-webapp = FlaskExt(__name__)
-webapp.debug = True
# injected: DB controller
db_ctl = None
@@ -69,7 +67,6 @@ def __common_exec(op, on_success=__common_resp_handle):
log.error(traceback.print_exc())
return __common_resp_handle('error occurred')
-@webapp.route("/load/node-set-by-id", methods=['POST'])
def load_node_set_by_id_attr():
"""
load node-set by ID attribute
@@ -99,7 +96,6 @@ def __load_node_set_by_id_attr_common(id_set):
log.exception(e)
return __common_resp_handle(error='unable to load node with ids: {0}'.format(id_set))
-@webapp.route("/match/node-set", methods=['POST'])
def match_node_set_by_attr_filter_map(attr_filter_map):
"""
@param attr_filter_map
@@ -109,7 +105,6 @@ def match_node_set_by_attr_filter_map(attr_filter_map):
op = dbc.DBO_match_node_id_set(attr_filter_map)
return __common_exec(op)
-@webapp.route("/load/link-set/by_link_ptr_set", methods=['POST'])
def load_link_set_by_link_ptr_set():
def deserialize_param_set(param_json):
@@ -130,12 +125,10 @@ def load_link_set_by_link_ptr_set():
op = dbc.DBO_load_link_set.init_from_link_ptr_set(l_ptr_set)
return __common_exec(op)
-@webapp.route("/graph/clone", methods=['POST'])
def rz_clone():
op = dbc.DBO_rz_clone()
return __common_exec(op)
-@webapp.route("/graph/diff-commit-set", methods=['POST'])
def diff_commit_set():
"""
commit a diff set
@@ -150,7 +143,6 @@ def diff_commit_set():
op = dbc.DBO_topo_diff_commit(topo_diff)
return __common_exec(op)
-@webapp.route("/graph/diff-commit-topo", methods=['POST'])
def diff_commit_topo():
"""
commit a graph topology diff
@@ -164,7 +156,6 @@ def diff_commit_topo():
op = dbc.DBO_topo_diff_commit(topo_diff)
return __common_exec(op)
-@webapp.route("/graph/diff-commit-attr", methods=['POST'])
def diff_commit_attr():
"""
commit a graph attribute diff
@@ -175,11 +166,9 @@ def diff_commit_attr():
op = dbc.DBO_attr_diff_commit(attr_diff)
return __common_exec(op)
-@webapp.route("/graph/diff-commit-vis", methods=['POST'])
def diff_commit_vis():
pass
-@webapp.route("/add/node-set", methods=['POST'])
def add_node_set():
"""
@deprecated: use topo_attr_commit
@@ -192,7 +181,6 @@ def add_node_set():
op = dbc.DBO_add_node_set(node_map)
return __common_exec(op)
-@webapp.route("/monitor/server-info", methods=['GET'])
def monitor__server_info():
"""
server monitor stub
diff --git a/src-py/rhizi_server.py b/src-py/rhizi_server.py
index f085e863..cef57f36 100644
--- a/src-py/rhizi_server.py
+++ b/src-py/rhizi_server.py
@@ -54,6 +54,33 @@ def init_logging():
class RhiziServer(object):
pass
+def init_rest_api(flask_webapp):
+ """
+ map REST API calls
+ """
+ rest_entry_set = [
+ rest_entry('/add/node-set' , rhizi_api.add_node_set),
+ rest_entry('/graph/clone', rhizi_api.rz_clone),
+ rest_entry('/graph/diff-commit-set', rhizi_api.diff_commit_set),
+ rest_entry('/graph/diff-commit-topo', rhizi_api.diff_commit_topo),
+ rest_entry('/graph/diff-commit-attr', rhizi_api.diff_commit_attr),
+ rest_entry('/graph/diff-commit-vis', rhizi_api.diff_commit_vis),
+ rest_entry('/index', rhizi_api.index),
+ rest_entry('/load/node-set-by-id', rhizi_api.load_node_set_by_id_attr),
+ rest_entry('/load/link-set/by_link_ptr_set', rhizi_api.load_link_set_by_link_ptr_set),
+ rest_entry('/login', rhizi_api.login, {'methods': ['GET', 'POST']}),
+ rest_entry('/logout', rhizi_api.logout),
+ rest_entry('/match/node-set', rhizi_api.match_node_set_by_attr_filter_map),
+ rest_entry('/monitor/server-info', rhizi_api.monitor__server_info),
+ ]
+
+ for re in rest_entry_set:
+ rest_path, f, flask_args = re
+ route_decorator = flask_webapp.route(rest_path, **flask_args)
+ flask_webapp.f = route_decorator(f)
+
+ if '/login' != rest_path:
+
if __name__ == "__main__":
p = argparse.ArgumentParser(description='rhizi-server')