From 11f80a76e861dadf19cbb295be70c417f3c8a32e Mon Sep 17 00:00:00 2001 From: Dominik Turecek Date: Aug 31 2020 10:24:29 +0000 Subject: frontend: count srpm builds in statistics Fixes: #295 --- diff --git a/frontend/coprs_frontend/coprs/logic/complex_logic.py b/frontend/coprs_frontend/coprs/logic/complex_logic.py index b183850..f955f61 100644 --- a/frontend/coprs_frontend/coprs/logic/complex_logic.py +++ b/frontend/coprs_frontend/coprs/logic/complex_logic.py @@ -253,9 +253,12 @@ class ComplexLogic(object): @staticmethod def get_queue_sizes(): importing = BuildsLogic.get_build_importing_queue(background=False).count() - pending = BuildsLogic.get_pending_build_tasks(background=False).count() - running = BuildsLogic.get_build_tasks(StatusEnum("running")).count() - starting = BuildsLogic.get_build_tasks(StatusEnum("starting")).count() + pending = BuildsLogic.get_pending_build_tasks(background=False).count() +\ + BuildsLogic.get_pending_srpm_build_tasks(background=False).count() + running = BuildsLogic.get_build_tasks(StatusEnum("running")).count() +\ + BuildsLogic.get_srpm_build_tasks(StatusEnum("running")).count() + starting = BuildsLogic.get_build_tasks(StatusEnum("starting")).count() +\ + BuildsLogic.get_srpm_build_tasks(StatusEnum("starting")).count() return dict( importing=importing, diff --git a/frontend/coprs_frontend/coprs/templates/_helpers.html b/frontend/coprs_frontend/coprs/templates/_helpers.html index 4616713..8580af6 100644 --- a/frontend/coprs_frontend/coprs/templates/_helpers.html +++ b/frontend/coprs_frontend/coprs/templates/_helpers.html @@ -689,28 +689,38 @@ https://admin.fedoraproject.org/accounts/group/view/{{name}} - {% for task in tasks %} - {% set build_chroot = task if type == 'importing' else task.build %} + {% for task_type, time, task in tasks %} + {% set build_chroot = task if type == 'importing' or task_type == 'srpm' else task.build %} - {% if type != 'running' %} - {{ build_chroot.submitted_on | time_ago }} - {% else %} - {{ build_chroot.started_on | time_ago }} - {% endif %} - - - {{ copr_name(build_chroot.copr) }} - - - - - {{ build_chroot.id }} - - + {{ time | time_ago }} + + + {{ copr_name(build_chroot.copr) }} + + + + + {{ build_chroot.id }} + + {% if type != 'importing' %} - {{ task.build.package.name }} - {{ task.build.pkg_version }} - {{ task.mock_chroot.name }} + {% if task_type == 'srpm' %} + {% if (task.package is not none) and (task.package.name is not none) %} + {{ task.package.name }} + {% else %} + - + {% endif %} + {% if task.pkg_version is not none %} + {{ task.pkg_version }} + {% else %} + - + {% endif %} + srpm build + {% else %} + {{ task.build.package.name }} + {{ task.build.pkg_version }} + {{ task.mock_chroot.name }} + {% endif %} {% endif %} {% endfor %} diff --git a/frontend/coprs_frontend/coprs/views/status_ns/status_general.py b/frontend/coprs_frontend/coprs/views/status_ns/status_general.py index 7216989..8cf5417 100644 --- a/frontend/coprs_frontend/coprs/views/status_ns/status_general.py +++ b/frontend/coprs_frontend/coprs/views/status_ns/status_general.py @@ -15,14 +15,31 @@ def inject_common_blueprint_variables(): @status_ns.route("/") @status_ns.route("/pending/") def pending(): - tasks = builds_logic.BuildsLogic.get_pending_build_tasks(background=False).all() + rpm_tasks = builds_logic.BuildsLogic.get_pending_build_tasks(background=False).all() bg_tasks_cnt = builds_logic.BuildsLogic.get_pending_build_tasks(background=True).count() + tasks = list(zip(["rpm"] * len(rpm_tasks), + [x.build.submitted_on for x in rpm_tasks], + rpm_tasks)) + srpm_tasks = builds_logic.BuildsLogic.get_pending_srpm_build_tasks(background=False).all() + bg_tasks_cnt += builds_logic.BuildsLogic.get_pending_srpm_build_tasks(background=True).count() + srpm_tasks = list(zip(["srpm"] * len(srpm_tasks), + [x.submitted_on for x in srpm_tasks], + srpm_tasks)) + tasks.extend(srpm_tasks) return render_status("pending", tasks=tasks, bg_tasks_cnt=bg_tasks_cnt) @status_ns.route("/running/") def running(): - tasks = builds_logic.BuildsLogic.get_build_tasks(StatusEnum("running")).all() + rpm_tasks = builds_logic.BuildsLogic.get_build_tasks(StatusEnum("running")).all() + tasks = list(zip(["rpm"] * len(rpm_tasks), + [x.started_on for x in rpm_tasks], + rpm_tasks)) + srpm_tasks = builds_logic.BuildsLogic.get_srpm_build_tasks(StatusEnum("running")).all() + srpm_tasks = list(zip(["srpm"] * len(srpm_tasks), + [x.submitted_on for x in srpm_tasks], + srpm_tasks)) + tasks.extend(srpm_tasks) return render_status("running", tasks=tasks) @@ -30,12 +47,23 @@ def running(): def importing(): tasks = builds_logic.BuildsLogic.get_build_importing_queue(background=False).all() bg_tasks_cnt = builds_logic.BuildsLogic.get_build_importing_queue(background=True).count() + tasks = list(zip(["rpm"] * len(tasks), + [x.submitted_on for x in tasks], + tasks)) return render_status("importing", tasks=tasks, bg_tasks_cnt=bg_tasks_cnt) @status_ns.route("/starting/") def starting(): tasks = builds_logic.BuildsLogic.get_build_tasks(StatusEnum("starting")).all() + tasks = list(zip(["rpm"] * len(tasks), + [x.build.submitted_on for x in tasks], + tasks)) + srpm_tasks = builds_logic.BuildsLogic.get_srpm_build_tasks(StatusEnum("starting")).all() + srpm_tasks = list(zip(["srpm"] * len(srpm_tasks), + [x.submitted_on for x in srpm_tasks], + srpm_tasks)) + tasks.extend(srpm_tasks) return render_status("starting", tasks=tasks)