From 1b4a5fdcc8b87c6dd8fe441a8d68eacdd00e9f2b Mon Sep 17 00:00:00 2001
From: Nico Vermaas <vermaas@astron.nl>
Date: Mon, 8 Aug 2022 14:34:25 +0200
Subject: [PATCH] add extra --configuration parameter to the file with tunnel
 and ldvadmin credentials

---
 ldv_migrate/ldv_migrate/connection/config.py                | 4 ++--
 .../ldv_migrate/connection/retrieve_db_connection.py        | 4 ++--
 ldv_migrate/ldv_migrate/migrate_ldvadmin_to_ldvspec.py      | 6 ++++--
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/ldv_migrate/ldv_migrate/connection/config.py b/ldv_migrate/ldv_migrate/connection/config.py
index aa51743..36fac48 100644
--- a/ldv_migrate/ldv_migrate/connection/config.py
+++ b/ldv_migrate/ldv_migrate/connection/config.py
@@ -2,8 +2,8 @@ from configparser import ConfigParser
 import os
 
 
-def read_config(section, filename='database.cfg'):
-    full_filename = os.path.join(os.path.dirname(__file__), filename)
+def read_config(configuration_file, section):
+    full_filename = os.path.join(os.path.dirname(__file__), configuration_file)
     parser = ConfigParser()
     read_result = parser.read(full_filename)
     # If file not found then parser returns just an empty list it does not raise an Exception!
diff --git a/ldv_migrate/ldv_migrate/connection/retrieve_db_connection.py b/ldv_migrate/ldv_migrate/connection/retrieve_db_connection.py
index 21f5684..52f1184 100644
--- a/ldv_migrate/ldv_migrate/connection/retrieve_db_connection.py
+++ b/ldv_migrate/ldv_migrate/connection/retrieve_db_connection.py
@@ -8,13 +8,13 @@ import os
 
 from ldv_migrate.connection.config import read_config
 
-def connect_postgresql(section):
+def connect_postgresql(configuration_file, section):
     """ Connect to the PostgreSQL database server """
     conn = None
     tunnel = None
     try:
         # read connection parameters
-        configuration = read_config(section=section)
+        configuration = read_config(configuration_file=configuration_file, section=section)
 
         logging.info('Connecting PostgreSQL database %s', configuration.get('database', 'no database name given'))
 
diff --git a/ldv_migrate/ldv_migrate/migrate_ldvadmin_to_ldvspec.py b/ldv_migrate/ldv_migrate/migrate_ldvadmin_to_ldvspec.py
index e6bee1b..deb12a9 100644
--- a/ldv_migrate/ldv_migrate/migrate_ldvadmin_to_ldvspec.py
+++ b/ldv_migrate/ldv_migrate/migrate_ldvadmin_to_ldvspec.py
@@ -73,7 +73,9 @@ def main():
     parser.add_argument("-t", "--token", default="ad9b37a24380948601257f9c1f889b07a00ac81e",
                         help="Token to access the REST API of ldvspec", action="store")
     parser.add_argument("--host", nargs="?", default='dev',
-                        help="The ldv-spec-db host. Presets are 'dev', 'test', 'prod', otherwise give a full url like https://atdb.astron.nl/atdb")
+                        help="The ldv-spec-db host.")
+    parser.add_argument("--configuration", default='~/shared/ldv_migrate.cfg',
+                        help="Configuration file containing tunnel and ldvadmin database credentials")
     parser.add_argument("-s", "--section", default='postgresql-ldv',
                         help="Add the configuration's section from the database.cfg.")
     # Have payload of more millions will most likely not work
@@ -113,7 +115,7 @@ def main():
             .format(limit_str)
 
     # Create connection using ssh tunnel with the ldvadmin database
-    conn, tunnel = connector.connect_postgresql(args.section)
+    conn, tunnel = connector.connect_postgresql(args.configuration, args.section)
     count_raw_dps = execute_query(conn, query_count_all_raw_dataproducts)[0][0]
     count_pl_dps = execute_query(conn, query_count_all_pipeline_dataproducts)[0][0]
     logging.info(f"There are {count_raw_dps} raw dataproducts and {count_pl_dps} pipeline dataproduct in the ldvadmin.astrowise table!!")
-- 
GitLab