simplify main script

This commit is contained in:
Nico Schottelius 2019-12-08 12:28:25 +01:00
parent 9517e73233
commit cfb09c29de

View file

@ -1,49 +1,34 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import argparse import argparse
import multiprocessing as mp
import logging import logging
import importlib
from os.path import join as join_path # For the exception
from ucloud.sanity_checks import check import decouple
import sys
COMMANDS = ['api', 'scheduler', 'host', 'filescanner', 'imagescanner', 'metadata']
if __name__ == "__main__": if __name__ == "__main__":
log = logging.getLogger("ucloud")
arg_parser = argparse.ArgumentParser(prog='ucloud', arg_parser = argparse.ArgumentParser(prog='ucloud',
description='Open Source Cloud Management Software') description='Open Source Cloud Management Software')
arg_parser.add_argument('component', arg_parser.add_argument('component', choices=COMMANDS)
choices=['api', 'scheduler', 'host',
'filescanner', 'imagescanner',
'metadata'])
arg_parser.add_argument('component_args', nargs='*') arg_parser.add_argument('component_args', nargs='*')
args = arg_parser.parse_args() args = arg_parser.parse_args()
try: try:
if args.component == 'api': name = args.component
from ucloud.api.main import main
main() mod = importlib.import_module("ucloud.{}.main".format(name))
elif args.component == 'host': main = getattr(mod, "main")
from ucloud.host.main import main main()
hostname = args.component_args except decouple.UndefinedValueError as e:
mp.set_start_method('spawn') print(e)
main(*hostname) sys.exit(1)
elif args.component == 'scheduler':
from ucloud.scheduler.main import main
main()
elif args.component == 'filescanner':
from ucloud.filescanner.main import main
main()
elif args.component == 'imagescanner':
from ucloud.imagescanner.main import main
main()
elif args.component == 'metadata':
from ucloud.metadata.main import main
main()
except Exception as e: except Exception as e:
logging.exception(e) logging.exception(e)