import json import os import sys from argparse import ArgumentParser from sdcBePy.common import logger from sdcBePy.common.properties import init_properties from sdcBePy.common.sdcBeProxy import SdcBeProxy def usage(): print(sys.argv[0], '[-s | --scheme= ] [-i | --ip=] [-p | ' '--port= ] --header=
] [-u | --user= ] [-d | ' '--debug=] [-v | --updateVersion=]') def load_be_config(conf_path): with open(conf_path, 'r', encoding='utf-8') as f: return json.load(f) def parse_param(): parser = ArgumentParser() path = os.path.dirname(__file__) parser.add_argument('--conf', default=os.path.join(path, 'data', 'beConfig.json')) parser.add_argument('--ip', "-i") parser.add_argument('--port', "-p") parser.add_argument('--header') parser.add_argument('--adminUser', "-a") parser.add_argument('--https', action='store_true') parser.add_argument('--updateVersion', action='store_false') parser.add_argument('--debug', action='store_true') parser.add_argument('--tls_cert') parser.add_argument('--tls_key') parser.add_argument('--tls_key_pw') parser.add_argument('--ca_cert') args, _ = parser.parse_known_args() return [args.conf, 'https' if args.https else 'http', args.ip, args.port, args.header, args.adminUser, args.updateVersion, args.debug, args.tls_cert, args.tls_key, args.tls_key_pw, args.ca_cert] def get_args(): print('Number of arguments:', len(sys.argv), 'arguments.') conf_path, scheme, be_host, be_port, header, admin_user, update_version, debug, tls_cert, tls_key, tls_key_pw, ca_cert = parse_param() defaults = load_be_config(conf_path) # Use defaults if param not provided by the user if be_host is None: be_host = defaults["beHost"] if be_port is None: be_port = defaults["bePort"] if admin_user is None: admin_user = defaults["adminUser"] if header is None: print('scheme =', scheme, ',be host =', be_host, ', be port =', be_port, ', user =', admin_user, ', debug =', debug, ', update_version =', update_version) else: print('scheme =', scheme, ',be host =', be_host, ', be port =', be_port, ', header =', header, ', user =', admin_user, ', debug =', debug, ', update_version =', update_version) init_properties(defaults["retryTime"], defaults["retryAttempt"], defaults["resourceLen"]) return scheme, be_host, be_port, header, admin_user, update_version, debug, tls_cert, tls_key, tls_key_pw, ca_cert def parse_and_create_proxy(): scheme, be_host, be_port, header, admin_user, update_version, debug, tls_cert, tls_key, tls_key_pw, ca_cert = get_args() if debug is False: print('Disabling debug mode') logger.debugFlag = debug try: sdc_be_proxy = SdcBeProxy(be_host, be_port, header, scheme, tls_cert, tls_key, tls_key_pw, ca_cert, admin_user, debug=debug) except AttributeError: usage() sys.exit(3) return sdc_be_proxy, update_version