diff --git a/Ccs/ccs_function_lib.py b/Ccs/ccs_function_lib.py index f65e8cae0e367a5f7d20b3c07902b52f8b387879..49c9665a767ea9a51363bb615ec327f71343e572 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 522db3ec2690bb8c6bc45c2237f52c7d866e9292..107ba771769261a7906d286704a2a86f4a66c493 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 72de9fcc545b8f2d10430a06a39a9be816e609a7..e14a663e85de83a3588b9726ba5dff251134fc00 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 85f17b8297bcc0110bb8bb89e2126992f5024ea0..7fe70387b5def9c7d9c83c8be1a5640289119954 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 5b5dd79486690a6b1b493473a26f0fd46788d0dc..71f499679fc126efc1943ef1d95321629e917c63 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