aboutsummaryrefslogtreecommitdiffstats
path: root/resources/tools/presentation/generator_alerts.py
diff options
context:
space:
mode:
Diffstat (limited to 'resources/tools/presentation/generator_alerts.py')
-rw-r--r--resources/tools/presentation/generator_alerts.py22
1 files changed, 16 insertions, 6 deletions
diff --git a/resources/tools/presentation/generator_alerts.py b/resources/tools/presentation/generator_alerts.py
index b106d9589a..1b40dbbbf9 100644
--- a/resources/tools/presentation/generator_alerts.py
+++ b/resources/tools/presentation/generator_alerts.py
@@ -19,7 +19,7 @@ from email.mime.multipart import MIMEMultipart
from os.path import isdir
from collections import OrderedDict
-from utils import execute_command
+from utils import get_last_completed_build_number
from errors import PresentationError
@@ -71,8 +71,10 @@ class Alerting(object):
# Implemented alerts:
self._ALERTS = ("failed-tests", )
+ self._spec = spec
+
try:
- self._spec = spec.alerting
+ self._spec_alert = spec.alerting
except KeyError as err:
raise AlertingError("Alerting is not configured, skipped.",
repr(err),
@@ -81,7 +83,7 @@ class Alerting(object):
self._path_failed_tests = spec.environment["paths"]["DIR[STATIC,VPP]"]
# Verify and validate input specification:
- self.configs = self._spec.get("configurations", None)
+ self.configs = self._spec_alert.get("configurations", None)
if not self.configs:
raise AlertingError("No alert configuration is specified.")
for config_type, config_data in self.configs.iteritems():
@@ -104,7 +106,7 @@ class Alerting(object):
raise AlertingError("Alert of type '{0}' is not implemented.".
format(config_type))
- self.alerts = self._spec.get("alerts", None)
+ self.alerts = self._spec_alert.get("alerts", None)
if not self.alerts:
raise AlertingError("No alert is specified.")
for alert, alert_data in self.alerts.iteritems():
@@ -303,8 +305,16 @@ class Alerting(object):
build, version, nr, failed_tests = \
self._get_compressed_failed_tests(alert, test_set)
if build is None:
- text += "\n\nNo data for the test set '{set}'.\n".\
- format(set=test_set)
+ ret_code, build_nr, _ = get_last_completed_build_number(
+ self._spec.environment["urls"]["URL[JENKINS,CSIT]"],
+ alert["urls"][idx].split('/')[-1])
+ if ret_code != 0:
+ build_nr = ''
+ text += "\n\nNo input data available for '{set}'. See CSIT " \
+ "build {link}/{build} for more information.\n".\
+ format(set='-'.join(test_set.split('-')[-2:]),
+ link=alert["urls"][idx],
+ build=build_nr)
continue
text += ("\n\n{topo}-{arch}, "
"{nr} tests failed, "