summaryrefslogtreecommitdiff
path: root/src/server/rhizi_server.py
diff options
context:
space:
mode:
authorLV-426 <lv-426@taproot.org.il>2014-12-28 17:48:00 +0200
committerLV-426 <lv-426@taproot.org.il>2014-12-28 17:52:13 +0200
commit94325381eed478198398daa52e076e9a897337d5 (patch)
treed108c335e9bfd24e8460bc77ce547d226c908188 /src/server/rhizi_server.py
parentd8e3c8e9ffd4fd88239afa465871fb6cc304c74d (diff)
init sequence refactoring: start SocketIO server by default
Diffstat (limited to 'src/server/rhizi_server.py')
-rw-r--r--src/server/rhizi_server.py24
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)