diff --git a/kallithea/controllers/admin/repos.py b/kallithea/controllers/admin/repos.py --- a/kallithea/controllers/admin/repos.py +++ b/kallithea/controllers/admin/repos.py @@ -577,7 +577,7 @@ class ReposController(BaseRepoController c.active = 'caches' if request.POST: try: - ScmModel().mark_for_invalidation(repo_name, delete=True) + ScmModel().mark_for_invalidation(repo_name) Session().commit() h.flash(_('Cache invalidation successful'), category='success') diff --git a/kallithea/controllers/admin/settings.py b/kallithea/controllers/admin/settings.py --- a/kallithea/controllers/admin/settings.py +++ b/kallithea/controllers/admin/settings.py @@ -206,7 +206,7 @@ class SettingsController(BaseController) if invalidate_cache: log.debug('invalidating all repositories cache') for repo in Repository.get_all(): - ScmModel().mark_for_invalidation(repo.repo_name, delete=True) + ScmModel().mark_for_invalidation(repo.repo_name) filesystem_repos = ScmModel().repo_scan() added, removed = repo2db_mapper(filesystem_repos, rm_obsolete, diff --git a/kallithea/model/db.py b/kallithea/model/db.py --- a/kallithea/model/db.py +++ b/kallithea/model/db.py @@ -2103,7 +2103,7 @@ class CacheInvalidation(Base, BaseModel) return "%s%s" % (prefix, key) @classmethod - def set_invalidate(cls, repo_name, delete=False): + def set_invalidate(cls, repo_name): """ Mark all caches of a repo as invalid in the database. """ @@ -2114,11 +2114,7 @@ class CacheInvalidation(Base, BaseModel) for inv_obj in inv_objs: log.debug('marking %s key for invalidation based on repo_name=%s', inv_obj, safe_str(repo_name)) - if delete: - Session().delete(inv_obj) - else: - inv_obj.cache_active = False - Session().add(inv_obj) + Session().delete(inv_obj) Session().commit() @classmethod diff --git a/kallithea/model/scm.py b/kallithea/model/scm.py --- a/kallithea/model/scm.py +++ b/kallithea/model/scm.py @@ -331,13 +331,13 @@ class ScmModel(BaseModel): .filter(RepoGroup.group_parent_id == None).all() return [x for x in RepoGroupList(all_groups)] - def mark_for_invalidation(self, repo_name, delete=False): + def mark_for_invalidation(self, repo_name): """ Mark caches of this repo invalid in the database. :param repo_name: the repo for which caches should be marked invalid """ - CacheInvalidation.set_invalidate(repo_name, delete=delete) + CacheInvalidation.set_invalidate(repo_name) repo = Repository.get_by_repo_name(repo_name) if repo is not None: repo.update_changeset_cache() diff --git a/kallithea/tests/other/manual_test_vcs_operations.py b/kallithea/tests/other/manual_test_vcs_operations.py --- a/kallithea/tests/other/manual_test_vcs_operations.py +++ b/kallithea/tests/other/manual_test_vcs_operations.py @@ -273,8 +273,8 @@ class TestVCSOperations(BaseTestCase): stdout, stderr = _add_files_and_push('hg', DEST, files_no=1) key = CacheInvalidation.query().filter(CacheInvalidation.cache_key - ==HG_REPO).one() - self.assertEqual(key.cache_active, False) + ==HG_REPO).all() + self.assertEqual(key, []) def test_push_invalidates_cache_git(self): key = CacheInvalidation.query().filter(CacheInvalidation.cache_key @@ -295,9 +295,8 @@ class TestVCSOperations(BaseTestCase): _check_proper_git_push(stdout, stderr) key = CacheInvalidation.query().filter(CacheInvalidation.cache_key - ==GIT_REPO).one() - print CacheInvalidation.get_all() - self.assertEqual(key.cache_active, False) + ==GIT_REPO).all() + self.assertEqual(key, []) def test_push_wrong_credentials_hg(self): DEST = _get_tmp_dir()