# HG changeset patch # User Marcin Kuzminski # Date 1364949301 -7200 # Node ID 6843cabe9925bd382b2736e8db2a25bbf6a7b9bb # Parent 5f9f4ece4b526e05780383d45277528f56a26d3a removed duplicated logic of how we invalidate caches for repos diff -r 5f9f4ece4b52 -r 6843cabe9925 rhodecode/controllers/admin/repos.py --- a/rhodecode/controllers/admin/repos.py Fri Apr 05 19:42:07 2013 +0200 +++ b/rhodecode/controllers/admin/repos.py Wed Apr 03 02:35:01 2013 +0200 @@ -40,7 +40,7 @@ HasPermissionAnyDecorator, HasRepoPermissionAllDecorator, NotAnonymous,\ HasPermissionAny, HasReposGroupPermissionAny, HasRepoPermissionAnyDecorator from rhodecode.lib.base import BaseRepoController, render -from rhodecode.lib.utils import invalidate_cache, action_logger, repo_name_slug +from rhodecode.lib.utils import action_logger, repo_name_slug from rhodecode.lib.helpers import get_token from rhodecode.model.meta import Session from rhodecode.model.db import User, Repository, UserFollowing, RepoGroup,\ @@ -262,7 +262,7 @@ try: form_result = _form.to_python(dict(request.POST)) repo = repo_model.update(repo_name, **form_result) - invalidate_cache('get_repo_cached_%s' % repo_name) + ScmModel().mark_for_invalidation(repo_name) h.flash(_('Repository %s updated successfully') % repo_name, category='success') changed_name = repo.repo_name @@ -315,7 +315,7 @@ repo_model.delete(repo, forks=handle_forks) action_logger(self.rhodecode_user, 'admin_deleted_repo', repo_name, self.ip_addr, self.sa) - invalidate_cache('get_repo_cached_%s' % repo_name) + ScmModel().mark_for_invalidation(repo_name) h.flash(_('Deleted repository %s') % repo_name, category='success') Session().commit() except AttachedForksError: diff -r 5f9f4ece4b52 -r 6843cabe9925 rhodecode/controllers/admin/settings.py --- a/rhodecode/controllers/admin/settings.py Fri Apr 05 19:42:07 2013 +0200 +++ b/rhodecode/controllers/admin/settings.py Wed Apr 03 02:35:01 2013 +0200 @@ -41,8 +41,8 @@ HasReposGroupPermissionAll, HasReposGroupPermissionAny, AuthUser from rhodecode.lib.base import BaseController, render from rhodecode.lib.celerylib import tasks, run_task -from rhodecode.lib.utils import repo2db_mapper, invalidate_cache, \ - set_rhodecode_config, repo_name_slug, check_git_version +from rhodecode.lib.utils import repo2db_mapper, set_rhodecode_config, \ + check_git_version from rhodecode.model.db import RhodeCodeUi, Repository, RepoGroup, \ RhodeCodeSetting, PullRequest, PullRequestReviewers from rhodecode.model.forms import UserForm, ApplicationSettingsForm, \ @@ -55,7 +55,6 @@ from rhodecode.model.meta import Session from rhodecode.lib.utils2 import str2bool, safe_unicode from rhodecode.lib.compat import json -from webob.exc import HTTPForbidden log = logging.getLogger(__name__) @@ -119,7 +118,7 @@ initial = ScmModel().repo_scan() log.debug('invalidating all repositories') for repo_name in initial.keys(): - invalidate_cache('get_repo_cached_%s' % repo_name) + ScmModel().mark_for_invalidation(repo_name) added, removed = repo2db_mapper(initial, rm_obsolete) _repr = lambda l: ', '.join(map(safe_unicode, l)) or '-' diff -r 5f9f4ece4b52 -r 6843cabe9925 rhodecode/lib/base.py --- a/rhodecode/lib/base.py Fri Apr 05 19:42:07 2013 +0200 +++ b/rhodecode/lib/base.py Wed Apr 03 02:35:01 2013 +0200 @@ -21,7 +21,7 @@ safe_str, safe_int from rhodecode.lib.auth import AuthUser, get_container_username, authfunc,\ HasPermissionAnyMiddleware, CookieStoreWrapper -from rhodecode.lib.utils import get_repo_slug, invalidate_cache +from rhodecode.lib.utils import get_repo_slug from rhodecode.model import meta from rhodecode.model.db import Repository, RhodeCodeUi, User, RhodeCodeSetting @@ -149,7 +149,7 @@ :param repo_name: full repo name, also a cache key """ - invalidate_cache('get_repo_cached_%s' % repo_name) + ScmModel().mark_for_invalidation(repo_name) def _check_permission(self, action, user, repo_name, ip_addr=None): """ diff -r 5f9f4ece4b52 -r 6843cabe9925 rhodecode/lib/utils.py --- a/rhodecode/lib/utils.py Fri Apr 05 19:42:07 2013 +0200 +++ b/rhodecode/lib/utils.py Wed Apr 03 02:35:01 2013 +0200 @@ -356,19 +356,6 @@ config[k] = v -def invalidate_cache(cache_key, *args): - """ - Puts cache invalidation task into db for - further global cache invalidation - """ - - from rhodecode.model.scm import ScmModel - - if cache_key.startswith('get_repo_cached_'): - name = cache_key.split('get_repo_cached_')[-1] - ScmModel().mark_for_invalidation(name) - - def map_groups(path): """ Given a full path to a repository, create all nested groups that this diff -r 5f9f4ece4b52 -r 6843cabe9925 rhodecode/tests/functional/test_summary.py --- a/rhodecode/tests/functional/test_summary.py Fri Apr 05 19:42:07 2013 +0200 +++ b/rhodecode/tests/functional/test_summary.py Wed Apr 03 02:35:01 2013 +0200 @@ -1,9 +1,9 @@ from rhodecode.tests import * from rhodecode.tests.fixture import Fixture from rhodecode.model.db import Repository -from rhodecode.lib.utils import invalidate_cache from rhodecode.model.repo import RepoModel from rhodecode.model.meta import Session +from rhodecode.model.scm import ScmModel fixture = Fixture() @@ -32,7 +32,7 @@ #codes stats self._enable_stats() - invalidate_cache('get_repo_cached_%s' % HG_REPO) + ScmModel().mark_for_invalidation(HG_REPO) response = self.app.get(url(controller='summary', action='index', repo_name=HG_REPO)) response.mustcontain(