Mercurial > kallithea
comparison rhodecode/lib/utils.py @ 692:cb0d9ce6ac5c beta
#50 on point cache invalidation changes.
Created cacheInvalidation table
cleaned up sa sessions from models, since it wasn't really needed.
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 15 Nov 2010 02:26:19 +0100 |
parents | ecc566f8b69f |
children | a9bc513a1fe3 |
comparison
equal
deleted
inserted
replaced
691:7486da5f0628 | 692:cb0d9ce6ac5c |
---|---|
87 | 87 |
88 try: | 88 try: |
89 if hasattr(user, 'user_id'): | 89 if hasattr(user, 'user_id'): |
90 user_obj = user | 90 user_obj = user |
91 elif isinstance(user, basestring): | 91 elif isinstance(user, basestring): |
92 user_obj = UserModel(sa).get_by_username(user, cache=False) | 92 user_obj = UserModel().get_by_username(user, cache=False) |
93 else: | 93 else: |
94 raise Exception('You have to provide user object or username') | 94 raise Exception('You have to provide user object or username') |
95 | 95 |
96 | 96 |
97 if repo: | 97 if repo: |
98 repo_name = repo.lstrip('/') | 98 repo_name = repo.lstrip('/') |
99 | 99 |
100 repository = RepoModel(sa).get(repo_name, cache=False) | 100 repository = RepoModel().get(repo_name, cache=False) |
101 if not repository: | 101 if not repository: |
102 raise Exception('You have to provide valid repository') | 102 raise Exception('You have to provide valid repository') |
103 else: | 103 else: |
104 raise Exception('You have to provide repository to action logger') | 104 raise Exception('You have to provide repository to action logger') |
105 | 105 |
291 hgsettings = get_hg_settings() | 291 hgsettings = get_hg_settings() |
292 | 292 |
293 for k, v in hgsettings.items(): | 293 for k, v in hgsettings.items(): |
294 config[k] = v | 294 config[k] = v |
295 | 295 |
296 def invalidate_cache(name, *args): | 296 def invalidate_cache(cache_key, *args): |
297 """ | 297 """ |
298 Puts cache invalidation task into db for | 298 Puts cache invalidation task into db for |
299 further global cache invalidation | 299 further global cache invalidation |
300 """ | 300 """ |
301 pass | 301 from rhodecode.model.scm import ScmModel |
302 | |
303 if cache_key.startswith('get_repo_cached_'): | |
304 name = cache_key.split('get_repo_cached_')[-1] | |
305 ScmModel().mark_for_invalidation(name) | |
302 | 306 |
303 class EmptyChangeset(BaseChangeset): | 307 class EmptyChangeset(BaseChangeset): |
304 """ | 308 """ |
305 An dummy empty changeset. It's possible to pass hash when creating | 309 An dummy empty changeset. It's possible to pass hash when creating |
306 an EmptyChangeset | 310 an EmptyChangeset |
338 """ | 342 """ |
339 maps all found repositories into db | 343 maps all found repositories into db |
340 """ | 344 """ |
341 | 345 |
342 sa = meta.Session() | 346 sa = meta.Session() |
343 rm = RepoModel(sa) | 347 rm = RepoModel() |
344 user = sa.query(User).filter(User.admin == True).first() | 348 user = sa.query(User).filter(User.admin == True).first() |
345 | 349 |
346 for name, repo in initial_repo_list.items(): | 350 for name, repo in initial_repo_list.items(): |
347 if not rm.get(name, cache=False): | 351 if not rm.get(name, cache=False): |
348 log.info('repository %s not found creating default', name) | 352 log.info('repository %s not found creating default', name) |