Mercurial > kallithea
annotate rhodecode/config/environment.py @ 2637:fc38df41b9b7 beta
Reverted delete zombie repos on server start, this can be misleading, and somehow dangerous option.
It's better that server restarts as fast as possible without any magical functions going on. Cleanup can be still made from rescan option in admin
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 20 Jul 2012 19:38:46 +0200 |
parents | 0ffcbeb76e4f |
children | eaf1782bee64 |
rev | line source |
---|---|
0 | 1 """Pylons environment configuration""" |
1006
02246101c846
moved out celerypylons import to enviromnet to prevent celery from displaying celeryconfig.py warning
Marcin Kuzminski <marcin@python-works.com>
parents:
760
diff
changeset
|
2 |
02246101c846
moved out celerypylons import to enviromnet to prevent celery from displaying celeryconfig.py warning
Marcin Kuzminski <marcin@python-works.com>
parents:
760
diff
changeset
|
3 import os |
02246101c846
moved out celerypylons import to enviromnet to prevent celery from displaying celeryconfig.py warning
Marcin Kuzminski <marcin@python-works.com>
parents:
760
diff
changeset
|
4 import logging |
2109 | 5 import rhodecode |
1006
02246101c846
moved out celerypylons import to enviromnet to prevent celery from displaying celeryconfig.py warning
Marcin Kuzminski <marcin@python-works.com>
parents:
760
diff
changeset
|
6 |
0 | 7 from mako.lookup import TemplateLookup |
43 | 8 from pylons.configuration import PylonsConfig |
0 | 9 from pylons.error import handle_mako_error |
1006
02246101c846
moved out celerypylons import to enviromnet to prevent celery from displaying celeryconfig.py warning
Marcin Kuzminski <marcin@python-works.com>
parents:
760
diff
changeset
|
10 |
2109 | 11 # don't remove this import it does magic for celery |
12 from rhodecode.lib import celerypylons | |
13 | |
1006
02246101c846
moved out celerypylons import to enviromnet to prevent celery from displaying celeryconfig.py warning
Marcin Kuzminski <marcin@python-works.com>
parents:
760
diff
changeset
|
14 import rhodecode.lib.app_globals as app_globals |
02246101c846
moved out celerypylons import to enviromnet to prevent celery from displaying celeryconfig.py warning
Marcin Kuzminski <marcin@python-works.com>
parents:
760
diff
changeset
|
15 |
547
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
491
diff
changeset
|
16 from rhodecode.config.routing import make_map |
2109 | 17 |
18 from rhodecode.lib import helpers | |
1036
405b80e4ccd5
Major refactoring, removed when possible calls to app globals.
Marcin Kuzminski <marcin@python-works.com>
parents:
1018
diff
changeset
|
19 from rhodecode.lib.auth import set_available_permissions |
2109 | 20 from rhodecode.lib.utils import repo2db_mapper, make_ui, set_rhodecode_config,\ |
21 load_rcextensions | |
22 from rhodecode.lib.utils2 import engine_from_config, str2bool | |
547
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
491
diff
changeset
|
23 from rhodecode.model import init_model |
691
7486da5f0628
Refactor codes for scm model
Marcin Kuzminski <marcin@python-works.com>
parents:
688
diff
changeset
|
24 from rhodecode.model.scm import ScmModel |
239
b18f89d6d17f
Adde draft for permissions systems, made all needed decorators, and checks. For future usage in the system.
Marcin Kuzminski <marcin@python-works.com>
parents:
107
diff
changeset
|
25 |
0 | 26 log = logging.getLogger(__name__) |
27 | |
1205
f4807acf643d
added __license__ into main of rhodecode, PEP8ify
Marcin Kuzminski <marcin@python-works.com>
parents:
1036
diff
changeset
|
28 |
365
ec7b76d4bda4
Added initial query skipp when seting up the app.
Marcin Kuzminski <marcin@python-works.com>
parents:
341
diff
changeset
|
29 def load_environment(global_conf, app_conf, initial=False): |
2109 | 30 """ |
31 Configure the Pylons environment via the ``pylons.config`` | |
0 | 32 object |
33 """ | |
43 | 34 config = PylonsConfig() |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
35 |
0 | 36 # Pylons paths |
37 root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) | |
2109 | 38 paths = dict( |
39 root=root, | |
40 controllers=os.path.join(root, 'controllers'), | |
41 static_files=os.path.join(root, 'public'), | |
42 templates=[os.path.join(root, 'templates')] | |
43 ) | |
0 | 44 |
45 # Initialize config with the basic options | |
547
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
491
diff
changeset
|
46 config.init_app(global_conf, app_conf, package='rhodecode', paths=paths) |
0 | 47 |
1726
fe8c2e881403
moved pylons config out of global scope for celerypylons
Marcin Kuzminski <marcin@python-works.com>
parents:
1725
diff
changeset
|
48 # store some globals into rhodecode |
1723
64e91067b996
- refactoring to overcome poor usage of global pylons config
Marcin Kuzminski <marcin@python-works.com>
parents:
1401
diff
changeset
|
49 rhodecode.CELERY_ON = str2bool(config['app_conf'].get('use_celery')) |
2299
e2dbdaf13562
Don't clear dbsessions when celery_eager is turned on
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
50 rhodecode.CELERY_EAGER = str2bool(config['app_conf'].get('celery.always.eager')) |
1723
64e91067b996
- refactoring to overcome poor usage of global pylons config
Marcin Kuzminski <marcin@python-works.com>
parents:
1401
diff
changeset
|
51 |
43 | 52 config['routes.map'] = make_map(config) |
53 config['pylons.app_globals'] = app_globals.Globals(config) | |
2109 | 54 config['pylons.h'] = helpers |
2016
6020e3884a58
implements #212 moved default encoding variable into rhodecode-config. It's now possible to change
Marcin Kuzminski <marcin@python-works.com>
parents:
1726
diff
changeset
|
55 rhodecode.CONFIG = config |
2105
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
2016
diff
changeset
|
56 |
2109 | 57 load_rcextensions(root_path=config['here']) |
58 | |
43 | 59 # Setup cache object as early as possible |
60 import pylons | |
61 pylons.cache._push_object(config['pylons.app_globals'].cache) | |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
62 |
0 | 63 # Create the Mako TemplateLookup, with the default auto-escaping |
41
71ffa932799d
Added app basic auth.
Marcin Kuzminski <marcin@python-blog.com>
parents:
32
diff
changeset
|
64 config['pylons.app_globals'].mako_lookup = TemplateLookup( |
32
f93b523c0be3
dirty fix for multiple file encodings,
Marcin Kuzminski <marcin@python-blog.com>
parents:
12
diff
changeset
|
65 directories=paths['templates'], |
f93b523c0be3
dirty fix for multiple file encodings,
Marcin Kuzminski <marcin@python-blog.com>
parents:
12
diff
changeset
|
66 error_handler=handle_mako_error, |
f93b523c0be3
dirty fix for multiple file encodings,
Marcin Kuzminski <marcin@python-blog.com>
parents:
12
diff
changeset
|
67 module_directory=os.path.join(app_conf['cache_dir'], 'templates'), |
41
71ffa932799d
Added app basic auth.
Marcin Kuzminski <marcin@python-blog.com>
parents:
32
diff
changeset
|
68 input_encoding='utf-8', default_filters=['escape'], |
71ffa932799d
Added app basic auth.
Marcin Kuzminski <marcin@python-blog.com>
parents:
32
diff
changeset
|
69 imports=['from webhelpers.html import escape']) |
0 | 70 |
2016
6020e3884a58
implements #212 moved default encoding variable into rhodecode-config. It's now possible to change
Marcin Kuzminski <marcin@python-works.com>
parents:
1726
diff
changeset
|
71 # sets the c attribute access when don't existing attribute are accessed |
107
5e2470ebdbc6
Added repo switcher, in base and long term caching for this.
Marcin Kuzminski <marcin@python-works.com>
parents:
49
diff
changeset
|
72 config['pylons.strict_tmpl_context'] = True |
473
6b934c9607e7
Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents:
469
diff
changeset
|
73 test = os.path.split(config['__file__'])[-1] == 'test.ini' |
6b934c9607e7
Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents:
469
diff
changeset
|
74 if test: |
2560
380d6d86da1f
Added option to swap the db connection uri based on ENV TEST_DB string
Marcin Kuzminski <marcin@python-works.com>
parents:
2299
diff
changeset
|
75 if os.environ.get('TEST_DB'): |
380d6d86da1f
Added option to swap the db connection uri based on ENV TEST_DB string
Marcin Kuzminski <marcin@python-works.com>
parents:
2299
diff
changeset
|
76 # swap config if we pass enviroment variable |
380d6d86da1f
Added option to swap the db connection uri based on ENV TEST_DB string
Marcin Kuzminski <marcin@python-works.com>
parents:
2299
diff
changeset
|
77 config['sqlalchemy.db1.url'] = os.environ.get('TEST_DB') |
380d6d86da1f
Added option to swap the db connection uri based on ENV TEST_DB string
Marcin Kuzminski <marcin@python-works.com>
parents:
2299
diff
changeset
|
78 |
547
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
491
diff
changeset
|
79 from rhodecode.lib.utils import create_test_env, create_test_index |
688
8acbfa837180
Tests rewrite for 1.2 added some globals configs to make tests easier.
Marcin Kuzminski <marcin@python-works.com>
parents:
665
diff
changeset
|
80 from rhodecode.tests import TESTS_TMP_PATH |
8acbfa837180
Tests rewrite for 1.2 added some globals configs to make tests easier.
Marcin Kuzminski <marcin@python-works.com>
parents:
665
diff
changeset
|
81 create_test_env(TESTS_TMP_PATH, config) |
1725
2370fc2a04f2
reverted whoosh for tests
Marcin Kuzminski <marcin@python-works.com>
parents:
1723
diff
changeset
|
82 create_test_index(TESTS_TMP_PATH, config, True) |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
83 |
2016
6020e3884a58
implements #212 moved default encoding variable into rhodecode-config. It's now possible to change
Marcin Kuzminski <marcin@python-works.com>
parents:
1726
diff
changeset
|
84 # MULTIPLE DB configs |
43 | 85 # Setup the SQLAlchemy database engine |
1360
1f47adeb67c2
Bumped sqlalchemy version to 0.7, replaced timerproxy with new event system for sqlalchemy.
Marcin Kuzminski <marcin@python-works.com>
parents:
1300
diff
changeset
|
86 sa_engine_db1 = engine_from_config(config, 'sqlalchemy.db1.') |
49
3ada2f409c1c
Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents:
43
diff
changeset
|
87 init_model(sa_engine_db1) |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
88 |
1036
405b80e4ccd5
Major refactoring, removed when possible calls to app globals.
Marcin Kuzminski <marcin@python-works.com>
parents:
1018
diff
changeset
|
89 repos_path = make_ui('db').configitems('paths')[0][1] |
2622
0ffcbeb76e4f
Do cleanup on repo2db mapper
Marcin Kuzminski <marcin@python-works.com>
parents:
2560
diff
changeset
|
90 repo2db_mapper(ScmModel().repo_scan(repos_path), |
2637
fc38df41b9b7
Reverted delete zombie repos on server start, this can be misleading, and somehow dangerous option.
Marcin Kuzminski <marcin@python-works.com>
parents:
2622
diff
changeset
|
91 remove_obsolete=False, install_git_hook=False) |
239
b18f89d6d17f
Adde draft for permissions systems, made all needed decorators, and checks. For future usage in the system.
Marcin Kuzminski <marcin@python-works.com>
parents:
107
diff
changeset
|
92 set_available_permissions(config) |
1036
405b80e4ccd5
Major refactoring, removed when possible calls to app globals.
Marcin Kuzminski <marcin@python-works.com>
parents:
1018
diff
changeset
|
93 config['base_path'] = repos_path |
548
b75b77ef649d
renamed hg_app to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
94 set_rhodecode_config(config) |
0 | 95 # CONFIGURATION OPTIONS HERE (note: all config options will override |
96 # any Pylons config options) | |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
97 |
2016
6020e3884a58
implements #212 moved default encoding variable into rhodecode-config. It's now possible to change
Marcin Kuzminski <marcin@python-works.com>
parents:
1726
diff
changeset
|
98 # store config reference into our module to skip import magic of |
6020e3884a58
implements #212 moved default encoding variable into rhodecode-config. It's now possible to change
Marcin Kuzminski <marcin@python-works.com>
parents:
1726
diff
changeset
|
99 # pylons |
6020e3884a58
implements #212 moved default encoding variable into rhodecode-config. It's now possible to change
Marcin Kuzminski <marcin@python-works.com>
parents:
1726
diff
changeset
|
100 rhodecode.CONFIG.update(config) |
43 | 101 return config |