From 6876a8df93478ef0e92c2fbf75e4b536181d1f5d Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: Oct 08 2018 08:10:45 +0000 Subject: If a repo existed, clean up the project instance Signed-off-by: Patrick Uiterwijk --- diff --git a/pagure/lib/git.py b/pagure/lib/git.py index 5a8429b..f8de106 100644 --- a/pagure/lib/git.py +++ b/pagure/lib/git.py @@ -2280,8 +2280,11 @@ def _create_project_repo(project, region, templ, ignore_existing, repotype): resp = resp.json() _log.debug("Response json: %s", resp) if not resp["Success"]: - if ignore_existing and "already exists" in resp["Error"]: - return None + if "already exists" in resp["Error"]: + if ignore_existing: + return None + else: + raise pagure.exceptions.RepoExistsException(resp["Error"]) raise Exception( "Error in repoSpanner API call: %s" % resp["Error"] ) diff --git a/pagure/lib/tasks.py b/pagure/lib/tasks.py index ea23871..00f6822 100644 --- a/pagure/lib/tasks.py +++ b/pagure/lib/tasks.py @@ -290,9 +290,17 @@ def create_project( else: _log.debug(" Using template at: %s", templ) - pagure.lib.git.create_project_repos( - project, project.repospanner_region, templ, ignore_existing_repo - ) + try: + pagure.lib.git.create_project_repos( + project, + project.repospanner_region, + templ, + ignore_existing_repo, + ) + except pagure.exceptions.RepoExistsException: + session.delete(project) + session.commit() + raise if add_readme: with pagure.lib.git.TemporaryClone(