]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
script/redmine-upkeep: raise exception for PUT failures
authorPatrick Donnelly <pdonnell@ibm.com>
Wed, 16 Jul 2025 18:28:44 +0000 (14:28 -0400)
committerPatrick Donnelly <pdonnell@ibm.com>
Tue, 12 Aug 2025 16:02:51 +0000 (12:02 -0400)
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
src/script/redmine-upkeep.py

index 2f7785624e6c00279e89049efa669adf37f61b00..c26bea35a3756125a409de8cc3c0294fb31dfc3f 100755 (executable)
@@ -163,6 +163,23 @@ Issue #{self.issue_update.issue.id} referenced "PR #{self.pr_id}":https://github
 </pre>
 """
 
+class RedmineUpdateException(UpkeepException):
+    def __init__(self, issue_update, **kwargs):
+        super().__init__(issue_update, **kwargs)
+
+    def __str__(self):
+        return "Update to Redmine failed"
+
+    def comment(self):
+        return f"""
+Redmine Update failed:
+
+<pre>
+{self.traceback.strip()}
+</pre>
+"""
+
+
 class IssueUpdate:
     def __init__(self, issue, github_session, git_repo):
         self.issue = issue
@@ -720,10 +737,9 @@ class RedmineUpkeep:
                         self.modifications_made.setdefault(t_name, 0)
                         self.modifications_made[t_name] += 1
                     return True
-                except requests.exceptions.HTTPError as err:
+                except requests.exceptions.HTTPError as e:
                     issue_update.logger.error("API PUT failure during upkeep.", exc_info=True)
-                    self._handle_upkeep_failure(issue_update, err)
-                    return False
+                    raise RedmineUpdateException(issue_update, exception=e, traceback=traceback.format_exc())
             else:
                 issue_update.logger.info("No changes detected after all transformations. No Redmine update sent.")
                 return False