From 512349a28d7779649d32850b2938aa3ce2af3e72 Mon Sep 17 00:00:00 2001 From: Clark Boylan Date: Wed, 30 Sep 2020 10:15:04 -0700 Subject: [PATCH] Make gitea description update failures nonfatal There appears to be a gitea bug that causes PATCH updates to projects to fail when the cache is in a bad state for that project. We use PATCH updates to a project to set the project descriptions. Since project descriptions are not critical to gitea functionality (we weren't updating them until last week) we can treat this as best effort and ignore these failures. We'll log these cases to aid in further debugging but continue on. The next pass can retry. Change-Id: I625bdc0856caaccb6b55931b0cdc6cf11a0bf3e1 --- .../library/gitea_create_repos.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/playbooks/roles/gitea-git-repos/library/gitea_create_repos.py b/playbooks/roles/gitea-git-repos/library/gitea_create_repos.py index 3936a442bc..fd5b697452 100755 --- a/playbooks/roles/gitea-git-repos/library/gitea_create_repos.py +++ b/playbooks/roles/gitea-git-repos/library/gitea_create_repos.py @@ -210,12 +210,19 @@ class Gitea(object): description_update = { 'description': description, } - resp = self.patch( - '/api/v1/repos/{org}/{repo}'.format(org=org, repo=repo), - json=description_update) - # Commented out as there is no good way to log only those projects - # which have an updated description and as a result this is noisy. - #self.log("Set description for:", project['project']) + try: + resp = self.patch( + '/api/v1/repos/{org}/{repo}'.format(org=org, repo=repo), + json=description_update) + # Commented out as there is no good way to log only those + # projects which have an updated description and as a result + # this is noisy. + #self.log("Set description for:", project['project']) + except Exception as e: + # Updating descriptions is best effort as we may fail due to + # gitea bugs, but such a failure isn't critical. + self.log("Failed to set desciption for:", + project['project'], str(e)) def make_projects(self, projects, gitea_repos, csrf_token, settings_thread_pool, branches_thread_pool, futures):