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