forked from uncloud/uncloud
		
	
		
			
				
	
	
		
			33 lines
		
	
	
	
		
			937 B
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			937 B
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
#!/usr/bin/env python3
 | 
						|
 | 
						|
import argparse
 | 
						|
import logging
 | 
						|
import importlib
 | 
						|
import sys
 | 
						|
import os
 | 
						|
 | 
						|
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('-c', '--conf-dir', help="Configuration directory")
 | 
						|
    arg_parser.add_argument('component', choices=COMMANDS)
 | 
						|
    arg_parser.add_argument('component_args', nargs='*')
 | 
						|
    args = arg_parser.parse_args()
 | 
						|
 | 
						|
    if args.conf_dir:
 | 
						|
        os.environ['UCLOUD_CONF_DIR'] = args.conf_dir
 | 
						|
 | 
						|
    try:
 | 
						|
        name = args.component
 | 
						|
        mod = importlib.import_module("ucloud.{}.main".format(name))
 | 
						|
        main = getattr(mod, "main")
 | 
						|
 | 
						|
        main()
 | 
						|
 | 
						|
    except Exception as e:
 | 
						|
        logging.exception(e)
 | 
						|
        print(e)
 |