+++ /dev/null
-# Copyright (c) 2017 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:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""CSIT Presentation and analytics layer.
-"""
-
-import sys
-import argparse
-import logging
-
-from errors import PresentationError
-from environment import Environment, clean_environment
-from specification_parser import Specification
-from input_data_files import download_data_files, unzip_files
-from input_data_parser import InputData
-from generator_tables import generate_tables
-from generator_plots import generate_plots
-from generator_files import generate_files
-from static_content import prepare_static_content
-from generator_report import generate_report
-
-
-def parse_args():
- """Parse arguments from cmd line.
-
- :returns: Parsed arguments.
- :rtype: ArgumentParser
- """
-
- parser = argparse.ArgumentParser(description=__doc__,
- formatter_class=argparse.
- RawDescriptionHelpFormatter)
- parser.add_argument("-s", "--specification",
- required=True,
- type=argparse.FileType('r'),
- help="Specification YAML file.")
- parser.add_argument("-r", "--release",
- default="master",
- type=str,
- help="Release string of the product.")
- parser.add_argument("-l", "--logging",
- choices=["DEBUG", "INFO", "WARNING",
- "ERROR", "CRITICAL"],
- default="ERROR",
- help="Logging level.")
- parser.add_argument("-f", "--force",
- action='store_true',
- help="Force removing the old build(s) if present.")
-
- return parser.parse_args()
-
-
-def main():
- """Main function."""
-
- log_levels = {"NOTSET": logging.NOTSET,
- "DEBUG": logging.DEBUG,
- "INFO": logging.INFO,
- "WARNING": logging.WARNING,
- "ERROR": logging.ERROR,
- "CRITICAL": logging.CRITICAL}
-
- args = parse_args()
- logging.basicConfig(format='%(asctime)s: %(levelname)s: %(message)s',
- datefmt='%Y/%m/%d %H:%M:%S',
- level=log_levels[args.logging])
-
- logging.info("Application started.")
- try:
- spec = Specification(args.specification)
- spec.read_specification()
- except PresentationError:
- logging.critical("Finished with error.")
- sys.exit(1)
-
- try:
- env = Environment(spec.environment, args.force)
- env.set_environment()
-
- if spec.is_debug:
- if spec.debug["input-format"] == "zip":
- unzip_files(spec)
- else:
- download_data_files(spec)
-
- prepare_static_content(spec)
-
- data = InputData(spec)
- data.read_data()
-
- generate_tables(spec, data)
- generate_plots(spec, data)
- generate_files(spec, data)
- generate_report(args.release, spec)
-
- logging.info("Successfully finished.")
-
- except (KeyError, ValueError, PresentationError) as err:
- logging.info("Finished with an error.")
- logging.critical(str(err))
- except Exception as err:
- logging.info("Finished with an unexpected error.")
- logging.critical(str(err))
-
- finally:
- if spec is not None and not spec.is_debug:
- clean_environment(spec.environment)
- sys.exit(1)
-
-
-if __name__ == '__main__':
- main()