Mercurial > kallithea
comparison rhodecode/lib/celerylib/tasks.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 | 7486da5f0628 |
children | 52da7cba88a6 |
comparison
equal
deleted
inserted
replaced
691:7486da5f0628 | 692:cb0d9ce6ac5c |
---|---|
1 from celery.decorators import task | 1 from celery.decorators import task |
2 | |
3 import os | |
4 import traceback | |
5 from time import mktime | |
2 | 6 |
3 from operator import itemgetter | 7 from operator import itemgetter |
4 from pylons.i18n.translation import _ | 8 from pylons.i18n.translation import _ |
5 from rhodecode.lib.celerylib import run_task, locked_task | 9 from rhodecode.lib.celerylib import run_task, locked_task |
6 from rhodecode.lib.helpers import person | 10 from rhodecode.lib.helpers import person |
7 from rhodecode.lib.smtp_mailer import SmtpMailer | 11 from rhodecode.lib.smtp_mailer import SmtpMailer |
8 from rhodecode.lib.utils import OrderedDict | 12 from rhodecode.lib.utils import OrderedDict |
9 from time import mktime | |
10 import os | |
11 import traceback | |
12 from vcs.backends import get_repo | 13 from vcs.backends import get_repo |
13 from rhodecode.model.scm import ScmModel | 14 from rhodecode.model.db import RhodeCodeUi |
15 | |
14 try: | 16 try: |
15 import json | 17 import json |
16 except ImportError: | 18 except ImportError: |
17 #python 2.5 compatibility | 19 #python 2.5 compatibility |
18 import simplejson as json | 20 import simplejson as json |
42 from rhodecode.model.meta import Session | 44 from rhodecode.model.meta import Session |
43 sa = Session() | 45 sa = Session() |
44 | 46 |
45 return sa | 47 return sa |
46 | 48 |
49 def get_repos_path(): | |
50 sa = get_session() | |
51 q = sa.query(RhodeCodeUi).filter(RhodeCodeUi.ui_key == '/').one() | |
52 return q.ui_value | |
53 | |
47 @task | 54 @task |
48 @locked_task | 55 @locked_task |
49 def whoosh_index(repo_location, full_index): | 56 def whoosh_index(repo_location, full_index): |
50 log = whoosh_index.get_logger() | 57 log = whoosh_index.get_logger() |
51 from rhodecode.lib.indexers.daemon import WhooshIndexingDaemon | 58 from rhodecode.lib.indexers.daemon import WhooshIndexingDaemon |
60 log = get_commits_stats.get_logger() | 67 log = get_commits_stats.get_logger() |
61 author_key_cleaner = lambda k: person(k).replace('"', "") #for js data compatibilty | 68 author_key_cleaner = lambda k: person(k).replace('"', "") #for js data compatibilty |
62 | 69 |
63 commits_by_day_author_aggregate = {} | 70 commits_by_day_author_aggregate = {} |
64 commits_by_day_aggregate = {} | 71 commits_by_day_aggregate = {} |
65 repos_path = ScmModel().repos_path | 72 repos_path = get_repos_path() |
66 p = os.path.join(repos_path, repo_name) | 73 p = os.path.join(repos_path, repo_name) |
67 repo = get_repo(p) | 74 repo = get_repo(p) |
68 | 75 |
69 skip_date_limit = True | 76 skip_date_limit = True |
70 parse_limit = 250 #limit for single task changeset parsing optimal for | 77 parse_limit = 250 #limit for single task changeset parsing optimal for |
269 @task | 276 @task |
270 def create_repo_fork(form_data, cur_user): | 277 def create_repo_fork(form_data, cur_user): |
271 from rhodecode.model.repo import RepoModel | 278 from rhodecode.model.repo import RepoModel |
272 from vcs import get_backend | 279 from vcs import get_backend |
273 log = create_repo_fork.get_logger() | 280 log = create_repo_fork.get_logger() |
274 repo_model = RepoModel(get_session()) | 281 repo_model = RepoModel() |
275 repo_model.create(form_data, cur_user, just_db=True, fork=True) | 282 repo_model.create(form_data, cur_user, just_db=True, fork=True) |
276 repo_name = form_data['repo_name'] | 283 repo_name = form_data['repo_name'] |
277 repos_path = ScmModel().repos_path | 284 repos_path = get_repos_path() |
278 repo_path = os.path.join(repos_path, repo_name) | 285 repo_path = os.path.join(repos_path, repo_name) |
279 repo_fork_path = os.path.join(repos_path, form_data['fork_name']) | 286 repo_fork_path = os.path.join(repos_path, form_data['fork_name']) |
280 alias = form_data['repo_type'] | 287 alias = form_data['repo_type'] |
281 | 288 |
282 log.info('creating repo fork %s as %s', repo_name, repo_path) | 289 log.info('creating repo fork %s as %s', repo_name, repo_path) |
289 'erl', 'h', 'java', 'js', 'jsp', 'jspx', 'lisp', 'lua', 'm', 'mako', 'ml', | 296 'erl', 'h', 'java', 'js', 'jsp', 'jspx', 'lisp', 'lua', 'm', 'mako', 'ml', |
290 'pas', 'patch', 'php', 'php3', 'php4', 'phtml', 'pm', 'py', 'rb', 'rst', | 297 'pas', 'patch', 'php', 'php3', 'php4', 'phtml', 'pm', 'py', 'rb', 'rst', |
291 's', 'sh', 'tpl', 'txt', 'vim', 'wss', 'xhtml', 'xml', 'xsl', 'xslt', 'yaws'] | 298 's', 'sh', 'tpl', 'txt', 'vim', 'wss', 'xhtml', 'xml', 'xsl', 'xslt', 'yaws'] |
292 | 299 |
293 | 300 |
294 repos_path = ScmModel().repos_path | 301 repos_path = get_repos_path() |
295 p = os.path.join(repos_path, repo_name) | 302 p = os.path.join(repos_path, repo_name) |
296 repo = get_repo(p) | 303 repo = get_repo(p) |
297 tip = repo.get_changeset() | 304 tip = repo.get_changeset() |
298 code_stats = {} | 305 code_stats = {} |
299 | 306 |