From: Patrick Donnelly Date: Tue, 23 Jul 2024 20:07:16 +0000 (-0400) Subject: script/backport-create-issue: retry without if assignee is invalid X-Git-Tag: testing/wip-vshankar-testing-20240725.121331-debug~14^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=2e8c0c23e374427a80f144fff8d39534ad73604d;p=ceph-ci.git script/backport-create-issue: retry without if assignee is invalid Resolves: WARNING:root:Missing issues will be created in Backport tracker of the relevant Redmine project INFO:root:Redmine key was read from '$REDMINE_API_KEY'; using it INFO:root:Processing 35 issues with status Pending Backport Traceback (most recent call last): File "/home/runner/work/ceph/ceph/src/script/backport-create-issue", line 411, in iterate_over_backports(redmine, issues, dry_run=args.dry_run) File "/home/runner/work/ceph/ceph/src/script/backport-create-issue", line 354, in iterate_over_backports update_relations(r, issue, dry_run) File "/home/runner/work/ceph/ceph/src/script/backport-create-issue", line 242, in update_relations other = r.issue.create(project_id=issue['project']['id'], ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.11.9/x64/lib/python3.11/site-packages/redminelib/managers/base.py", line 187, in create response = self.redmine.engine.request(self.resource_class.http_method_create, url, data=request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.11.9/x64/lib/python3.11/site-packages/redminelib/engines/base.py", line 83, in request return self.process_response(self.session.request(method, url, **kwargs)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/hostedtoolcache/Python/3.11.9/x64/lib/python3.11/site-packages/redminelib/engines/base.py", line 178, in process_response raise exceptions.ValidationError(', '.join(': '.join(e) if isinstance(e, list) else e for e in errors)) redminelib.exceptions.ValidationError: Assignee is invalid Examining issue#66797 (1/35) Signed-off-by: Patrick Donnelly --- diff --git a/src/script/backport-create-issue b/src/script/backport-create-issue index e265c164db0..4621411a101 100755 --- a/src/script/backport-create-issue +++ b/src/script/backport-create-issue @@ -34,7 +34,7 @@ import os import re import time from redminelib import Redmine # https://pypi.org/project/python-redmine/ -from redminelib.exceptions import ResourceAttrError +from redminelib.exceptions import ResourceAttrError, ValidationError redmine_endpoint = "https://tracker.ceph.com" project_name = "Ceph" @@ -239,16 +239,26 @@ def update_relations(r, issue, dry_run): if dry_run: logging.info(url(issue) + " add backport to " + release) continue - other = r.issue.create(project_id=issue['project']['id'], - tracker_id=backport_tracker_id, - subject=subject, - priority_id=issue['priority']['id'], - assigned_to_id=assigned_to_id, - target_version=None, - custom_fields=[{ - "id": release_id, - "value": release, - }]) + create_args = { + "project_id": issue['project']['id'], + "tracker_id": backport_tracker_id, + "subject": subject, + "priority_id": issue['priority']['id'], + "assigned_to_id": assigned_to_id, + "target_version": None, + "custom_fields": [ + { + "id": release_id, + "value": release, + } + ] + } + try: + other = r.issue.create(**create_args) + except ValidationError as e: + # try without an assignee + del create_args['assigned_to_id'] + other = r.issue.create(**create_args) logging.debug("Rate-limiting to avoid seeming like a spammer") time.sleep(delay_seconds) r.issue_relation.create(issue_id=issue['id'],