Decouple TXT Report file writing and formatting logic (6/6)
[sdc.git] / catalog-be / src / main / resources / scripts / import / tosca / importOnapTypes.py
1 from importNormativeTypes import *
2
3
4 #####################################################################################################################################################################################################
5 #                                                                                                                                                                                                                                                                                                                                                                                               #       
6 # Import all users from a given file                                                                                                                                                                                                                                                                                                                            #
7 #                                                                                                                                                                                                                                                                                                                                                                                                       #               
8 # activation :                                                                                                                                                                                                                                                                                                                                                                          #
9 #       python importUsers.py [optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ] #
10 #                                                                                                                                                                                                                                                                                                                                                                                                       #                       
11 # shortest activation (be host = localhost, be port = 8080):                                                                                                                                                                                                                                                                            #
12 #               python importUsers.py [-f <input file> | --ifile=<input file> ]                                                                                                                                                                                                                                                 #
13 #                                                                                                                                                                                                                                                                                                                                                                                               #       
14 #####################################################################################################################################################################################################
15
16 def importOnapTypes(scheme, be_host, be_port, admin_user, file_dir, update_version):
17     # Add desired type names to the list
18     onap_types = []
19
20     response_codes = [200, 201]
21
22     if update_version == 'false':
23         response_codes = [200, 201, 409]
24
25     results = []
26     for onap_type in onap_types:
27         result = createNormativeType(scheme, be_host, be_port, admin_user, file_dir, onap_type, update_version)
28         results.append(result)
29         if result[1] is None or result[1] not in response_codes:
30             print "Failed creating heat type " + onap_type + ". " + str(result[1])
31     return results
32
33
34 def main(argv):
35     print 'Number of arguments:', len(sys.argv), 'arguments.'
36
37     be_host = 'localhost'
38     be_port = '8080'
39     admin_user = 'jh0003'
40     update_version = 'true'
41     scheme = 'http'
42
43     try:
44         opts, args = getopt.getopt(argv, "i:p:u:v:h:", ["ip=", "port=", "user=", "update_version="])
45     except getopt.GetoptError:
46         usage()
47         error_and_exit(2, 'Invalid input')
48
49     for opt, arg in opts:
50         # print opt, arg
51         if opt == '-h':
52             usage()
53             sys.exit(3)
54         elif opt in ("-i", "--ip"):
55             be_host = arg
56         elif opt in ("-p", "--port"):
57             be_port = arg
58         elif opt in ("-u", "--user"):
59             admin_user = arg
60         elif opt in ("-s", "--scheme"):
61             scheme = arg
62         elif opt in ("-v", "--update_version"):
63             if arg.lower() == "false" or arg.lower() == "no":
64                 update_version = 'false'
65
66     print 'scheme =', scheme, ',be host =', be_host, ', be port =', be_port, ', user =', admin_user
67
68     if be_host is None:
69         usage()
70         sys.exit(3)
71
72     results = importOnapTypes(scheme, be_host, be_port, admin_user, "../../../import/tosca/onap-types/", update_version)
73
74     print "-----------------------------"
75     for result in results:
76         print "{0:20} | {1:6}".format(result[0], result[1])
77     print "-----------------------------"
78
79     response_codes = [200, 201]
80
81     if update_version == 'false':
82         response_codes = [200, 201, 409]
83
84     failed_normatives = filter(lambda x: x[1] is None or x[1] not in response_codes, results)
85     if len(list(failed_normatives)) > 0:
86         error_and_exit(1, None)
87     else:
88         error_and_exit(0, None)
89
90
91 if __name__ == "__main__":
92     main(sys.argv[1:])