Trending: Align the content of old and new dirs
[csit.git] / resources / tools / presentation / generator_alerts.py
index 71913eb..83dfe2e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
+# Copyright (c) 2019 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -18,6 +18,7 @@ from email.mime.text import MIMEText
 from email.mime.multipart import MIMEMultipart
 from os.path import isdir
 
+from utils import execute_command
 from errors import PresentationError
 
 
@@ -69,7 +70,13 @@ class Alerting(object):
         # Implemented alerts:
         self._ALERTS = ("failed-tests", )
 
-        self._spec = spec.alerting
+        try:
+            self._spec = spec.alerting
+        except KeyError as err:
+            raise  AlertingError("Alerting is not configured, skipped.",
+                                 repr(err),
+                                 "WARNING")
+
         self._path_failed_tests = spec.environment["paths"]["DIR[STATIC,VPP]"]
 
         # Verify and validate input specification:
@@ -262,6 +269,16 @@ class Alerting(object):
             except IOError:
                 logging.error("Not possible to write the file '{0}.html'.".
                               format(file_name))
+
+            zip_file = config.get("zip-output", None)
+            if zip_file:
+                logging.info("Writing the file '{0}/{1}' ...".
+                             format(config["output-dir"], zip_file))
+                execute_command("tar czvf {dir}/{zip} --directory={dir} "
+                                "{input}.txt {input}.html".
+                                format(dir=config["output-dir"],
+                                       zip=zip_file,
+                                       input=config["output-file"]))
         else:
             raise AlertingError("Alert of type '{0}' is not implemented.".
                                 format(alert["type"]))