summaryrefslogtreecommitdiff
path: root/src/server/rz_server.py
diff options
context:
space:
mode:
authorLV-426 <lv-426@taproot.org.il>2015-04-29 04:01:14 +0300
committerLV-426 <lv-426@taproot.org.il>2015-04-29 17:48:48 +0300
commit23a7ea71e2a42d4ccd7340ec14d7bfa6d7379665 (patch)
tree8d225f8bcb031ab1d0919d2570208dd27638eed4 /src/server/rz_server.py
parent19bff77505ffe6c4eff042ffd2902eb97de936a7 (diff)
rz_server: init_DB(): probe for metablock, init if missing
Diffstat (limited to 'src/server/rz_server.py')
-rw-r--r--src/server/rz_server.py25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/server/rz_server.py b/src/server/rz_server.py
index 5b4c29b5..cf960f1d 100644
--- a/src/server/rz_server.py
+++ b/src/server/rz_server.py
@@ -14,6 +14,7 @@ import traceback
import types
import db_controller as dbc
+from db_op import DBO_rzdb__fetch_DB_metablock, DBO_rzdb__init_DB
import rz_api
import rz_api_rest
import rz_blob
@@ -407,6 +408,27 @@ def init_config(cfg_dir):
cfg = Config.init_from_file(cfg_path)
return cfg
+def init_DB(cfg):
+ db_ctl = dbc.DB_Controller(cfg)
+ op_probe = DBO_rzdb__fetch_DB_metablock(cfg)
+
+ try:
+ dbmb = db_ctl.exec_op(op_probe)
+ if dbmb is None:
+ log.warning('detected uninitialized DB, initializing')
+ op_init = DBO_rzdb__init_DB(cfg)
+ db_ctl.exec_op(op_init)
+ op_probe = DBO_rzdb__fetch_DB_metablock(cfg) # reprobe for metablock
+ dbmb = db_ctl.exec_op(op_probe)
+ log.info('DB initialized, schema-version: %s' % (dbmb['schema_version']))
+ else:
+ log.info('DB connection established, schema-version: %s' % (dbmb['schema_version']))
+ except Exception as e:
+ log.exception('failed to init DB')
+ raise e
+
+ return db_ctl
+
def init_user_db():
global user_db
@@ -483,7 +505,8 @@ if __name__ == "__main__":
#
# init DB controller
#
- kernel.db_ctl = dbc.DB_Controller(cfg)
+
+ kernel.db_ctl = init_DB(cfg)
rz_api_rest.db_ctl = kernel.db_ctl
#