diff options
| author | LV-426 <lv-426@taproot.org.il> | 2015-04-29 04:01:14 +0300 |
|---|---|---|
| committer | LV-426 <lv-426@taproot.org.il> | 2015-04-29 17:48:48 +0300 |
| commit | 23a7ea71e2a42d4ccd7340ec14d7bfa6d7379665 (patch) | |
| tree | 8d225f8bcb031ab1d0919d2570208dd27638eed4 /src/server/rz_server.py | |
| parent | 19bff77505ffe6c4eff042ffd2902eb97de936a7 (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.py | 25 |
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 # |
