From f5549dcb1196a5bb13dd97b1bdd11bf874fa770f Mon Sep 17 00:00:00 2001
From: Arthur Le Bars <arthur.le-bars@sb-roscoff.fr>
Date: Mon, 24 May 2021 16:38:00 +0200
Subject: [PATCH] Throw a critical error while parsing the supplied config file
 when a parameter is not configured or configured incorrectly (empty value) in
 the config file

---
 utilities.py | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/utilities.py b/utilities.py
index bcc79b2..ff24356 100755
--- a/utilities.py
+++ b/utilities.py
@@ -37,12 +37,17 @@ def parse_config(config_file):
 
     config_dict = load_yaml(config_file)
     if not isinstance(config_dict, dict):
-        logging.critical("Config yaml file is not a dictionary" % config_file)
+        logging.critical("Config yaml file is not a dictionary (%s)" % config_file)
         sys.exit()
     else:
-        #logging.debug("Config dictionary: {0}".format(config_dict))
-        #required_param = [constants.]
-        #check_not_empty_param()
+        required_parameters = [constants.CONF_ALL_HOSTNAME, constants.CONF_ALL_HTTP_PORT, constants.CONF_GALAXY_DEFAULT_ADMIN_EMAIL,
+                               constants.CONF_GALAXY_DEFAULT_ADMIN_USER, constants.CONF_GALAXY_DEFAULT_ADMIN_PASSWORD, constants.CONF_TRIPAL_PASSWORD,
+                               constants.CONF_GALAXY_CONFIG_REMOTE_USER_MAILDOMAIN]
+        for required_parameter in required_parameters:
+            if not config_dict[required_parameter]:
+                logging.critical("{0} parameter improperly configured in config file {1}".format(required_parameter, config_file))
+                sys.exit()
+
         return config_dict
 
 def parse_input(input_file):
-- 
GitLab