import argparse import multiprocessing as mp import logging from os.path import join as join_path if __name__ == "__main__": arg_parser = argparse.ArgumentParser(prog='ucloud', description='Open Source Cloud Management Software') arg_parser.add_argument('component', choices=['api', 'scheduler', 'host', 'filescanner', 'imagescanner', 'metadata']) arg_parser.add_argument('component_args', nargs='*') args = arg_parser.parse_args() logging.basicConfig( level=logging.DEBUG, filename=join_path("logs.txt"), filemode="a", format="%(name)s %(asctime)s: %(levelname)s - %(message)s", datefmt="%d-%b-%y %H:%M:%S", ) if args.component == 'api': from api.main import main main() elif args.component == 'host': from host.main import main hostname = args.component_args mp.set_start_method('spawn') main(*hostname) elif args.component == 'scheduler': from scheduler.main import main main() elif args.component == 'filescanner': from filescanner.main import main main() elif args.component == 'imagescanner': from imagescanner.main import main main() elif args.component == 'metadata': from metadata.main import main main()