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 forks :param repo: :param forks: str 'delete' or 'detach' :param fs_remove: remove(archive) repo from filesystem """ repo = self._get_repo(repo) if repo: if forks == 'detach': for r in repo.forks: r.fork = None self.sa.add(r) elif forks == 'delete': for r in repo.forks: self.delete(r, forks='delete') elif [f for f in repo.forks]: raise AttachedForksError() old_repo_dict = repo.get_dict() owner = repo.user try: self.sa.delete(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: log.error(traceback.format_exc()) raise
def delete(self, repo, forks=None): """ Delete given repository, forks parameter defines what do do with attached forks. Throws AttachedForksError if deleted repo has attached forks :param repo: :param forks: str 'delete' or 'detach' """ repo = self._get_repo(repo) if repo: if forks == 'detach': for r in repo.forks: r.fork = None self.sa.add(r) elif forks == 'delete': for r in repo.forks: self.delete(r, forks='delete') elif [f for f in repo.forks]: raise AttachedForksError() old_repo_dict = repo.get_dict() owner = repo.user try: self.sa.delete(repo) self.__delete_repo(repo) log_delete_repository(old_repo_dict, deleted_by=owner.username) except Exception: log.error(traceback.format_exc()) raise
def delete(self, repo): repo = self._get_repo(repo) if repo: old_repo_dict = repo.get_dict() owner = repo.user try: self.sa.delete(repo) self.__delete_repo(repo) log_delete_repository(old_repo_dict, deleted_by=owner.username) except: log.error(traceback.format_exc()) raise
def delete(self, repo, forks=None, fs_remove=True, cur_user=None): """ Delete given repository, forks parameter defines what do do with attached forks. Throws AttachedForksError if deleted repo has attached forks :param repo: :param forks: str 'delete' or 'detach' :param fs_remove: remove(archive) repo from filesystem """ if not cur_user: cur_user = getattr(get_current_rhodecode_user(), 'username', None) repo = self._get_repo(repo) if repo: if forks == 'detach': for r in repo.forks: r.fork = None self.sa.add(r) elif forks == 'delete': for r in repo.forks: self.delete(r, forks='delete') elif [f for f in repo.forks]: raise AttachedForksError() old_repo_dict = repo.get_dict() owner = repo.user try: self.sa.delete(repo) if fs_remove: self.__delete_repo(repo) else: log.debug('skipping removal from filesystem') log_delete_repository(old_repo_dict, deleted_by=cur_user) except Exception: log.error(traceback.format_exc()) raise