CSIT-1483: Add processing of output_info.xml as the first choice
[csit.git] / resources / tools / presentation / pal.py
index a6b4d58..dfed6b3 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:
@@ -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,10 +49,10 @@ def parse_args():
                         default="master",
                         type=str,
                         help="Release string of the product.")
-    parser.add_argument("-v", "--version",
-                        default="0.1",
+    parser.add_argument("-w", "--week",
+                        default="1",
                         type=str,
-                        help="Version of the product.")
+                        help="Calendar week when the report is published.")
     parser.add_argument("-l", "--logging",
                         choices=["DEBUG", "INFO", "WARNING",
                                  "ERROR", "CRITICAL"],
@@ -100,25 +101,36 @@ def main():
         prepare_static_content(spec)
 
         data = InputData(spec)
-        data.download_and_parse_data(repeat=2)
+        data.download_and_parse_data(repeat=1)
 
         generate_tables(spec, data)
         generate_plots(spec, data)
         generate_files(spec, data)
 
         if spec.output["output"] == "report":
-            generate_report(args.release, spec, args.version)
+            generate_report(args.release, spec, args.week)
             logging.info("Successfully finished.")
         elif spec.output["output"] == "CPTA":
             sys.stdout.write(generate_cpta(spec, data))
+            try:
+                alert = Alerting(spec)
+                alert.generate_alerts()
+            except AlertingError as err:
+                logging.warning(repr(err))
             logging.info("Successfully finished.")
         ret_code = 0
 
-    except (KeyError, ValueError, PresentationError) as err:
-        logging.info("Finished with an error.")
+    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("Finished with an unexpected error.")
         logging.critical(repr(err))
     finally:
         if spec is not None: