Skip to content
Snippets Groups Projects
Commit 3fb0e3b4 authored by Jan Mach's avatar Jan Mach
Browse files

Fix: Fixed broken application path calculations for Hawat.

Hawat contains several application path calculations relative to application root path. The mechanism was broken, because these configurations were evaluated on compilation time and the APP_ROOT_PATH had then no effect. (Redmine issue: #4216)
parent b58e4e36
No related branches found
No related tags found
No related merge requests found
......@@ -92,6 +92,9 @@ def create_app_full(
if config_dict and isinstance(config_dict, dict):
app.config.update(config_dict)
app.config.update(
hawat.config.get_app_root_relative_config()
)
if config_object:
app.config.from_object(config_object)
if config_file:
......
......@@ -57,6 +57,7 @@ from flask_babel import lazy_gettext
#
import pyzenkit.jsonconf
import pyzenkit.utils
import mentat.const
import hawat.const
......@@ -211,42 +212,12 @@ class Config: # pylint: disable=locally-disabled,too-few-public-methods
]
"""Configuration of application menu skeleton."""
MENTAT_CORE = pyzenkit.jsonconf.config_load_dir(
pyzenkit.utils.get_resource_path(mentat.const.PATH_CFG_CORE)
)
"""Mentat core system configurations."""
MENTAT_PATHS = {
'path_crn': pyzenkit.utils.get_resource_path(mentat.const.PATH_CRN),
'path_cfg': pyzenkit.utils.get_resource_path(mentat.const.PATH_CFG),
'path_var': pyzenkit.utils.get_resource_path(mentat.const.PATH_VAR),
'path_log': pyzenkit.utils.get_resource_path(mentat.const.PATH_LOG),
'path_run': pyzenkit.utils.get_resource_path(mentat.const.PATH_RUN),
'path_tmp': pyzenkit.utils.get_resource_path(mentat.const.PATH_TMP),
}
"""Paths to various directories."""
MENTAT_CACHE_DIR = pyzenkit.utils.get_resource_path(
os.path.join(mentat.const.PATH_VAR, 'cache')
)
"""Path to Mentat cache directory."""
MENTAT_CONTROLLER_CFG = pyzenkit.utils.get_resource_path(
os.path.join(mentat.const.PATH_CFG, 'mentat-controller.py.conf')
)
"""path to configuration file of mentat-controller.py module."""
HAWAT_ADMINS = ['root@{}'.format(socket.getfqdn())]
"""List of system administrator emails."""
HAWAT_LOG_DEFAULT_LEVEL = 'info'
"""Default logging level, case insensitive. One of the values ``DEBUG``, ``INFO``, ``WARNING``, ``ERROR``, ``CRITICAL``."""
HAWAT_LOG_FILE = pyzenkit.utils.get_resource_path(
os.path.join(mentat.const.PATH_LOG, 'mentat-hawat.py.log')
)
"""Log file settings for logging framework."""
HAWAT_LOG_FILE_LEVEL = 'info'
"""File logging level, case insensitive. One of the values ``DEBUG``, ``INFO``, ``WARNING``, ``ERROR``, ``CRITICAL``."""
......@@ -335,3 +306,31 @@ CONFIG_MAP = {
'default': ProductionConfig
}
"""Configuration map for easy mapping of configuration aliases to config objects."""
def get_app_root_relative_config():
"""
These configurations are relative to APP_ROOT_PATH environment setting and
must be handled separately.
"""
return {
'MENTAT_CORE': pyzenkit.jsonconf.config_load_dir(
pyzenkit.utils.get_resource_path(mentat.const.PATH_CFG_CORE)
),
'MENTAT_PATHS': {
'path_crn': pyzenkit.utils.get_resource_path(mentat.const.PATH_CRN),
'path_cfg': pyzenkit.utils.get_resource_path(mentat.const.PATH_CFG),
'path_var': pyzenkit.utils.get_resource_path(mentat.const.PATH_VAR),
'path_log': pyzenkit.utils.get_resource_path(mentat.const.PATH_LOG),
'path_run': pyzenkit.utils.get_resource_path(mentat.const.PATH_RUN),
'path_tmp': pyzenkit.utils.get_resource_path(mentat.const.PATH_TMP),
},
'MENTAT_CACHE_DIR': pyzenkit.utils.get_resource_path(
os.path.join(mentat.const.PATH_VAR, 'cache')
),
'MENTAT_CONTROLLER_CFG': pyzenkit.utils.get_resource_path(
os.path.join(mentat.const.PATH_CFG, 'mentat-controller.py.conf')
),
'HAWAT_LOG_FILE': pyzenkit.utils.get_resource_path(
os.path.join(mentat.const.PATH_LOG, 'mentat-hawat.py.log')
)
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment