Skip to content

Commit 1f04a4f

Browse files
check for existing issue inside celery task (#12508)
1 parent 08c5f4a commit 1f04a4f

File tree

1 file changed

+35
-50
lines changed

1 file changed

+35
-50
lines changed

dojo/jira_link/helper.py

Lines changed: 35 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -668,27 +668,48 @@ def push_to_jira(obj, *args, **kwargs):
668668
raise ValueError(msg)
669669

670670
if isinstance(obj, Finding):
671-
finding = obj
672-
if finding.has_jira_issue:
673-
return update_jira_issue_for_finding(finding, *args, **kwargs)
674-
return add_jira_issue_for_finding(finding, *args, **kwargs)
675-
676-
if isinstance(obj, Engagement):
677-
engagement = obj
678-
if engagement.has_jira_issue:
679-
return update_epic(engagement, *args, **kwargs)
680-
return add_epic(engagement, *args, **kwargs)
671+
return push_finding_to_jira(obj, *args, **kwargs)
681672

682673
if isinstance(obj, Finding_Group):
683-
group = obj
684-
if group.has_jira_issue:
685-
return update_jira_issue_for_finding_group(group, *args, **kwargs)
686-
return add_jira_issue_for_finding_group(group, *args, **kwargs)
674+
return push_finding_group_to_jira(obj, *args, **kwargs)
687675

676+
if isinstance(obj, Engagement):
677+
return push_engagement_to_jira(obj, *args, **kwargs)
688678
logger.error("unsupported object passed to push_to_jira: %s %i %s", obj.__name__, obj.id, obj)
689679
return None
690680

691681

682+
# we need thre separate celery tasks due to the decorators we're using to map to/from ids
683+
@dojo_model_to_id
684+
@dojo_async_task
685+
@app.task
686+
@dojo_model_from_id
687+
def push_finding_to_jira(finding, *args, **kwargs):
688+
if finding.has_jira_issue:
689+
return update_jira_issue(finding, *args, **kwargs)
690+
return add_jira_issue(finding, *args, **kwargs)
691+
692+
693+
@dojo_model_to_id
694+
@dojo_async_task
695+
@app.task
696+
@dojo_model_from_id(model=Finding_Group)
697+
def push_finding_group_to_jira(finding_group, *args, **kwargs):
698+
if finding_group.has_jira_issue:
699+
return update_jira_issue(finding_group, *args, **kwargs)
700+
return add_jira_issue(finding_group, *args, **kwargs)
701+
702+
703+
@dojo_model_to_id
704+
@dojo_async_task
705+
@app.task
706+
@dojo_model_from_id(model=Engagement)
707+
def push_engagement_to_jira(engagement, *args, **kwargs):
708+
if engagement.has_jira_issue:
709+
return update_epic(engagement, *args, **kwargs)
710+
return add_epic(engagement, *args, **kwargs)
711+
712+
692713
def add_issues_to_epic(jira, obj, epic_id, issue_keys, *, ignore_epics=True):
693714
try:
694715
return jira.add_issues_to_epic(epic_id=epic_id, issue_keys=issue_keys, ignore_epics=ignore_epics)
@@ -714,24 +735,6 @@ def add_issues_to_epic(jira, obj, epic_id, issue_keys, *, ignore_epics=True):
714735
return False
715736

716737

717-
# we need two separate celery tasks due to the decorators we're using to map to/from ids
718-
719-
@dojo_model_to_id
720-
@dojo_async_task
721-
@app.task
722-
@dojo_model_from_id
723-
def add_jira_issue_for_finding(finding, *args, **kwargs):
724-
return add_jira_issue(finding, *args, **kwargs)
725-
726-
727-
@dojo_model_to_id
728-
@dojo_async_task
729-
@app.task
730-
@dojo_model_from_id(model=Finding_Group)
731-
def add_jira_issue_for_finding_group(finding_group, *args, **kwargs):
732-
return add_jira_issue(finding_group, *args, **kwargs)
733-
734-
735738
def prepare_jira_issue_fields(
736739
project_key,
737740
issuetype_name,
@@ -927,24 +930,6 @@ def failure_to_add_message(message: str, exception: Exception, _: Any) -> bool:
927930
return True
928931

929932

930-
# we need two separate celery tasks due to the decorators we're using to map to/from ids
931-
932-
@dojo_model_to_id
933-
@dojo_async_task
934-
@app.task
935-
@dojo_model_from_id
936-
def update_jira_issue_for_finding(finding, *args, **kwargs):
937-
return update_jira_issue(finding, *args, **kwargs)
938-
939-
940-
@dojo_model_to_id
941-
@dojo_async_task
942-
@app.task
943-
@dojo_model_from_id(model=Finding_Group)
944-
def update_jira_issue_for_finding_group(finding_group, *args, **kwargs):
945-
return update_jira_issue(finding_group, *args, **kwargs)
946-
947-
948933
def update_jira_issue(obj, *args, **kwargs):
949934
def failure_to_update_message(message: str, exception: Exception, obj: Any) -> bool:
950935
if exception:

0 commit comments

Comments
 (0)