summaryrefslogtreecommitdiff
path: root/src/server/rhizi_api.py
diff options
context:
space:
mode:
authorLV-426 <lv-426@taproot.org.il>2015-01-04 17:21:35 +0200
committerLV-426 <lv-426@taproot.org.il>2015-01-04 17:25:14 +0200
commit444bf64adb3e9b698ea92090fa7681dbd5339dca (patch)
tree3a4bc6b4a6b38dfad158ffefccf6faf4a05a5483 /src/server/rhizi_api.py
parentf5494d9233d6f9967c614eef23dee1f29af056c9 (diff)
rename rhizi_api -> rz_api
Diffstat (limited to 'src/server/rhizi_api.py')
-rw-r--r--src/server/rhizi_api.py187
1 files changed, 0 insertions, 187 deletions
diff --git a/src/server/rhizi_api.py b/src/server/rhizi_api.py
deleted file mode 100644
index f6a3f128..00000000
--- a/src/server/rhizi_api.py
+++ /dev/null
@@ -1,187 +0,0 @@
-"""
-Rhizi web API
-
-@deprecated: destined to split into rz_api_rest & rz_api_websocket
-"""
-from datetime import datetime
-from flask import Flask
-from flask import escape
-from flask import jsonify
-from flask import make_response
-from flask import redirect
-from flask import render_template
-from flask import request
-from flask import send_from_directory
-from flask import session
-from flask import url_for
-import flask
-import json
-import logging
-import os
-import traceback
-
-import crypt_util
-import db_controller as dbc
-from model.graph import Topo_Diff
-from model.model import Link
-from rz_api_common import __sanitize_input
-from rz_api_common import sanitize_input__topo_diff
-from rz_api_rest import __common_resp_handle
-from rz_kernel import RZ_Kernel
-
-
-log = logging.getLogger('rhizi')
-
-db_ctl = None # injected: DB controller
-
-def __common_exec(op, on_success=__common_resp_handle, on_error=__common_resp_handle):
- """
- @param on_success: should return a Flask Response object
- @param on_error: should return a Flask Response object
- """
- try:
- op_ret = db_ctl.exec_op(op)
- return on_success(op_ret)
- except Exception as e:
- log.error(e.message)
- log.error(traceback.print_exc())
- return on_error(error='error occurred')
-
-def load_node_set_by_id_attr():
- """
- load node-set by ID attribute
-
- @param id_set: list of node ids to match id attribute against
- @return: a list of nodes whose id attribute matches 'id' or
- an empty list if the requested node is not found
- @raise exception: on error
- """
- req_json = request.get_json()
- id_set = req_json['id_set']
-
- __sanitize_input(id_set)
-
- return __load_node_set_by_id_attr_common(id_set)
-
-def __load_node_set_by_id_attr_common(id_set):
- """
- @param f_k: optional attribute filter key
- @param f_vset: possible key values to match against
- """
- op = dbc.DBO_match_node_set_by_id_attribute(id_set=id_set)
- try:
- n_set = db_ctl.exec_op(op)
- return __common_resp_handle(data=n_set)
- except Exception as e:
- log.exception(e)
- return __common_resp_handle(error='unable to load node with ids: {0}'.format(id_set))
-
-def match_node_set_by_attr_filter_map(attr_filter_map):
- """
- @param attr_filter_map
-
- @return: a set of node DB id's
- """
- op = dbc.DBO_match_node_id_set(attr_filter_map)
- return __common_exec(op)
-
-def load_link_set_by_link_ptr_set():
-
- def deserialize_param_set(param_json):
- l_ptr_set_raw = param_json['link_ptr_set']
-
- __sanitize_input(l_ptr_set_raw)
-
- l_ptr_set = []
- for lptr_dict in l_ptr_set_raw:
- src_id = lptr_dict.get('__src_id')
- dst_id = lptr_dict.get('__dst_id')
- l_ptr_set += [Link.Link_Ptr(src_id=src_id, dst_id=dst_id) ]
-
- return l_ptr_set
-
- l_ptr_set = deserialize_param_set(request.get_json())
-
- op = dbc.DBO_load_link_set.init_from_link_ptr_set(l_ptr_set)
- return __common_exec(op)
-
-def rz_clone():
- op = dbc.DBO_rz_clone()
- return __common_exec(op)
-
-def diff_commit__set():
- """
- commit a diff set
- """
- def sanitize_input(req):
- diff_set_dict = request.get_json()['diff_set']
- topo_diff_dict = diff_set_dict['__diff_set_topo'][0]
- topo_diff = Topo_Diff.from_json_dict(topo_diff_dict)
-
- sanitize_input__topo_diff(topo_diff)
- return topo_diff;
-
- topo_diff = sanitize_input(request)
-
- op = dbc.DBO_topo_diff_commit(topo_diff)
- return __common_exec(op)
-
-def add_node_set():
- """
- @deprecated: use topo_attr_commit
-
- @param node_map: node type to node map, eg. { 'Skill': { 'name': 'kung-fu' } }
- """
- node_map = request.get_json()['node_map']
- __sanitize_input(node_map)
-
- op = dbc.DBO_add_node_set(node_map)
- return __common_exec(op)
-
-def monitor__server_info():
- """
- server monitor stub
- """
- dt = datetime.now()
- return "<html><body>" + \
- "<h1>Rhizi Server v0.1</h1><p>" + \
- "date: " + dt.strftime("%Y-%m-%d") + "<br>" + \
- "time: " + dt.strftime("%H:%M:%S") + "<br>" + \
- "</p></body></html>"
-
-def index():
- session_username = session.get('username')
- username = escape(session_username if session_username != None else "Anonymous Stranger")
- return render_template('index.html', username=username)
-
-def login():
-
- def sanitize_input(req):
- req_json = request.get_json()
- u = req_json['username']
- p = req_json['password']
- return u, p
-
- if request.method == 'POST':
- try:
- u, p = sanitize_input(request)
- crypt_util.validate_login(flask.current_app.rz_config, u, p)
- except Exception as e:
- # login failed
- log.warn('login: unauthorized: user: %s' % (u))
- return render_template('login.html', login_failed=True)
-
- # login successful
- session['username'] = u
- log.debug('login: success: user: %s' % (u))
- return redirect(url_for('index'))
-
- if request.method == 'GET':
- return render_template('login.html')
-
-def logout():
- # remove the username from the session if it's there
- u = session.pop('username', None)
- log.debug('logout: success: user: %s' % (u))
- return redirect(url_for('login'))
-