# HG changeset patch # User Marcin Kuzminski # Date 1297374090 -3600 # Node ID da5075ce681c287e741503b82fab753c3ccccd3b # Parent ade3414a8b61692c9bd4ea96b790cdbb63af252f rhodecode config module refactoring diff -r ade3414a8b61 -r da5075ce681c rhodecode/config/environment.py --- a/rhodecode/config/environment.py Thu Feb 10 21:56:14 2011 +0100 +++ b/rhodecode/config/environment.py Thu Feb 10 22:41:30 2011 +0100 @@ -6,6 +6,7 @@ from mako.lookup import TemplateLookup from pylons.configuration import PylonsConfig from pylons.error import handle_mako_error +from sqlalchemy import engine_from_config import rhodecode.lib.app_globals as app_globals import rhodecode.lib.helpers @@ -16,7 +17,7 @@ from rhodecode.lib.utils import repo2db_mapper, make_ui, set_rhodecode_config from rhodecode.model import init_model from rhodecode.model.scm import ScmModel -from sqlalchemy import engine_from_config +from rhodecode.lib.timerproxy import TimerProxy log = logging.getLogger(__name__) @@ -65,7 +66,6 @@ # Setup the SQLAlchemy database engine if config['debug'] and not test: #use query time debugging. - from rhodecode.lib.timerproxy import TimerProxy sa_engine_db1 = engine_from_config(config, 'sqlalchemy.db1.', proxy=TimerProxy()) else: diff -r ade3414a8b61 -r da5075ce681c rhodecode/config/middleware.py --- a/rhodecode/config/middleware.py Thu Feb 10 21:56:14 2011 +0100 +++ b/rhodecode/config/middleware.py Thu Feb 10 22:41:30 2011 +0100 @@ -1,17 +1,20 @@ """Pylons middleware initialization""" + from beaker.middleware import SessionMiddleware +from routes.middleware import RoutesMiddleware from paste.cascade import Cascade from paste.registry import RegistryManager from paste.urlparser import StaticURLParser from paste.deploy.converters import asbool +from paste.gzipper import make_gzip_middleware + from pylons.middleware import ErrorHandler, StatusCodeRedirect from pylons.wsgiapp import PylonsApp -from routes.middleware import RoutesMiddleware + from rhodecode.lib.middleware.simplehg import SimpleHg from rhodecode.lib.middleware.simplegit import SimpleGit from rhodecode.lib.middleware.https_fixup import HttpsFixup from rhodecode.config.environment import load_environment -from paste.gzipper import make_gzip_middleware def make_app(global_conf, full_stack=True, static_files=True, **app_conf): """Create a Pylons WSGI application and return it diff -r ade3414a8b61 -r da5075ce681c rhodecode/config/routing.py --- a/rhodecode/config/routing.py Thu Feb 10 21:56:14 2011 +0100 +++ b/rhodecode/config/routing.py Thu Feb 10 22:41:30 2011 +0100 @@ -11,14 +11,15 @@ def make_map(config): """Create, configure and return the routes Mapper""" - map = Mapper(directory=config['pylons.paths']['controllers'], + routes_map = Mapper(directory=config['pylons.paths']['controllers'], always_scan=config['debug']) - map.minimization = False - map.explicit = False + routes_map.minimization = False + routes_map.explicit = False def check_repo(environ, match_dict): """ check for valid repository for proper 404 handling + :param environ: :param match_dict: """ @@ -27,19 +28,19 @@ # The ErrorController route (handles 404/500 error pages); it should # likely stay at the top, ensuring it can always be resolved - map.connect('/error/{action}', controller='error') - map.connect('/error/{action}/{id}', controller='error') + routes_map.connect('/error/{action}', controller='error') + routes_map.connect('/error/{action}/{id}', controller='error') #========================================================================== # CUSTOM ROUTES HERE #========================================================================== #MAIN PAGE - map.connect('home', '/', controller='home', action='index') - map.connect('bugtracker', "http://bitbucket.org/marcinkuzminski/rhodecode/issues", _static=True) - map.connect('gpl_license', "http://www.gnu.org/licenses/gpl.html", _static=True) + routes_map.connect('home', '/', controller='home', action='index') + routes_map.connect('bugtracker', "http://bitbucket.org/marcinkuzminski/rhodecode/issues", _static=True) + routes_map.connect('gpl_license', "http://www.gnu.org/licenses/gpl.html", _static=True) #ADMIN REPOSITORY REST ROUTES - with map.submapper(path_prefix='/_admin', controller='admin/repos') as m: + with routes_map.submapper(path_prefix='/_admin', controller='admin/repos') as m: m.connect("repos", "/repos", action="create", conditions=dict(method=["POST"])) m.connect("repos", "/repos", @@ -87,25 +88,25 @@ function=check_repo)) #ADMIN USER REST ROUTES - map.resource('user', 'users', controller='admin/users', path_prefix='/_admin') + routes_map.resource('user', 'users', controller='admin/users', path_prefix='/_admin') #ADMIN USER REST ROUTES - map.resource('users_group', 'users_groups', controller='admin/users_groups', path_prefix='/_admin') + routes_map.resource('users_group', 'users_groups', controller='admin/users_groups', path_prefix='/_admin') #ADMIN GROUP REST ROUTES - map.resource('group', 'groups', controller='admin/groups', path_prefix='/_admin') + routes_map.resource('group', 'groups', controller='admin/groups', path_prefix='/_admin') #ADMIN PERMISSIONS REST ROUTES - map.resource('permission', 'permissions', controller='admin/permissions', path_prefix='/_admin') + routes_map.resource('permission', 'permissions', controller='admin/permissions', path_prefix='/_admin') ##ADMIN LDAP SETTINGS - map.connect('ldap_settings', '/_admin/ldap', controller='admin/ldap_settings', + routes_map.connect('ldap_settings', '/_admin/ldap', controller='admin/ldap_settings', action='ldap_settings', conditions=dict(method=["POST"])) - map.connect('ldap_home', '/_admin/ldap', controller='admin/ldap_settings',) + routes_map.connect('ldap_home', '/_admin/ldap', controller='admin/ldap_settings',) #ADMIN SETTINGS REST ROUTES - with map.submapper(path_prefix='/_admin', controller='admin/settings') as m: + with routes_map.submapper(path_prefix='/_admin', controller='admin/settings') as m: m.connect("admin_settings", "/settings", action="create", conditions=dict(method=["POST"])) m.connect("admin_settings", "/settings", @@ -136,89 +137,89 @@ action="create_repository", conditions=dict(method=["GET"])) #ADMIN MAIN PAGES - with map.submapper(path_prefix='/_admin', controller='admin/admin') as m: + with routes_map.submapper(path_prefix='/_admin', controller='admin/admin') as m: m.connect('admin_home', '', action='index')#main page m.connect('admin_add_repo', '/add_repo/{new_repo:[a-z0-9\. _-]*}', action='add_repo') #USER JOURNAL - map.connect('journal', '/_admin/journal', controller='journal',) - map.connect('toggle_following', '/_admin/toggle_following', controller='journal', + routes_map.connect('journal', '/_admin/journal', controller='journal',) + routes_map.connect('toggle_following', '/_admin/toggle_following', controller='journal', action='toggle_following', conditions=dict(method=["POST"])) #SEARCH - map.connect('search', '/_admin/search', controller='search',) - map.connect('search_repo', '/_admin/search/{search_repo:.*}', controller='search') + routes_map.connect('search', '/_admin/search', controller='search',) + routes_map.connect('search_repo', '/_admin/search/{search_repo:.*}', controller='search') #LOGIN/LOGOUT/REGISTER/SIGN IN - map.connect('login_home', '/_admin/login', controller='login') - map.connect('logout_home', '/_admin/logout', controller='login', action='logout') - map.connect('register', '/_admin/register', controller='login', action='register') - map.connect('reset_password', '/_admin/password_reset', controller='login', action='password_reset') + routes_map.connect('login_home', '/_admin/login', controller='login') + routes_map.connect('logout_home', '/_admin/logout', controller='login', action='logout') + routes_map.connect('register', '/_admin/register', controller='login', action='register') + routes_map.connect('reset_password', '/_admin/password_reset', controller='login', action='password_reset') #FEEDS - map.connect('rss_feed_home', '/{repo_name:.*}/feed/rss', + routes_map.connect('rss_feed_home', '/{repo_name:.*}/feed/rss', controller='feed', action='rss', conditions=dict(function=check_repo)) - map.connect('atom_feed_home', '/{repo_name:.*}/feed/atom', + routes_map.connect('atom_feed_home', '/{repo_name:.*}/feed/atom', controller='feed', action='atom', conditions=dict(function=check_repo)) #REPOSITORY ROUTES - map.connect('changeset_home', '/{repo_name:.*}/changeset/{revision}', + routes_map.connect('changeset_home', '/{repo_name:.*}/changeset/{revision}', controller='changeset', revision='tip', conditions=dict(function=check_repo)) - map.connect('raw_changeset_home', '/{repo_name:.*}/raw-changeset/{revision}', + routes_map.connect('raw_changeset_home', '/{repo_name:.*}/raw-changeset/{revision}', controller='changeset', action='raw_changeset', revision='tip', conditions=dict(function=check_repo)) - map.connect('summary_home', '/{repo_name:.*}', + routes_map.connect('summary_home', '/{repo_name:.*}', controller='summary', conditions=dict(function=check_repo)) - map.connect('summary_home', '/{repo_name:.*}/summary', + routes_map.connect('summary_home', '/{repo_name:.*}/summary', controller='summary', conditions=dict(function=check_repo)) - map.connect('shortlog_home', '/{repo_name:.*}/shortlog', + routes_map.connect('shortlog_home', '/{repo_name:.*}/shortlog', controller='shortlog', conditions=dict(function=check_repo)) - map.connect('branches_home', '/{repo_name:.*}/branches', + routes_map.connect('branches_home', '/{repo_name:.*}/branches', controller='branches', conditions=dict(function=check_repo)) - map.connect('tags_home', '/{repo_name:.*}/tags', + routes_map.connect('tags_home', '/{repo_name:.*}/tags', controller='tags', conditions=dict(function=check_repo)) - map.connect('changelog_home', '/{repo_name:.*}/changelog', + routes_map.connect('changelog_home', '/{repo_name:.*}/changelog', controller='changelog', conditions=dict(function=check_repo)) - map.connect('files_home', '/{repo_name:.*}/files/{revision}/{f_path:.*}', + routes_map.connect('files_home', '/{repo_name:.*}/files/{revision}/{f_path:.*}', controller='files', revision='tip', f_path='', conditions=dict(function=check_repo)) - map.connect('files_diff_home', '/{repo_name:.*}/diff/{f_path:.*}', + routes_map.connect('files_diff_home', '/{repo_name:.*}/diff/{f_path:.*}', controller='files', action='diff', revision='tip', f_path='', conditions=dict(function=check_repo)) - map.connect('files_rawfile_home', '/{repo_name:.*}/rawfile/{revision}/{f_path:.*}', + routes_map.connect('files_rawfile_home', '/{repo_name:.*}/rawfile/{revision}/{f_path:.*}', controller='files', action='rawfile', revision='tip', f_path='', conditions=dict(function=check_repo)) - map.connect('files_raw_home', '/{repo_name:.*}/raw/{revision}/{f_path:.*}', + routes_map.connect('files_raw_home', '/{repo_name:.*}/raw/{revision}/{f_path:.*}', controller='files', action='raw', revision='tip', f_path='', conditions=dict(function=check_repo)) - map.connect('files_annotate_home', '/{repo_name:.*}/annotate/{revision}/{f_path:.*}', + routes_map.connect('files_annotate_home', '/{repo_name:.*}/annotate/{revision}/{f_path:.*}', controller='files', action='annotate', revision='tip', f_path='', conditions=dict(function=check_repo)) - map.connect('files_archive_home', '/{repo_name:.*}/archive/{fname}', + routes_map.connect('files_archive_home', '/{repo_name:.*}/archive/{fname}', controller='files', action='archivefile', conditions=dict(function=check_repo)) - map.connect('repo_settings_delete', '/{repo_name:.*}/settings', + routes_map.connect('repo_settings_delete', '/{repo_name:.*}/settings', controller='settings', action="delete", conditions=dict(method=["DELETE"], function=check_repo)) - map.connect('repo_settings_update', '/{repo_name:.*}/settings', + routes_map.connect('repo_settings_update', '/{repo_name:.*}/settings', controller='settings', action="update", conditions=dict(method=["PUT"], function=check_repo)) - map.connect('repo_settings_home', '/{repo_name:.*}/settings', + routes_map.connect('repo_settings_home', '/{repo_name:.*}/settings', controller='settings', action='index', conditions=dict(function=check_repo)) - map.connect('repo_fork_create_home', '/{repo_name:.*}/fork', + routes_map.connect('repo_fork_create_home', '/{repo_name:.*}/fork', controller='settings', action='fork_create', conditions=dict(function=check_repo, method=["POST"])) - map.connect('repo_fork_home', '/{repo_name:.*}/fork', + routes_map.connect('repo_fork_home', '/{repo_name:.*}/fork', controller='settings', action='fork', conditions=dict(function=check_repo)) - return map + return routes_map