From 87db698fd31ec6d97fe194b65b47df99e79495ac Mon Sep 17 00:00:00 2001 From: Marko Mecina <marko.mecina@univie.ac.at> Date: Thu, 27 May 2021 11:03:35 +0200 Subject: [PATCH] centralise database configuration SQL user and pw are now defined in egse.cfg, IDB schema name in ccs_main_config.cfg --- Ccs/ccs_function_lib.py | 14 +++++++++---- Ccs/ccs_main_config.cfg | 9 +++++---- Ccs/database/config_db.py | 28 +++++++++++--------------- Tst/codeblockreusefeature/db_schema.py | 12 ++++++++--- egse.cfg | 6 +++++- 5 files changed, 41 insertions(+), 28 deletions(-) diff --git a/Ccs/ccs_function_lib.py b/Ccs/ccs_function_lib.py index f65e8ca..49c9665 100644 --- a/Ccs/ccs_function_lib.py +++ b/Ccs/ccs_function_lib.py @@ -87,14 +87,20 @@ fmtlengthlist = {'b': 1, 'B': 1, 'h': 2, 'H': 2, 'i': 4, 'I': 4, 'q': 8, 'Q': 8, 'f': 4, 'd': 8, 'i24': 3, 'I24': 3} -# tm_header_struct = struct.Struct('>HHHBBBBLH') -# tc_header_struct = struct.Struct('>HHHBBBB') - -scoped_session_idb = scoped_session_maker('idb') # This variable passes along a session for connection to Database, same sessions can be used +scoped_session_idb = scoped_session_maker('idb', idb_version=None) scoped_session_storage = scoped_session_maker('storage') Notify.init('cfl') + +def get_scoped_session_idb(idb_version=None): + return scoped_session_maker('idb', idb_version=idb_version) + + +def get_scoped_session_storage(): + return scoped_session_maker('storage') + + def start_app(console, file_path, wd, *args): # gui argument only used for poolmanager since it does not have an automatic gui if not os.path.isfile(file_path): diff --git a/Ccs/ccs_main_config.cfg b/Ccs/ccs_main_config.cfg index 522db3e..107ba77 100644 --- a/Ccs/ccs_main_config.cfg +++ b/Ccs/ccs_main_config.cfg @@ -11,6 +11,11 @@ pixmap = ${paths:ccs}/pixmap font_size = 10 scrollback_lines = 1000 +[ccs-database] +project = SMILE +idb_schema = mib_smile_sxi +commit_interval = 0.05 + [ccs-logging] log-dir = ${paths:base}/logs level = INFO @@ -28,10 +33,6 @@ target_ip = 10.0.0.1 tm_port = 60003 tc_port = 60001 -[ccs-database] -commit_interval = 0.05 -project = SMILE - [ccs-actions] action1 = actions/action1.py action1_img = pixmap/ON_PS.svg diff --git a/Ccs/database/config_db.py b/Ccs/database/config_db.py index 72de9fc..e14a663 100644 --- a/Ccs/database/config_db.py +++ b/Ccs/database/config_db.py @@ -1,26 +1,22 @@ +import confignator + +cfg = confignator.get_config() + +user = cfg.get('database', 'user') +pw = cfg.get('database', 'password') + # --------------- SMILE --------------- -idb_schema_name = 'mib_smile_sxi' -storage_schema_name = 'smile_data_storage' -# pus_storage_schema_name = 'rmap_data_storage' -# rmap_storage_schema_name = 'rmap_data_storage' -# feedata_storage_schema_name = 'fee_data_storage' +# idb_schema_name = 'mib_smile_sxi' +idb_schema_name = cfg.get('ccs-database', 'idb_schema') +# storage_schema_name = 'smile_data_storage' +storage_schema_name = '{}_data_storage'.format(cfg.get('ccs-database', 'project').lower()) # --------------- CHEOPS --------------- -# idb_schema_name = 'dabys_mib_cheops_v2.30' # idb_schema_name = 'dabys_mib_cheops' -# idb_schema_name = 'mib_sxi' -# idb_schema_name = 'dabys_mib_cheops_2.4' -# idb_schema_name = 'cheops_idb' ##Dominik -# storage_schema_name = 'cheops_data_storage' ## Dominik # --------------- storage database tables --------------- telemetry_pool_table = 'tm_pool' telemetry_table = 'tm' # --------------- database connection --------------- -# mysql_connection_string = 'mysql://egse:weltraummuell@localhost' -# mysql_connection_string = 'mysql://dabys_admin:123dabys_admin@localhost/' + idb_schema_name -#mysql_connection_string = 'mysql://sxi:whysoserious@localhost' -# mysql_connection_string = 'mysql://root:spacewiki@localhost' -# mysql_connection_string = 'mysql://stefan:stefan@localhost' -mysql_connection_string = 'mysql://egse:weltraummuell@localhost' +mysql_connection_string = 'mysql://{}:{}@localhost'.format(user, pw) diff --git a/Tst/codeblockreusefeature/db_schema.py b/Tst/codeblockreusefeature/db_schema.py index 85f17b8..7fe7038 100644 --- a/Tst/codeblockreusefeature/db_schema.py +++ b/Tst/codeblockreusefeature/db_schema.py @@ -1,11 +1,17 @@ from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base -from sqlalchemy import Column, Index, Integer, String, ForeignKey, Boolean, Text +from sqlalchemy import Column, Integer, String, ForeignKey, Boolean, Text from sqlalchemy.orm import sessionmaker, relationship -from sqlalchemy.sql import func from contextlib import contextmanager -mysql_connection_string = 'mysql://egse:weltraummuell@localhost' +import confignator + +cfg = confignator.get_config() + +user = cfg.get('database', 'user') +pw = cfg.get('database', 'password') + +mysql_connection_string = 'mysql://{}:{}@localhost'.format(user, pw) schema_name = 'codeblocks' diff --git a/egse.cfg b/egse.cfg index 5b5dd79..71f4996 100644 --- a/egse.cfg +++ b/egse.cfg @@ -5,7 +5,11 @@ ccs = ${base}/Ccs obsw = /home/marko/space/smile/OBSW/implementation crplm = ${obsw}/CrPlm/build/pc ia = ${obsw}/CrIa/build/pc -start-simulator-log = ${logging:log-dir}/simulators/sim.log +start-simulator-log = ${logging:log-dir}/simulators/sim.log + +[database] +user = egse +password = weltraummuell [logging] log-dir = ${paths:base}/logs -- GitLab