From 652b2943a7654ae11bb0de1da909b94f84a28243 Mon Sep 17 00:00:00 2001
From: Michael Tremer
Date: Tue, 16 May 2023 15:51:03 +0000
Subject: [PATCH] events: Show error message when mirrors go offline
Signed-off-by: Michael Tremer
---
src/buildservice/events.py | 24 ++++++++++++++++++-
.../events/modules/system-message.html | 7 ++++++
2 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/src/buildservice/events.py b/src/buildservice/events.py
index 388a3fd2..1ef82e43 100644
--- a/src/buildservice/events.py
+++ b/src/buildservice/events.py
@@ -48,6 +48,7 @@ log = logging.getLogger("pbs.events")
# by_user
# builder
# repository
+# error
# points
#
@@ -71,6 +72,7 @@ class Events(base.Object):
builds.owner_id AS by_user,
NULL::integer AS builder,
NULL::integer AS repository,
+ NULL::text AS error,
NULL::integer AS points
FROM
builds
@@ -100,6 +102,7 @@ class Events(base.Object):
NULL AS by_user,
NULL AS builder,
NULL AS repository,
+ NULL AS error,
NULL AS points
FROM
builds
@@ -123,6 +126,7 @@ class Events(base.Object):
builds.deleted_by AS by_user,
NULL AS builder,
NULL AS repository,
+ NULL AS error,
NULL AS points
FROM
builds
@@ -147,6 +151,7 @@ class Events(base.Object):
builds.deprecated_by AS by_user,
NULL AS builder,
NULL AS repository,
+ NULL AS error,
NULL AS points
FROM
builds
@@ -172,6 +177,7 @@ class Events(base.Object):
build_comments.user_id AS by_user,
NULL AS builder,
NULL AS repository,
+ NULL AS error,
NULL AS points
FROM
build_comments
@@ -195,6 +201,7 @@ class Events(base.Object):
NULL AS by_user,
NULL AS builder,
NULL AS repository,
+ NULL AS error,
NULL AS points
FROM
build_watchers
@@ -216,6 +223,7 @@ class Events(base.Object):
NULL AS by_user,
NULL AS builder,
NULL AS repository,
+ NULL AS error,
NULL AS points
FROM
build_watchers
@@ -239,6 +247,7 @@ class Events(base.Object):
repository_builds.added_by AS by_user,
NULL AS builder,
repository_builds.repo_id AS repository,
+ NULL AS error,
NULL AS points
FROM
repository_builds
@@ -260,6 +269,7 @@ class Events(base.Object):
repository_builds.removed_by AS by_user,
NULL AS builder,
repository_builds.repo_id AS repository,
+ NULL AS error,
NULL AS points
FROM
repository_builds
@@ -284,6 +294,7 @@ class Events(base.Object):
build_points.user_id AS by_user,
NULL AS builder,
NULL AS repository,
+ NULL AS error,
build_points.points AS points
FROM
build_points
@@ -306,6 +317,7 @@ class Events(base.Object):
NULL AS by_user,
NULL AS builder,
NULL AS repository,
+ NULL AS error,
NULL AS points
FROM
builds
@@ -335,6 +347,7 @@ class Events(base.Object):
NULL AS by_user,
NULL AS builder,
NULL AS repository,
+ NULL AS error,
NULL AS points
FROM
jobs
@@ -358,6 +371,7 @@ class Events(base.Object):
NULL AS by_user,
jobs.builder_id AS builder,
NULL AS repository,
+ NULL AS error,
NULL AS points
FROM
jobs
@@ -387,6 +401,7 @@ class Events(base.Object):
NULL AS by_user,
jobs.builder_id AS builder,
NULL AS repository,
+ NULL AS error,
NULL AS points
FROM
jobs
@@ -416,6 +431,7 @@ class Events(base.Object):
jobs.aborted_by AS by_user,
jobs.builder_id AS builder,
NULL AS repository,
+ NULL AS error,
NULL AS points
FROM
jobs
@@ -441,6 +457,7 @@ class Events(base.Object):
NULL AS by_user,
jobs.builder_id AS builder,
NULL AS repository,
+ NULL AS error,
NULL AS points
FROM
jobs
@@ -466,6 +483,7 @@ class Events(base.Object):
NULL AS by_user,
NULL AS builder,
NULL AS repository,
+ NULL AS error,
NULL AS points
FROM
jobs
@@ -491,6 +509,7 @@ class Events(base.Object):
mirrors.created_by AS by_user,
NULL AS builder,
NULL AS repository,
+ NULL AS error,
NULL AS points
FROM
mirrors
@@ -512,6 +531,7 @@ class Events(base.Object):
mirrors.deleted_by AS by_user,
NULL AS builder,
NULL AS repository,
+ NULL AS error,
NULL AS points
FROM
mirrors
@@ -540,6 +560,7 @@ class Events(base.Object):
NULL AS by_user,
NULL AS builder,
NULL AS repository,
+ mirror_status_changes.error AS error,
NULL AS points
FROM (
SELECT
@@ -549,7 +570,8 @@ class Events(base.Object):
LAG(success) OVER (
PARTITION BY mirror_id
ORDER BY checked_at ASC
- ) AS old_status
+ ) AS old_status,
+ mirror_checks.error AS error
FROM
mirror_checks
) mirror_status_changes
diff --git a/src/templates/events/modules/system-message.html b/src/templates/events/modules/system-message.html
index 59def26f..aa756557 100644
--- a/src/templates/events/modules/system-message.html
+++ b/src/templates/events/modules/system-message.html
@@ -118,6 +118,13 @@
{{ locale.format_date(event.t, shorter=True) }}
+ {# Show the error message #}
+ {% if event.error %}
+