##// END OF EJS Templates
locale: use a hacky way to catch the locale set error. We rather "cleanup" the env ourselfs...
locale: use a hacky way to catch the locale set error. We rather "cleanup" the env ourselfs then make it fatal crash. This could be removed when glibc situation gets stable.

File last commit:

r483:80e9ab60 default
r507:84e9d5ef default
Show More
__init__.py
60 lines | 2.1 KiB | text/x-python | PythonLexer
# RhodeCode VCSServer provides access to different vcs backends via network.
# Copyright (C) 2014-2018 RhodeCode GmbH
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
import logging
from dogpile.cache import register_backend
register_backend(
"dogpile.cache.rc.memory_lru", "vcsserver.lib.rc_cache.backends",
"LRUMemoryBackend")
log = logging.getLogger(__name__)
from . import region_meta
from .util import key_generator, get_default_cache_settings, make_region
def configure_dogpile_cache(settings):
cache_dir = settings.get('cache_dir')
if cache_dir:
region_meta.dogpile_config_defaults['cache_dir'] = cache_dir
rc_cache_data = get_default_cache_settings(settings, prefixes=['rc_cache.'])
# inspect available namespaces
avail_regions = set()
for key in rc_cache_data.keys():
namespace_name = key.split('.', 1)[0]
avail_regions.add(namespace_name)
log.debug('dogpile: found following cache regions: %s', avail_regions)
# register them into namespace
for region_name in avail_regions:
new_region = make_region(
name=region_name,
function_key_generator=key_generator
)
new_region.configure_from_config(settings, 'rc_cache.{}.'.format(region_name))
log.debug('dogpile: registering a new region %s[%s]',
region_name, new_region.__dict__)
region_meta.dogpile_cache_regions[region_name] = new_region
def includeme(config):
configure_dogpile_cache(config.registry.settings)