comparison rhodecode/lib/celerylib/tasks.py @ 666:6ed37675e78b beta

fixed celery tasks for using only one method of fetching main repos path
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 07 Nov 2010 15:04:15 +0100
parents 373ee7031003
children 87943675813a
comparison
equal deleted inserted replaced
665:070f32743632 666:6ed37675e78b
5 from rhodecode.lib.celerylib import run_task, locked_task 5 from rhodecode.lib.celerylib import run_task, locked_task
6 from rhodecode.lib.helpers import person 6 from rhodecode.lib.helpers import person
7 from rhodecode.lib.smtp_mailer import SmtpMailer 7 from rhodecode.lib.smtp_mailer import SmtpMailer
8 from rhodecode.lib.utils import OrderedDict 8 from rhodecode.lib.utils import OrderedDict
9 from time import mktime 9 from time import mktime
10 from vcs.backends.hg import MercurialRepository
11 from vcs.backends.git import GitRepository
12 import os 10 import os
13 import traceback 11 import traceback
14 from vcs.backends import get_repo 12 from vcs.backends import get_repo
15 from vcs.utils.helpers import get_scm 13 from rhodecode.model.hg import HgModel
16
17 try: 14 try:
18 import json 15 import json
19 except ImportError: 16 except ImportError:
20 #python 2.5 compatibility 17 #python 2.5 compatibility
21 import simplejson as json 18 import simplejson as json
44 from rhodecode.model.meta import Session 41 from rhodecode.model.meta import Session
45 sa = Session() 42 sa = Session()
46 43
47 return sa 44 return sa
48 45
49 def get_hg_settings():
50 from rhodecode.model.db import RhodeCodeSettings
51 sa = get_session()
52 ret = sa.query(RhodeCodeSettings).all()
53
54 if not ret:
55 raise Exception('Could not get application settings !')
56 settings = {}
57 for each in ret:
58 settings['rhodecode_' + each.app_settings_name] = each.app_settings_value
59
60 return settings
61
62 def get_hg_ui_settings():
63 from rhodecode.model.db import RhodeCodeUi
64 sa = get_session()
65 ret = sa.query(RhodeCodeUi).all()
66
67 if not ret:
68 raise Exception('Could not get application ui settings !')
69 settings = {}
70 for each in ret:
71 k = each.ui_key
72 v = each.ui_value
73 if k == '/':
74 k = 'root_path'
75
76 if k.find('.') != -1:
77 k = k.replace('.', '_')
78
79 if each.ui_section == 'hooks':
80 v = each.ui_active
81
82 settings[each.ui_section + '_' + k] = v
83
84 return settings
85
86 @task 46 @task
87 @locked_task 47 @locked_task
88 def whoosh_index(repo_location, full_index): 48 def whoosh_index(repo_location, full_index):
89 log = whoosh_index.get_logger() 49 log = whoosh_index.get_logger()
90 from rhodecode.lib.indexers.daemon import WhooshIndexingDaemon 50 from rhodecode.lib.indexers.daemon import WhooshIndexingDaemon
99 log = get_commits_stats.get_logger() 59 log = get_commits_stats.get_logger()
100 author_key_cleaner = lambda k: person(k).replace('"', "") #for js data compatibilty 60 author_key_cleaner = lambda k: person(k).replace('"', "") #for js data compatibilty
101 61
102 commits_by_day_author_aggregate = {} 62 commits_by_day_author_aggregate = {}
103 commits_by_day_aggregate = {} 63 commits_by_day_aggregate = {}
104 repos_path = get_hg_ui_settings()['paths_root_path'] 64 repos_path = HgModel().repos_path
105 p = os.path.join(repos_path, repo_name) 65 p = os.path.join(repos_path, repo_name)
106 repo = get_repo(p) 66 repo = get_repo(p)
107 67
108 skip_date_limit = True 68 skip_date_limit = True
109 parse_limit = 250 #limit for single task changeset parsing optimal for 69 parse_limit = 250 #limit for single task changeset parsing optimal for
295 from vcs import get_backend 255 from vcs import get_backend
296 log = create_repo_fork.get_logger() 256 log = create_repo_fork.get_logger()
297 repo_model = RepoModel(get_session()) 257 repo_model = RepoModel(get_session())
298 repo_model.create(form_data, cur_user, just_db=True, fork=True) 258 repo_model.create(form_data, cur_user, just_db=True, fork=True)
299 repo_name = form_data['repo_name'] 259 repo_name = form_data['repo_name']
300 repos_path = get_hg_ui_settings()['paths_root_path'] 260 repos_path = HgModel().repos_path
301 repo_path = os.path.join(repos_path, repo_name) 261 repo_path = os.path.join(repos_path, repo_name)
302 repo_fork_path = os.path.join(repos_path, form_data['fork_name']) 262 repo_fork_path = os.path.join(repos_path, form_data['fork_name'])
303 alias = form_data['repo_type'] 263 alias = form_data['repo_type']
304 264
305 log.info('creating repo fork %s as %s', repo_name, repo_path) 265 log.info('creating repo fork %s as %s', repo_name, repo_path)
312 'erl', 'h', 'java', 'js', 'jsp', 'jspx', 'lisp', 'lua', 'm', 'mako', 'ml', 272 'erl', 'h', 'java', 'js', 'jsp', 'jspx', 'lisp', 'lua', 'm', 'mako', 'ml',
313 'pas', 'patch', 'php', 'php3', 'php4', 'phtml', 'pm', 'py', 'rb', 'rst', 273 'pas', 'patch', 'php', 'php3', 'php4', 'phtml', 'pm', 'py', 'rb', 'rst',
314 's', 'sh', 'tpl', 'txt', 'vim', 'wss', 'xhtml', 'xml', 'xsl', 'xslt', 'yaws'] 274 's', 'sh', 'tpl', 'txt', 'vim', 'wss', 'xhtml', 'xml', 'xsl', 'xslt', 'yaws']
315 275
316 276
317 repos_path = get_hg_ui_settings()['paths_root_path'] 277 repos_path = HgModel().repos_path
318 p = os.path.join(repos_path, repo_name) 278 p = os.path.join(repos_path, repo_name)
319 repo = get_repo(p) 279 repo = get_repo(p)
320 tip = repo.get_changeset() 280 tip = repo.get_changeset()
321 code_stats = {} 281 code_stats = {}
322 282