35 lines
891 B
Python
Executable file
35 lines
891 B
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
import argparse
|
|
import logging
|
|
import importlib
|
|
|
|
# For the exception
|
|
import decouple
|
|
import sys
|
|
|
|
COMMANDS = ['api', 'scheduler', 'host', 'filescanner', 'imagescanner', 'metadata']
|
|
|
|
if __name__ == "__main__":
|
|
log = logging.getLogger("ucloud")
|
|
|
|
arg_parser = argparse.ArgumentParser(prog='ucloud',
|
|
description='Open Source Cloud Management Software')
|
|
arg_parser.add_argument('component', choices=COMMANDS)
|
|
arg_parser.add_argument('component_args', nargs='*')
|
|
args = arg_parser.parse_args()
|
|
|
|
try:
|
|
name = args.component
|
|
|
|
mod = importlib.import_module("ucloud.{}.main".format(name))
|
|
main = getattr(mod, "main")
|
|
main()
|
|
|
|
except decouple.UndefinedValueError as e:
|
|
print(e)
|
|
sys.exit(1)
|
|
|
|
except Exception as e:
|
|
logging.exception(e)
|
|
print(e)
|