Refactoring the sdc-BE-init python scripts
[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
7 def usage():
8     print(sys.argv[0],
9           '[-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | '
10           '--port=<be port> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | '
11           '--debug=<true|false>] [-v <true|false> | --updateVersion=<true|false>]')
12
13
14 def load_be_config(conf_path):
15     with open(conf_path, 'r') as f:
16         return json.load(f)
17
18
19 def parse_param():
20     parser = ArgumentParser()
21
22     path = os.path.dirname(__file__)
23     parser.add_argument('--conf', default=os.path.join(path, 'data', 'beConfig.json'))
24
25     parser.add_argument('--ip', "-i")
26     parser.add_argument('--port', "-p")
27     parser.add_argument('--adminUser', "-a")
28     parser.add_argument('--https', action='store_true')
29     parser.add_argument('--updateVersion', action='store_false')
30     parser.add_argument('--debug', action='store_true')
31
32     args, _ = parser.parse_known_args()
33
34     return [args.conf, 'https' if args.https else 'http',
35             args.ip, args.port, args.adminUser, args.updateVersion,
36             args.debug]
37
38
39 def get_args():
40     print('Number of arguments:', len(sys.argv), 'arguments.')
41
42     conf_path, scheme, be_host, be_port, admin_user, update_version, debug = parse_param()
43     defaults = load_be_config(conf_path)
44
45     # Use defaults if param not provided by the user
46     if be_host is None:
47         be_host = defaults["beHost"]
48     if be_port is None:
49         be_port = defaults["bePort"]
50     if admin_user is None:
51         admin_user = defaults["adminUser"]
52
53     print('scheme =', scheme, ',be host =', be_host, ', be port =', be_port, ', user =', admin_user,
54           ', debug =', debug, ', update_version =', update_version)
55
56     return scheme, be_host, be_port, admin_user, update_version, debug