b3cf8828ca1db70c05bb573c43cd6dc8370a1564
[sdc.git] / catalog-be / src / main / resources / scripts / sdcBePy / tosca / main.py
1 import json
2 import os
3 import sys
4 from argparse import ArgumentParser
5
6 from sdcBePy.common import logger
7 from sdcBePy.common.properties import init_properties
8 from sdcBePy.common.sdcBeProxy import SdcBeProxy
9
10
11 def usage():
12     print(sys.argv[0],
13           '[-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | '
14           '--port=<be port> ] --header=<header> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | '
15           '--debug=<true|false>] [-v <true|false> | --updateVersion=<true|false>]')
16
17
18 def load_be_config(conf_path):
19     with open(conf_path, 'r', encoding='utf-8') as f:
20         return json.load(f)
21
22
23 def parse_param():
24     parser = ArgumentParser()
25
26     path = os.path.dirname(__file__)
27     parser.add_argument('--conf', default=os.path.join(path, 'data', 'beConfig.json'))
28
29     parser.add_argument('--ip', "-i")
30     parser.add_argument('--port', "-p")
31     parser.add_argument('--header')
32     parser.add_argument('--adminUser', "-a")
33     parser.add_argument('--https', action='store_true')
34     parser.add_argument('--updateVersion', action='store_false')
35     parser.add_argument('--debug', action='store_true')
36
37     args, _ = parser.parse_known_args()
38
39     return [args.conf, 'https' if args.https else 'http',
40             args.ip, args.port, args.header, args.adminUser, args.updateVersion,
41             args.debug]
42
43
44 def get_args():
45     print('Number of arguments:', len(sys.argv), 'arguments.')
46
47     conf_path, scheme, be_host, be_port, header, admin_user, update_version, debug = parse_param()
48     defaults = load_be_config(conf_path)
49
50     # Use defaults if param not provided by the user
51     if be_host is None:
52         be_host = defaults["beHost"]
53     if be_port is None:
54         be_port = defaults["bePort"]
55     if admin_user is None:
56         admin_user = defaults["adminUser"]
57
58     if header is None:
59         print('scheme =', scheme, ',be host =', be_host, ', be port =', be_port, ', user =', admin_user,
60           ', debug =', debug, ', update_version =', update_version)
61     else:
62         print('scheme =', scheme, ',be host =', be_host, ', be port =', be_port, ', header =', header, ', user =', admin_user,
63               ', debug =', debug, ', update_version =', update_version)
64
65     init_properties(defaults["retryTime"], defaults["retryAttempt"], defaults["resourceLen"])
66     return scheme, be_host, be_port, header, admin_user, update_version, debug
67
68
69 def parse_and_create_proxy():
70     scheme, be_host, be_port, header, admin_user, update_version, debug = get_args()
71
72     if debug is False:
73         print('Disabling debug mode')
74         logger.debugFlag = debug
75
76     try:
77         sdc_be_proxy = SdcBeProxy(be_host, be_port, header, scheme, admin_user, debug=debug)
78     except AttributeError:
79         usage()
80         sys.exit(3)
81
82     return sdc_be_proxy, update_version
83