Skip to content

templates

ProcessStatus

Bases: object

To gather information about process to return via response

Source code in server/templates.py
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
class ProcessStatus(object):
    """To gather information about process to return via response"""
    def __init__(self):
        self._jira_epics_created = 0
        self._jira_tickets_created = 0
        self._jira_tickets_updated = 0
        self._ayon_tasks_created = 0
        self._ayon_tasks_updated = 0

        self.errors = []
        self.traceback = None

    def info(self):
        content = (
            f"Jira epics created: {self._jira_epics_created} \n"
            f"Jira tickets created: {self._jira_tickets_created} \n"
            f"Jira tickets updated: {self._jira_epics_created} \n"
            f"AYON tickets created: {self._ayon_tasks_created} \n"
            f"AYON tickets updated: {self._ayon_tasks_updated} \n"
        )
        return content

create_tasks_and_tickets(current_user, project_name, jira_project_code, template_name, placeholder_map, folder_paths, jira_creds=None) async

Main endpoint - creates Jira and Ayon elements creation.

Source code in server/templates.py
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
async def create_tasks_and_tickets(
    current_user,
    project_name,
    jira_project_code,
    template_name,
    placeholder_map,
    folder_paths,
    jira_creds=None
):
    """Main endpoint - creates Jira and Ayon elements creation."""
    status = ProcessStatus()

    try:
        ayon_template_data = _get_ayon_template_data(
            template_name, placeholder_map)
        jira_template_data = _get_jira_template_data(
            template_name, placeholder_map)

        jira_conn = _get_jira_conn(jira_creds)

        folder_paths = _normalize_folder_paths(project_name, folder_paths)

        # create epics and issues in Jira
        custom_id_to_jira_key = _process_jira_template_data(
            jira_conn,
            jira_project_code,
            jira_template_data,
            folder_paths,
            status=status
        )

        # create ayon tasks, fill Jira keys
        jira_key_to_ayon_task_id = await _process_ayon_template_data(
            current_user,
            project_name,
            ayon_template_data,
            folder_paths,
            custom_id_to_jira_key,
            status=status
        )

        # update Jira issues with AYON tasks
        for jira_key, ayon_task_id in jira_key_to_ayon_task_id.items():
            jira_conn.issue_update(jira_key, {AYON_TASK_FIELD: ayon_task_id})
    except Exception as exp:
        status.errors.append(str(exp))
        status.traceback = traceback.format_exc()

    return status