Source code for validate_settings

import logging
import traceback
import pytz
import settings


[docs]def validate_settings_variables(current_skyline_app): """ This function is used by the agent.py to validate the variables in settings.py are valid :param current_skyline_app: the skyline app using this function :return: ``True`` or ``False`` :rtype: boolean """ current_skyline_app_logger = current_skyline_app + 'Log' current_logger = logging.getLogger(current_skyline_app_logger) invalid_variables = False # Validate settings variables try: TEST_REDIS_SOCKET_PATH = settings.REDIS_SOCKET_PATH except: current_logger.error('error :: REDIS_SOCKET_PATH is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: REDIS_SOCKET_PATH is not set in settings.py') invalid_variables = True try: TEST_SKYLINE_TMP_DIR = settings.SKYLINE_TMP_DIR except: current_logger.error('error :: SKYLINE_TMP_DIR is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: SKYLINE_TMP_DIR is not set in settings.py') invalid_variables = True try: TEST_FULL_NAMESPACE_IN_SETTINGS = settings.FULL_NAMESPACE except: current_logger.error('error :: FULL_NAMESPACE is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: FULL_NAMESPACE is not set in settings.py') invalid_variables = True try: TEST_CRUCIBLE_CHECK_PATH = settings.CRUCIBLE_CHECK_PATH except: current_logger.error('error :: CRUCIBLE_CHECK_PATH is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: CRUCIBLE_CHECK_PATH is not set in settings.py') valid_variables = True try: PANORAMA_CHECK_PATH = settings.PANORAMA_CHECK_PATH except: current_logger.error('error :: PANORAMA_CHECK_PATH is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: PANORAMA_CHECK_PATH is not set in settings.py') valid_variables = True if current_skyline_app in 'analyzer': try: TEST_ALGORITHMS_IN_SETTINGS = settings.ALGORITHMS except: current_logger.error('error :: ALGORITHMS is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: ALGORITHMS is not set in settings.py') invalid_variables = True try: TEST_ANALYZER_PROCESSES = settings.ANALYZER_PROCESSES + 1 except: current_logger.error('error :: ANALYZER_PROCESSES is not set to an int in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: ANALYZER_PROCESSES is not set in settings.py') invalid_variables = True try: TEST_MAX_ANALYZER_PROCESS_RUNTIME = settings.MAX_ANALYZER_PROCESS_RUNTIME + 1 except: current_logger.error('error :: MAX_ANALYZER_PROCESS_RUNTIME is not set to an int in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: MAX_ANALYZER_PROCESS_RUNTIME is not set in settings.py') invalid_variables = True try: TEST_ANALYZER_OPTIMUM_RUN_DURATION = settings.ANALYZER_OPTIMUM_RUN_DURATION + 1 except: current_logger.error('error :: ANALYZER_OPTIMUM_RUN_DURATION is not set to an int in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: ANALYZER_OPTIMUM_RUN_DURATION is not set in settings.py') invalid_variables = True try: TEST_ANALYZER_CRUCIBLE_ENABLED = settings.ANALYZER_CRUCIBLE_ENABLED except: current_logger.error('error :: ANALYZER_CRUCIBLE_ENABLED is not set in settings.py') current_logger.info(traceback.format_exc()) print ('error :: ANALYZER_CRUCIBLE_ENABLED is not set in settings.py') invalid_variables = True try: TEST_ENABLE_ALERTS = settings.ENABLE_ALERTS except: current_logger.error('error :: ENABLE_ALERTS is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: ENABLE_ALERTS is not set in settings.py') invalid_variables = True try: TEST_MIRAGE_CHECK_PATH = settings.MIRAGE_CHECK_PATH except: current_logger.error('error :: MIRAGE_CHECK_PATH is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: MIRAGE_CHECK_PATH is not set in settings.py') invalid_variables = True try: TEST_ENABLE_CRUCIBLE = settings.ENABLE_CRUCIBLE except: current_logger.error('error :: ENABLE_CRUCIBLE is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: ENABLE_CRUCIBLE is not set in settings.py') invalid_variables = True try: TEST_PANORAMA_ENABLED = settings.PANORAMA_ENABLED except: current_logger.error('error :: PANORAMA_ENABLED is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: PANORAMA_ENABLED is not set in settings.py') invalid_variables = True try: TEST_IONOSPHERE_ENABLED = settings.IONOSPHERE_ENABLED except: current_logger.error('error :: IONOSPHERE_ENABLED is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: IONOSPHERE_ENABLED is not set in settings.py') invalid_variables = True if current_skyline_app == 'webapp': try: TEST_ENABLE_WEBAPP_DEBUG = settings.ENABLE_WEBAPP_DEBUG except: current_logger.error('error :: ENABLE_WEBAPP_DEBUG is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: ENABLE_WEBAPP_DEBUG is not set in settings.py') invalid_variables = True try: TEST_IONOSPHERE_ENABLED = settings.IONOSPHERE_ENABLED except: current_logger.error('error :: IONOSPHERE_ENABLED is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: IONOSPHERE_ENABLED is not set in settings.py') invalid_variables = True try: TEST_IONOSPHERE_CHECK_PATH = settings.IONOSPHERE_CHECK_PATH except: current_logger.error('error :: IONOSPHERE_CHECK_PATH is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: IONOSPHERE_CHECK_PATH is not set in settings.py') invalid_variables = True try: TEST_IONOSPHERE_DATA_FOLDER = settings.IONOSPHERE_DATA_FOLDER except: current_logger.error('error :: IONOSPHERE_DATA_FOLDER is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: IONOSPHERE_DATA_FOLDER is not set in settings.py') invalid_variables = True try: TEST_IONOSPHERE_PROFILES_FOLDER = settings.IONOSPHERE_PROFILES_FOLDER except: current_logger.error('error :: IONOSPHERE_PROFILES_FOLDER is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: IONOSPHERE_PROFILES_FOLDER is not set in settings.py') invalid_variables = True if current_skyline_app == 'ionosphere': try: TEST_IONOSPHERE_PROCESSES = 1 + settings.IONOSPHERE_PROCESSES except: current_logger.error('error :: IONOSPHERE_PROCESSES is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: IONOSPHERE_PROCESSES is not set in settings.py') invalid_variables = True try: TEST_ENABLE_IONOSPHERE_DEBUG = settings.ENABLE_IONOSPHERE_DEBUG except: current_logger.error('error :: ENABLE_IONOSPHERE_DEBUG is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: ENABLE_IONOSPHERE_DEBUG is not set in settings.py') invalid_variables = True try: TEST_IONOSPHERE_CHECK_MAX_AGE = 1 + settings.IONOSPHERE_CHECK_MAX_AGE except: current_logger.error('error :: IONOSPHERE_CHECK_MAX_AGE is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: IONOSPHERE_CHECK_MAX_AGE is not set in settings.py') invalid_variables = True try: TEST_IONOSPHERE_KEEP_TRAINING_TIMESERIES_FOR = 1 + settings.IONOSPHERE_KEEP_TRAINING_TIMESERIES_FOR except: current_logger.error('error :: IONOSPHERE_KEEP_TRAINING_TIMESERIES_FOR is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: IONOSPHERE_KEEP_TRAINING_TIMESERIES_FOR is not set in settings.py') invalid_variables = True try: TEST_IONOSPHERE_FEATURES_PERCENT_SIMILAR = 1 + settings.IONOSPHERE_FEATURES_PERCENT_SIMILAR except: current_logger.error('error :: IONOSPHERE_FEATURES_PERCENT_SIMILAR is not set as a float in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: IONOSPHERE_FEATURES_PERCENT_SIMILAR is not set in settings.py') invalid_variables = True # @added 20170122 - Feature #1872: Ionosphere - features profile page by id only try: TEST_SERVER_PYTZ_TIMEZONE = pytz.timezone(settings.SERVER_PYTZ_TIMEZONE) except: current_logger.error('error :: SERVER_PYTZ_TIMEZONE is not set to a pytz timezone in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: SERVER_PYTZ_TIMEZONE is not set to a pytz timezone in settings.py') invalid_variables = True # @added 20170109 - Feature #1854: Ionosphere learn # Added the Ionosphere LEARN related variables ionosphere_learning_enabled = False try: ionosphere_learn_enabled = settings.IONOSPHERE_LEARN except: current_logger.error('error :: IONOSPHERE_LEARN is not set as a boolean in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: IONOSPHERE_LEARN is not set in settings.py') invalid_variables = True if ionosphere_learning_enabled: try: TEST_IONOSPHERE_LEARN_FOLDER = settings.IONOSPHERE_LEARN_FOLDER except: current_logger.error('error :: IONOSPHERE_LEARN_FOLDER is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: IONOSPHERE_LEARN_FOLDER is not set in settings.py') invalid_variables = True # @added 20160113 - Feature #1858: Ionosphere - autobuild features_profiles dir try: TEST_IONOSPHERE_AUTOBUILD = settings.IONOSPHERE_AUTOBUILD except: current_logger.error('error :: IONOSPHERE_AUTOBUILD is not set in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: IONOSPHERE_AUTOBUILD is not set in settings.py') invalid_variables = True # @modified 20170115 - Feature #1854: Ionosphere learn - generations # These are now used in a shared context in terms of being required # by Panorama and ionosphere/learn try: TEST_IONOSPHERE_LEARN_DEFAULT_FULL_DURATION_DAYS = 1 + settings.IONOSPHERE_LEARN_DEFAULT_FULL_DURATION_DAYS except: current_logger.error('error :: IONOSPHERE_LEARN_DEFAULT_FULL_DURATION_DAYS is not set as an int in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: IONOSPHERE_LEARN_DEFAULT_FULL_DURATION_DAYS is not set in settings.py') invalid_variables = True try: TEST_IONOSPHERE_LEARN_DEFAULT_VALID_TIMESERIES_OLDER_THAN_SECONDS = 1 + settings.IONOSPHERE_LEARN_DEFAULT_VALID_TIMESERIES_OLDER_THAN_SECONDS except: current_logger.error('error :: IONOSPHERE_LEARN_DEFAULT_VALID_TIMESERIES_OLDER_THAN_SECONDS is not set as an int in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: IONOSPHERE_LEARN_DEFAULT_VALID_TIMESERIES_OLDER_THAN_SECONDS is not set in settings.py') invalid_variables = True try: TEST_IONOSPHERE_LEARN_DEFAULT_MAX_PERCENT_DIFF_FROM_ORIGIN = 1 + settings.IONOSPHERE_LEARN_DEFAULT_MAX_PERCENT_DIFF_FROM_ORIGIN except: current_logger.error('error :: IONOSPHERE_LEARN_DEFAULT_MAX_PERCENT_DIFF_FROM_ORIGIN is not set as a float or int in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: IONOSPHERE_LEARN_DEFAULT_MAX_PERCENT_DIFF_FROM_ORIGIN is not set in settings.py') invalid_variables = True try: TEST_IONOSPHERE_LEARN_NAMESPACE_CONFIG = settings.IONOSPHERE_LEARN_NAMESPACE_CONFIG except: current_logger.error('error :: IONOSPHERE_LEARN_NAMESPACE_CONFIG is not set as a tuple of tuples in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: IONOSPHERE_LEARN_NAMESPACE_CONFIG is not set in settings.py') invalid_variables = True # @added 20170809 - Task #2132: Optimise Ionosphere DB usage try: TEST_MEMCACHE_ENABLED = settings.MEMCACHE_ENABLED except: current_logger.error('error :: MEMCACHE_ENABLED is not set as a boolean in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: MEMCACHE_ENABLED is not set in settings.py') invalid_variables = True try: TEST_MEMCACHED_SERVER_IP = settings.MEMCACHED_SERVER_IP except: current_logger.error('error :: MEMCACHED_SERVER_IP is not set as a str in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: MEMCACHED_SERVER_IP is not set in settings.py') invalid_variables = True try: TEST_MEMCACHED_SERVER_PORT = settings.MEMCACHED_SERVER_PORT except: current_logger.error('error :: MEMCACHED_SERVER_PORT is not set as an int in settings.py') current_logger.info(traceback.format_exc()) current_logger.error('error :: exiting, please fix setting.py') print ('error :: MEMCACHED_SERVER_PORT is not set in settings.py') invalid_variables = True if invalid_variables: return False return True