Mercurial > kallithea
annotate rhodecode/config/environment.py @ 2622:0ffcbeb76e4f beta
Do cleanup on repo2db mapper
- fixed issue with install git hook function
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 16 Jul 2012 16:02:46 +0200 |
parents | 380d6d86da1f |
children | fc38df41b9b7 |
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), |
0ffcbeb76e4f
Do cleanup on repo2db mapper
Marcin Kuzminski <marcin@python-works.com>
parents:
2560
diff
changeset
|
91 remove_obsolete=True,) |
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 |