Mercurial > kallithea
annotate rhodecode/config/environment.py @ 4115:8b7294a804a0 rhodecode-2.2.5-gpl
Update CONTRIBUTORS with new contributors from RhodeCode v2.2.5
author | Bradley M. Kuhn <bkuhn@sfconservancy.org> |
---|---|
date | Wed, 02 Jul 2014 19:03:10 -0400 |
parents | 5293d4bbb1ea |
children | ffd45b185016 |
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,\ |
3797
d7488551578e
synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents:
3778
diff
changeset
|
21 load_rcextensions, check_git_version, set_vcs_config |
2109 | 22 from rhodecode.lib.utils2 import engine_from_config, str2bool |
3232
99c093d1a142
run waitress check on startup
Marcin Kuzminski <marcin@python-works.com>
parents:
2890
diff
changeset
|
23 from rhodecode.lib.db_manage import DbManage |
547
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
491
diff
changeset
|
24 from rhodecode.model import init_model |
691
7486da5f0628
Refactor codes for scm model
Marcin Kuzminski <marcin@python-works.com>
parents:
688
diff
changeset
|
25 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
|
26 |
0 | 27 log = logging.getLogger(__name__) |
28 | |
1205
f4807acf643d
added __license__ into main of rhodecode, PEP8ify
Marcin Kuzminski <marcin@python-works.com>
parents:
1036
diff
changeset
|
29 |
365
ec7b76d4bda4
Added initial query skipp when seting up the app.
Marcin Kuzminski <marcin@python-works.com>
parents:
341
diff
changeset
|
30 def load_environment(global_conf, app_conf, initial=False): |
2109 | 31 """ |
32 Configure the Pylons environment via the ``pylons.config`` | |
0 | 33 object |
34 """ | |
43 | 35 config = PylonsConfig() |
631
05528ad948c4
Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
36 |
0 | 37 # Pylons paths |
38 root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) | |
2109 | 39 paths = dict( |
40 root=root, | |
41 controllers=os.path.join(root, 'controllers'), | |
42 static_files=os.path.join(root, 'public'), | |
43 templates=[os.path.join(root, 'templates')] | |
44 ) | |
0 | 45 |
46 # Initialize config with the basic options | |
547
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
491
diff
changeset
|
47 config.init_app(global_conf, app_conf, package='rhodecode', paths=paths) |
0 | 48 |
1726
fe8c2e881403
moved pylons config out of global scope for celerypylons
Marcin Kuzminski <marcin@python-works.com>
parents:
1725
diff
changeset
|
49 # 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
|
50 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
|
51 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
|
52 |
43 | 53 config['routes.map'] = make_map(config) |
54 config['pylons.app_globals'] = app_globals.Globals(config) | |
2109 | 55 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
|
56 rhodecode.CONFIG = config |
2105
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
2016
diff
changeset
|
57 |
2109 | 58 load_rcextensions(root_path=config['here']) |
59 | |
43 | 60 # Setup cache object as early as possible |
61 import pylons | |
62 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
|
63 |
0 | 64 # 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
|
65 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
|
66 directories=paths['templates'], |
f93b523c0be3
dirty fix for multiple file encodings,
Marcin Kuzminski <marcin@python-blog.com>
parents:
12
diff
changeset
|
67 error_handler=handle_mako_error, |
f93b523c0be3
dirty fix for multiple file encodings,
Marcin Kuzminski <marcin@python-blog.com>
parents:
12
diff
changeset
|
68 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
|
69 input_encoding='utf-8', default_filters=['escape'], |
71ffa932799d
Added app basic auth.
Marcin Kuzminski <marcin@python-blog.com>
parents:
32
diff
changeset
|
70 imports=['from webhelpers.html import escape']) |
0 | 71 |
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
|
72 # 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
|
73 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
|
74 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
|
75 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
|
76 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
|
77 # 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
|
78 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
|
79 |
547
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
491
diff
changeset
|
80 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
|
81 from rhodecode.tests import TESTS_TMP_PATH |
2752
6d904a0cd48d
added new suite of tests for VCS operations
Marcin Kuzminski <marcin@python-works.com>
parents:
2683
diff
changeset
|
82 # set RC_NO_TMP_PATH=1 to disable re-creating the database and |
6d904a0cd48d
added new suite of tests for VCS operations
Marcin Kuzminski <marcin@python-works.com>
parents:
2683
diff
changeset
|
83 # test repos |
6d904a0cd48d
added new suite of tests for VCS operations
Marcin Kuzminski <marcin@python-works.com>
parents:
2683
diff
changeset
|
84 if not int(os.environ.get('RC_NO_TMP_PATH', 0)): |
6d904a0cd48d
added new suite of tests for VCS operations
Marcin Kuzminski <marcin@python-works.com>
parents:
2683
diff
changeset
|
85 create_test_env(TESTS_TMP_PATH, config) |
2683
eaf1782bee64
add option to disable whoosh index in tests via an enviroment variable.
Marcin Kuzminski <marcin@python-works.com>
parents:
2637
diff
changeset
|
86 # set RC_WHOOSH_TEST_DISABLE=1 to disable whoosh index during tests |
eaf1782bee64
add option to disable whoosh index in tests via an enviroment variable.
Marcin Kuzminski <marcin@python-works.com>
parents:
2637
diff
changeset
|
87 if not int(os.environ.get('RC_WHOOSH_TEST_DISABLE', 0)): |
eaf1782bee64
add option to disable whoosh index in tests via an enviroment variable.
Marcin Kuzminski <marcin@python-works.com>
parents:
2637
diff
changeset
|
88 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
|
89 |
3232
99c093d1a142
run waitress check on startup
Marcin Kuzminski <marcin@python-works.com>
parents:
2890
diff
changeset
|
90 DbManage.check_waitress() |
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
|
91 # MULTIPLE DB configs |
43 | 92 # 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
|
93 sa_engine_db1 = engine_from_config(config, 'sqlalchemy.db1.') |
49
3ada2f409c1c
Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents:
43
diff
changeset
|
94 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
|
95 |
3832
07f8039ef090
Use repo-scann at latest possible state.
Marcin Kuzminski <marcin@python-works.com>
parents:
3797
diff
changeset
|
96 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
|
97 repos_path = make_ui('db').configitems('paths')[0][1] |
405b80e4ccd5
Major refactoring, removed when possible calls to app globals.
Marcin Kuzminski <marcin@python-works.com>
parents:
1018
diff
changeset
|
98 config['base_path'] = repos_path |
548
b75b77ef649d
renamed hg_app to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
99 set_rhodecode_config(config) |
3650
76ae40e514eb
config: automatically assign instance_id for host and process if it has been set to *
Mads Kiilerich <madski@unity3d.com>
parents:
3232
diff
changeset
|
100 |
76ae40e514eb
config: automatically assign instance_id for host and process if it has been set to *
Mads Kiilerich <madski@unity3d.com>
parents:
3232
diff
changeset
|
101 instance_id = rhodecode.CONFIG.get('instance_id') |
76ae40e514eb
config: automatically assign instance_id for host and process if it has been set to *
Mads Kiilerich <madski@unity3d.com>
parents:
3232
diff
changeset
|
102 if instance_id == '*': |
76ae40e514eb
config: automatically assign instance_id for host and process if it has been set to *
Mads Kiilerich <madski@unity3d.com>
parents:
3232
diff
changeset
|
103 instance_id = '%s-%s' % (os.uname()[1], os.getpid()) |
76ae40e514eb
config: automatically assign instance_id for host and process if it has been set to *
Mads Kiilerich <madski@unity3d.com>
parents:
3232
diff
changeset
|
104 rhodecode.CONFIG['instance_id'] = instance_id |
76ae40e514eb
config: automatically assign instance_id for host and process if it has been set to *
Mads Kiilerich <madski@unity3d.com>
parents:
3232
diff
changeset
|
105 |
0 | 106 # CONFIGURATION OPTIONS HERE (note: all config options will override |
107 # 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
|
108 |
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
|
109 # 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
|
110 # 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
|
111 rhodecode.CONFIG.update(config) |
3832
07f8039ef090
Use repo-scann at latest possible state.
Marcin Kuzminski <marcin@python-works.com>
parents:
3797
diff
changeset
|
112 set_vcs_config(rhodecode.CONFIG) |
3797
d7488551578e
synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents:
3778
diff
changeset
|
113 |
3832
07f8039ef090
Use repo-scann at latest possible state.
Marcin Kuzminski <marcin@python-works.com>
parents:
3797
diff
changeset
|
114 #check git version |
07f8039ef090
Use repo-scann at latest possible state.
Marcin Kuzminski <marcin@python-works.com>
parents:
3797
diff
changeset
|
115 check_git_version() |
07f8039ef090
Use repo-scann at latest possible state.
Marcin Kuzminski <marcin@python-works.com>
parents:
3797
diff
changeset
|
116 |
07f8039ef090
Use repo-scann at latest possible state.
Marcin Kuzminski <marcin@python-works.com>
parents:
3797
diff
changeset
|
117 if str2bool(config.get('initial_repo_scan', True)): |
07f8039ef090
Use repo-scann at latest possible state.
Marcin Kuzminski <marcin@python-works.com>
parents:
3797
diff
changeset
|
118 repo2db_mapper(ScmModel().repo_scan(repos_path), |
07f8039ef090
Use repo-scann at latest possible state.
Marcin Kuzminski <marcin@python-works.com>
parents:
3797
diff
changeset
|
119 remove_obsolete=False, install_git_hook=False) |
43 | 120 return config |