1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
from importNormativeTypes import *
################################################################################################################################################################################################
# #
# Upgrades all Heat and Normative types confiugred in "typesToUpgrade.json" file #
# #
# activation #
# python upgradeHeatAndNormativeTypes.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ] #
# #
# shortest activation (be host = localhost, be port = 8080): #
# python upgradeHeatAndNormativeTypes.py [-f <input file> | --ifile=<input file> ] #
# #
################################################################################################################################################################################################
def upgradeOnapTypesPerConfigFile(scheme, be_host, be_port, admin_user, base_dir, update_version):
response_codes = [200, 201]
results = []
if update_version == 'false':
response_codes = [200, 201, 409]
with open("onapTypesToUpgrade.json", 'r') as stream:
try:
types = json.load(stream)
onap_types = types["onap"]
debug(onap_types)
onap_file_dir = base_dir + "onap-types/"
debug(onap_file_dir)
for onap_type in onap_types:
result = createNormativeType(scheme, be_host, be_port, admin_user, onap_file_dir,
onap_type.encode('ascii', 'ignore'), update_version)
results.append(result)
if result[1] is None or result[1] not in response_codes:
print "Failed creating onap type " + onap_type + ". " + str(result[1])
except Exception as exc:
print(exc)
return results
def main(argv):
print 'Number of arguments:', len(sys.argv), 'arguments.'
be_host = 'localhost'
be_port = '8080'
admin_user = 'jh0003'
update_version = 'true'
scheme = 'http'
try:
opts, args = getopt.getopt(argv, "i:p:u:v:h:s:", ["ip=", "port=", "user=", "updateversion=", "scheme="])
except getopt.GetoptError:
usage()
error_and_exit(2, 'Invalid input')
for opt, arg in opts:
# print opt, arg
if opt == '-h':
usage()
sys.exit(3)
elif opt in ("-i", "--ip"):
be_host = arg
elif opt in ("-p", "--port"):
be_port = arg
elif opt in ("-u", "--user"):
admin_user = arg
elif opt in ("-s", "--scheme"):
scheme = arg
elif opt in ("-v", "--updateversion"):
if arg.lower() == "false" or arg.lower() == "no":
update_version = 'false'
print 'scheme =', scheme, ', be host =', be_host, ', be port =', be_port, ', user =', admin_user
if be_host is None:
usage()
sys.exit(3)
results = upgradeOnapTypesPerConfigFile(scheme, be_host, be_port, admin_user, "../../../import/tosca/",
update_version)
print "-----------------------------"
for result in results:
print "{0:20} | {1:6}".format(result[0], result[1])
print "-----------------------------"
response_codes = [200, 201]
if update_version == 'false':
response_codes = [200, 201, 409]
failed_normatives = filter(lambda x: x[1] is None or x[1] not in response_codes, results)
if len(list(failed_normatives)) > 0:
error_and_exit(1, None)
else:
error_and_exit(0, None)
if __name__ == "__main__":
main(sys.argv[1:])
|