# HG changeset patch # User Goffi # Date 1548530049 -3600 # Node ID 02afab1b15c58365c2fb5cb08f49801e54ab48f5 # Parent 76d75423ef53c1807005496662c12556e10b76be server, pages, tasks: moved getConfig to backend, and added shorcut version in LiberviaPage and TasksManager diff -r 76d75423ef53 -r 02afab1b15c5 libervia/server/pages.py --- a/libervia/server/pages.py Fri Jan 25 08:58:41 2019 +0100 +++ b/libervia/server/pages.py Sat Jan 26 20:14:09 2019 +0100 @@ -392,6 +392,10 @@ ) request._signals_registered.append(signal) + def getConfig(self, key, default=None, value_type=None): + return self.host.getConfig(self.vhost_root, key=key, default=default, + value_type=value_type) + def getBuildPath(self, session_data): return session_data.cache_dir + self.vhost.site_name diff -r 76d75423ef53 -r 02afab1b15c5 libervia/server/server.py --- a/libervia/server/server.py Fri Jan 25 08:58:41 2019 +0100 +++ b/libervia/server/server.py Sat Jan 26 20:14:09 2019 +0100 @@ -1763,6 +1763,36 @@ self._main_conf = config.parseMainConf() return self._main_conf + def getConfig(self, site_root_res, key, default=None, value_type=None): + """Retrieve configuration associated to a site + + Section is automatically set to site name + @param site_root_res(LiberviaRootResource): resource of the site in use + @param key(unicode): key to use + @param default: value to use if not found (see [config.getConfig]) + @param value_type(unicode, None): filter to use on value + Note that filters are already automatically used when the key finish + by a well known suffix ("_path", "_list", "_dict", or "_json") + None to use no filter, else can be: + - "path": a path is expected, will be normalized and expanded + + """ + section = site_root_res.site_name.lower().strip() + value = config.getConfig(self.main_conf, section, key, default=default) + if value_type is not None: + if value_type == u'path': + v_filter = lambda v: os.path.abspath(os.path.expanduser(v)) + else: + raise ValueError(u"unknown value type {value_type}".format( + value_type = value_type)) + if isinstance(value, list): + value = [v_filter(v) for v in value] + elif isinstance(value, dict): + value = {k:v_filter(v) for k,v in value.items()} + elif value is not None: + value = v_filter(v) + return value + def _namespacesGetCb(self, ns_map): self.ns_map = ns_map diff -r 76d75423ef53 -r 02afab1b15c5 libervia/server/tasks.py --- a/libervia/server/tasks.py Fri Jan 25 08:58:41 2019 +0100 +++ b/libervia/server/tasks.py Sat Jan 26 20:14:09 2019 +0100 @@ -25,7 +25,6 @@ from libervia.server.constants import Const as C from collections import OrderedDict from sat.core.log import getLogger -from sat.tools import config from sat.tools.common import async_process log = getLogger(__name__) @@ -52,10 +51,6 @@ return self.resource.site_path @property - def config_section(self): - return self.resource.site_name.lower().strip() - - @property def build_path(self): """path where generated files will be build for this site""" if self._build_path is None: @@ -63,33 +58,8 @@ return self._build_path def getConfig(self, key, default=None, value_type=None): - """Retrieve configuration associated to this site - - Section is automatically set to site name - @param key(unicode): key to use - @param default: value to use if not found (see [config.getConfig]) - @param value_type(unicode, None): filter to use on value - Note that filters are already automatically used when the key finish - by a well known suffix ("_path", "_list", "_dict", or "_json") - None to use no filter, else can be: - - "path": a path is expected, will be normalized and expanded - - """ - value = config.getConfig(self.host.main_conf, self.config_section, key, - default=default) - if value_type is not None: - if value_type == u'path': - v_filter = lambda v: os.path.abspath(os.path.expanduser(v)) - else: - raise ValueError(u"unknown value type {value_type}".format( - value_type = value_type)) - if isinstance(value, list): - value = [v_filter(v) for v in value] - elif isinstance(value, dict): - value = {k:v_filter(v) for k,v in value.items()} - elif value is not None: - value = v_filter(v) - return value + return self.host.getConfig(self.resource, key=key, default=default, + value_type=value_type) @property def site_name(self):