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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
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
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
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
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
7 from mako.lookup import TemplateLookup
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
8 from pylons.configuration import PylonsConfig
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
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
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
11 # don't remove this import it does magic for celery
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
12 from rhodecode.lib import celerypylons
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
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
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
17
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
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
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
20 from rhodecode.lib.utils import repo2db_mapper, make_ui, set_rhodecode_config,\
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
21 load_rcextensions
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
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
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
26 log = logging.getLogger(__name__)
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
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
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
30 """
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
31 Configure the Pylons environment via the ``pylons.config``
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
32 object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
33 """
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
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
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
36 # Pylons paths
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
37 root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
2109
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
38 paths = dict(
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
39 root=root,
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
40 controllers=os.path.join(root, 'controllers'),
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
41 static_files=os.path.join(root, 'public'),
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
42 templates=[os.path.join(root, 'templates')]
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
43 )
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
44
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
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
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
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
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
52 config['routes.map'] = make_map(config)
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
53 config['pylons.app_globals'] = app_globals.Globals(config)
2109
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
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
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
57 load_rcextensions(root_path=config['here'])
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
58
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
59 # Setup cache object as early as possible
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
60 import pylons
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
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
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
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
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
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
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
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
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
95 # CONFIGURATION OPTIONS HERE (note: all config options will override
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
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
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
101 return config