diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/rhizi_server.py | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/server/rhizi_server.py b/src/server/rhizi_server.py index 29e8552c..58ede0c2 100644 --- a/src/server/rhizi_server.py +++ b/src/server/rhizi_server.py @@ -13,12 +13,14 @@ import crypt_util import re from flask import Flask +from flask import Response from flask import session from flask import redirect from flask import request from flask import send_from_directory from functools import wraps +from rz_mesh import init_ws_interface class Config(object): """ @@ -141,9 +143,9 @@ def init_log(cfg): log.addHandler(log_handler_f) return log -def init_rest_api(cfg, flask_webapp): +def init_rest_interface(cfg, flask_webapp): """ - map REST API calls + Initialize REST interface """ def rest_entry(path, f, flask_args={'methods': ['POST']}): @@ -218,8 +220,13 @@ def init_rest_api(cfg, flask_webapp): flask_webapp.f = f # assign decorated function -def init_webapp(cfg): +def init_webapp(cfg, db_ctl=None): + """ + Initialize webapp: + - call init_rest_interface() + """ root_path = cfg.root_path + webapp = FlaskExt(__name__, static_folder='static', template_folder=os.path.join(root_path, 'templates'), @@ -227,10 +234,13 @@ def init_webapp(cfg): webapp.config.from_object(cfg) webapp.root_path = root_path # for some reason calling config.from_xxx() does not have effect - db_ctl = dbc.DB_Controller(cfg) + if None == db_ctl: + db_ctl = dbc.DB_Controller(cfg) rhizi_api.db_ctl = db_ctl webapp.rz_config = cfg + + init_rest_interface(cfg, webapp) return webapp def init_config(cfg_dir): @@ -259,9 +269,7 @@ if __name__ == "__main__": exit(0) webapp = init_webapp(cfg) - init_rest_api(cfg, webapp) + ws_srv = init_ws_interface(cfg, webapp) + ws_srv.serve_forever() - log.info('launching webapp via Flask development server') - webapp.run(host=cfg.listen_address, - port=cfg.listen_port) |
