#!/usr/bin/python3 import argparse import logging from nitsi.logger import init_logging from nitsi.recipe import RecipeExeption from nitsi.test import TestException, test logger = logging.getLogger("nitsi") logger.setLevel(logging.DEBUG) # create console handler with a higher log level ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') ch.setFormatter(formatter) # add the handlers to the logger logger.addHandler(ch) def main(): parser = argparse.ArgumentParser() parser.add_argument("-d", "--directory", dest="dir") parser.add_argument("-v", "--version", help="Display version and exit", action="store_true", dest="version") args = parser.parse_args() # We just log the version and exit if args.version: logger.info("nitsi version: {}".format("@PACKAGE_VERSION@")) return 0 # For all other stuff we need logging to a file log_dir = init_logging(args.dir) # We now going to log everything to log_dir/genaral.log fh = logging.FileHandler("{}/general.log".format(log_dir)) fh.setLevel(logging.DEBUG) logger.addHandler(fh) logger.debug("We now logging everything to {}/general.log".format(log_dir)) # here we run a test try: currenttest = test(args.dir, log_dir) currenttest.read_settings() currenttest.virtual_environ_setup() currenttest.load_recipe() except RecipeExeption as e: logger.exception(e) return 2 try: currenttest.virtual_environ_start() currenttest.run_recipe() except TestException as e: logger.exception(e) return 1 except BaseException as e: logger.exception(e) return 3 finally: currenttest.virtual_environ_stop() return 0 if __name__ == "__main__": return_value = main() logger.debug("Return value of main is: {}".format(return_value)) exit(return_value)