# HG changeset patch # User Mads Kiilerich # Date 1609106332 -3600 # Node ID 1c43fd986a8e4ad42b7e6d08f2993e6320181fdb # Parent 233ba81987818c23a59c9e01bac351c1d4feb405 celery: use regular automatic session handling for tasks There were no point in having a special celery get_session() . diff -r 233ba8198781 -r 1c43fd986a8e kallithea/lib/celerylib/__init__.py --- a/kallithea/lib/celerylib/__init__.py Wed Jan 06 22:43:43 2021 +0100 +++ b/kallithea/lib/celerylib/__init__.py Sun Dec 27 22:58:52 2020 +0100 @@ -113,11 +113,6 @@ return decorator(__wrapper, func) -def get_session(): - sa = meta.Session() - return sa - - def dbsession(func): def __wrapper(func, *fargs, **fkwargs): try: diff -r 233ba8198781 -r 1c43fd986a8e kallithea/model/async_tasks.py --- a/kallithea/model/async_tasks.py Wed Jan 06 22:43:43 2021 +0100 +++ b/kallithea/model/async_tasks.py Sun Dec 27 22:58:52 2020 +0100 @@ -44,7 +44,7 @@ from kallithea.lib.indexers.daemon import WhooshIndexingDaemon from kallithea.lib.utils2 import asbool, ascii_bytes from kallithea.lib.vcs.utils import author_email, author_name -from kallithea.model import db, repo, userlog +from kallithea.model import db, meta, repo, userlog __all__ = ['whoosh_index', 'get_commits_stats', 'send_email'] @@ -57,8 +57,6 @@ @celerylib.locked_task @celerylib.dbsession def whoosh_index(repo_location, full_index): - celerylib.get_session() # initialize database connection - index_location = config['index_dir'] WhooshIndexingDaemon(index_location=index_location, repo_location=repo_location) \ @@ -81,7 +79,6 @@ @celerylib.task @celerylib.dbsession def get_commits_stats(repo_name, ts_min_y, ts_max_y, recurse_limit=100): - DBS = celerylib.get_session() lockkey = celerylib.__get_lockkey('get_commits_stats', repo_name, ts_min_y, ts_max_y) log.info('running task with lockkey %s', lockkey) @@ -107,9 +104,9 @@ last_cs = None timegetter = itemgetter('time') - dbrepo = DBS.query(db.Repository) \ + dbrepo = db.Repository.query() \ .filter(db.Repository.repo_name == repo_name).scalar() - cur_stats = DBS.query(db.Statistics) \ + cur_stats = db.Statistics.query() \ .filter(db.Statistics.repository == dbrepo).scalar() if cur_stats is not None: @@ -212,11 +209,11 @@ try: stats.repository = dbrepo stats.stat_on_revision = last_cs.revision if last_cs else 0 - DBS.add(stats) - DBS.commit() + meta.Session().add(stats) + meta.Session().commit() except: log.error(traceback.format_exc()) - DBS.rollback() + meta.Session().rollback() lock.release() return False @@ -355,8 +352,6 @@ @celerylib.task @celerylib.dbsession def create_repo(form_data, cur_user): - DBS = celerylib.get_session() - cur_user = db.User.guess_instance(cur_user) owner = cur_user @@ -399,7 +394,7 @@ userlog.action_logger(cur_user, 'user_created_repo', form_data['repo_name_full'], '') - DBS.commit() + meta.Session().commit() # now create this repo on Filesystem repo.RepoModel()._create_filesystem_repo( repo_name=repo_name, @@ -415,7 +410,7 @@ # set new created state db_repo.set_state(db.Repository.STATE_CREATED) - DBS.commit() + meta.Session().commit() except Exception as e: log.warning('Exception %s occurred when forking repository, ' 'doing cleanup...' % e) @@ -423,7 +418,7 @@ db_repo = db.Repository.get_by_repo_name(repo_name_full) if db_repo: db.Repository.delete(db_repo.repo_id) - DBS.commit() + meta.Session().commit() repo.RepoModel()._delete_filesystem_repo(db_repo) raise @@ -439,8 +434,6 @@ :param form_data: :param cur_user: """ - DBS = celerylib.get_session() - base_path = kallithea.CONFIG['base_path'] cur_user = db.User.guess_instance(cur_user) @@ -472,7 +465,7 @@ ) userlog.action_logger(cur_user, 'user_forked_repo:%s' % repo_name_full, fork_of.repo_name, '') - DBS.commit() + meta.Session().commit() source_repo_path = os.path.join(base_path, fork_of.repo_name) @@ -491,7 +484,7 @@ # set new created state db_repo.set_state(db.Repository.STATE_CREATED) - DBS.commit() + meta.Session().commit() except Exception as e: log.warning('Exception %s occurred when forking repository, ' 'doing cleanup...' % e) @@ -499,7 +492,7 @@ db_repo = db.Repository.get_by_repo_name(repo_name_full) if db_repo: db.Repository.delete(db_repo.repo_id) - DBS.commit() + meta.Session().commit() repo.RepoModel()._delete_filesystem_repo(db_repo) raise