CSIT-1131: Alerting
[csit.git] / resources / tools / presentation / pal.py
index 1ccefd3..72493cb 100644 (file)
@@ -28,6 +28,7 @@ from generator_files import generate_files
 from static_content import prepare_static_content
 from generator_report import generate_report
 from generator_CPTA import generate_cpta
+from generator_alerts import Alerting, AlertingError
 
 
 def parse_args():
@@ -48,6 +49,10 @@ def parse_args():
                         default="master",
                         type=str,
                         help="Release string of the product.")
+    parser.add_argument("-v", "--version",
+                        default="0.1",
+                        type=str,
+                        help="Version of the product.")
     parser.add_argument("-l", "--logging",
                         choices=["DEBUG", "INFO", "WARNING",
                                  "ERROR", "CRITICAL"],
@@ -96,26 +101,34 @@ def main():
         prepare_static_content(spec)
 
         data = InputData(spec)
-        data.download_and_parse_data()
+        data.download_and_parse_data(repeat=2)
 
         generate_tables(spec, data)
         generate_plots(spec, data)
         generate_files(spec, data)
 
         if spec.output["output"] == "report":
-            generate_report(args.release, spec)
+            generate_report(args.release, spec, args.version)
             logging.info("Successfully finished.")
         elif spec.output["output"] == "CPTA":
             sys.stdout.write(generate_cpta(spec, data))
+            alert = Alerting(spec)
+            alert.generate_alerts()
             logging.info("Successfully finished.")
         ret_code = 0
 
-    except (KeyError, ValueError, PresentationError) as err:
-        logging.info("Finished with an error.")
-        logging.critical(str(err))
+    except AlertingError as err:
+        logging.critical("Finished with an alerting error.")
+        logging.critical(repr(err))
+    except PresentationError as err:
+        logging.critical("Finished with an PAL error.")
+        logging.critical(repr(err))
+    except (KeyError, ValueError) as err:
+        logging.critical("Finished with an error.")
+        logging.critical(repr(err))
     except Exception as err:
-        logging.info("Finished with an unexpected error.")
-        logging.critical(str(err))
+        logging.critical("Finished with an unexpected error.")
+        logging.critical(repr(err))
     finally:
         if spec is not None:
             clean_environment(spec.environment)