Decouple TXT Report file writing and formatting logic (6/6)
[sdc.git] / catalog-be / src / main / resources / scripts / import / tosca / upgradeONAPNormative.py
1 import os
2 import time
3 from importCategoryTypes import importCategories
4 from upgradeHeatAndNormativeTypes import upgradeTypesPerConfigFile
5 from importDataTypes import importDataTypes
6 from importPolicyTypes import importPolicyTypes
7 from importGroupTypes import importGroupTypes
8 from importNormativeCapabilities import importNormativeCapabilities
9 from importNormativeRelationships import importNormativeRelationships
10 from importNormativeInterfaceLifecycleTypes import importNormativeInterfaceLifecycleType
11 from upgradeNfvTypes import upgradeNfvTypesPerConfigFile
12 from upgradeONAPTypes import upgradeOnapTypesPerConfigFile
13 from upgradeSolTypes import upgradeSolTypesPerConfigFile
14
15 from importCommon import *
16 import importCommon
17
18
19 #################################################################################################################################################################################################
20 #                                                                                                                                                                                                                                                                                                                                                                                       #
21 # Upgrades the normative types                                                                                                                                                                                                                                                                                                                                  #
22 #                                                                                                                                                                                                                                                                                                                                                                                               #
23 # activation :                                                                                                                                                                                                                                                                                                                                                                  #
24 #       python upgradeNormative.py [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user userId> ] [-d <true|false> | --debug=<true|false>]               #
25 #                                                                                                                                                                                                                                                                                                                                                                                               #
26 #                                                                                                                                                                                                                                                                                                                                                                                               #
27 # shortest activation (be host = localhost, be port = 8080, user = jh0003):                                                                                                                                                                                                                                     #
28 #               python upgradeNormative.py                                                                                                                                                                                                                                                                                                                      #
29 #                                                                                                                                                                                                                                                                                                                                                                                       #
30 #################################################################################################################################################################################################
31
32 def usage():
33     print sys.argv[
34         0], '[-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-u <user userId> | --user=<user ' \
35             'userId> ] [-d <true|false> | --debug=<true|false>] '
36
37
38 def handle_results(results):
39     if results is not None:
40         print_frame_line()
41         for result in results:
42             print_name_and_return_code(result[0], result[1])
43
44         print_frame_line()
45
46         failed_results = filter(lambda x: x[1] is None or x[1] not in [200, 201, 409], results)
47         if len(failed_results) > 0:
48             error_and_exit(1, None)
49
50
51 def main(argv):
52     print 'Number of arguments:', len(sys.argv), 'arguments.'
53
54     be_host = 'localhost'
55     be_port = '8080'
56     admin_user = 'jh0003'
57     is_debug = None
58     update_version = 'true'
59     update_onap_version = 'false'
60     importCommon.debugFlag = False
61     scheme = 'http'
62
63     try:
64         opts, args = getopt.getopt(argv, "i:p:u:d:v:h:s",
65                                    ["scheme=", "ip=", "port=", "user=", "debug=", "updateversion="])
66     except getopt.GetoptError:
67         usage()
68         error_and_exit(2, 'Invalid input')
69
70     for opt, arg in opts:
71         # print opt, arg
72         if opt == '-h':
73             usage()
74             sys.exit(3)
75         elif opt in ("-i", "--ip"):
76             be_host = arg
77         elif opt in ("-p", "--port"):
78             be_port = arg
79         elif opt in ("-u", "--user"):
80             admin_user = arg
81         elif opt in ("-s", "--scheme"):
82             scheme = arg
83         elif opt in ("-d", "--debug"):
84             print arg
85             is_debug = bool(arg.lower() == "true" or arg.lower() == "yes")
86
87     print 'scheme =', scheme, ',be host =', be_host, ', be port =', be_port, ', user =', admin_user, ', debug =', is_debug
88
89     if is_debug is not None:
90         print 'set debug mode to ' + str(is_debug)
91         importCommon.debugFlag = is_debug
92
93     if be_host is None:
94         usage()
95         sys.exit(3)
96
97     print sys.argv[0]
98     pathdir = os.path.dirname(os.path.realpath(sys.argv[0]))
99     debug("path dir =" + pathdir)
100
101     base_file_location = pathdir + "/../../../import/tosca/"
102
103     file_location = base_file_location + "categories/"
104     importCategories(scheme, be_host, be_port, admin_user, False, file_location)
105
106     file_location = base_file_location + "relationship-types/"
107     importNormativeRelationships(scheme, be_host, be_port, admin_user, False, file_location)
108
109     file_location = base_file_location + "data-types/"
110     importDataTypes(scheme, be_host, be_port, admin_user, False, file_location)
111
112     file_location = base_file_location + "policy-types/"
113     importPolicyTypes(scheme, be_host, be_port, admin_user, False, file_location)
114
115     file_location = base_file_location + "group-types/"
116     importGroupTypes(scheme, be_host, be_port, admin_user, False, file_location)
117
118     file_location = base_file_location + "capability-types/"
119     importNormativeCapabilities(scheme, be_host, be_port, admin_user, False, file_location)
120
121     file_location = base_file_location + "interface-lifecycle-types/"
122     importNormativeInterfaceLifecycleType(scheme, be_host, be_port, admin_user, False, file_location)
123
124     print 'sleep until data type cache is updated'
125     time.sleep(70)
126
127     results_heat = upgradeTypesPerConfigFile(scheme, be_host, be_port, admin_user, base_file_location, update_version)
128     handle_results(results_heat)
129
130     results_heat = upgradeNfvTypesPerConfigFile(scheme, be_host, be_port, admin_user, base_file_location,
131                                                 update_onap_version)
132     handle_results(results_heat)
133
134     results_heat = upgradeOnapTypesPerConfigFile(scheme, be_host, be_port, admin_user, base_file_location,
135                                                  update_onap_version)
136     handle_results(results_heat)
137
138     results_heat = upgradeSolTypesPerConfigFile(scheme, be_host, be_port, admin_user, base_file_location,
139                                                 update_onap_version)
140     handle_results(results_heat)
141
142     error_and_exit(0, None)
143
144
145 if __name__ == "__main__":
146     main(sys.argv[1:])