Mercurial > kallithea
changeset 3694:34093903b505 beta
repo rescann should detach forks of zombie repos,
this way we ensure we do proper cleanup of such repos.
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 05 Apr 2013 23:16:21 +0200 |
parents | 6843cabe9925 |
children | 45df84d36b44 |
files | rhodecode/lib/utils.py rhodecode/model/repo.py |
diffstat | 2 files changed, 8 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/lib/utils.py Wed Apr 03 02:35:01 2013 +0200 +++ b/rhodecode/lib/utils.py Fri Apr 05 23:16:21 2013 +0200 @@ -467,9 +467,9 @@ log.debug("Removing non-existing repository found in db `%s`" % repo.repo_name) try: - sa.delete(repo) + removed.append(repo.repo_name) + RepoModel(sa).delete(repo, forks='detach', fs_remove=False) sa.commit() - removed.append(repo.repo_name) except Exception: #don't hold further removals on error log.error(traceback.format_exc())
--- a/rhodecode/model/repo.py Wed Apr 03 02:35:01 2013 +0200 +++ b/rhodecode/model/repo.py Fri Apr 05 23:16:21 2013 +0200 @@ -466,7 +466,7 @@ from rhodecode.lib.celerylib import tasks, run_task run_task(tasks.create_repo_fork, form_data, cur_user) - def delete(self, repo, forks=None): + def delete(self, repo, forks=None, fs_remove=True): """ Delete given repository, forks parameter defines what do do with attached forks. Throws AttachedForksError if deleted repo has attached @@ -474,6 +474,7 @@ :param repo: :param forks: str 'delete' or 'detach' + :param fs_remove: remove(archive) repo from filesystem """ repo = self._get_repo(repo) if repo: @@ -491,7 +492,10 @@ owner = repo.user try: self.sa.delete(repo) - self.__delete_repo(repo) + if fs_remove: + self.__delete_repo(repo) + else: + log.debug('skipping removal from filesystem') log_delete_repository(old_repo_dict, deleted_by=owner.username) except Exception: