re base code
[sdc.git] / catalog-be / src / main / resources / scripts / import / tosca / importHeatTypes1.py
1 import pycurl
2 import sys, getopt
3 from StringIO import StringIO
4 import json
5 import copy
6 from importCommon import *
7 from importNormativeTypes import *
8 import importCommon
9
10 #####################################################################################################################################################################################
11 #                                                                                                                                                                                                                                                                                                                                                               #
12 # Import heat types                                                                                                                                                                                                                                                                                                                                     #
13 #                                                                                                                                                                                                                                                                                                                                                                       #
14 # activation :                                                                                                                                                                                                                                                                                                                                          #
15 #       python importHeatTypes1.py [-s <scheme> | --scheme=<scheme> ] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <input file> | --ifile=<input file> ]      #
16 #                                                                                                                                                                                                                                                                                                                                                                       #
17 # shortest activation (be host = localhost, be port = 8080):                                                                                                                                                                                                                                            #
18 #               python importHeatTypes1.py [-f <input file> | --ifile=<input file> ]                                                                                                                                                                                                    #
19 #                                                                                                                                                                                                                                                                                                                                                               #
20 #####################################################################################################################################################################################
21
22 def importHeatTypes1(scheme, beHost, bePort, adminUser, fileDir, updateversion):
23         
24         heatTypes = ["extCp"]
25                 
26         responseCodes = [200, 201]
27                 
28         if(updateversion == 'false'):
29                 responseCodes = [200, 201, 409]
30                 
31         results = []
32         for heatType in heatTypes:
33                 result = createNormativeType(scheme, beHost, bePort, adminUser, fileDir, heatType, updateversion)
34                 results.append(result)
35                 if ( result[1] == None or result[1] not in responseCodes) :
36                         print "Failed creating heat type " + heatType + ". " + str(result[1])                           
37         return results  
38
39
40 def main(argv):
41         print 'Number of arguments:', len(sys.argv), 'arguments.'
42
43         beHost = 'localhost' 
44         bePort = '8080'
45         adminUser = 'jh0003'
46         updateversion = 'true'
47         scheme = 'http'
48         
49         try:
50                 opts, args = getopt.getopt(argv,"i:p:u:v:h:s:",["ip=","port=","user=","updateversion=","scheme="])
51         except getopt.GetoptError:
52                 usage()
53                 error_and_exit(2, 'Invalid input')
54                  
55         for opt, arg in opts:
56         #print opt, arg
57                 if opt == '-h':
58                         usage()                        
59                         sys.exit(3)
60                 elif opt in ("-i", "--ip"):
61                         beHost = arg
62                 elif opt in ("-p", "--port"):
63                         bePort = arg
64                 elif opt in ("-u", "--user"):
65                         adminUser = arg
66                 elif opt in ("-s", "--scheme"):
67                         scheme = arg
68                 elif opt in ("-v", "--updateversion"):
69                         if (arg.lower() == "false" or arg.lower() == "no"):
70                                 updateversion = 'false'
71
72         print 'scheme =',scheme,', be host =',beHost,', be port =', bePort,', user =', adminUser
73         
74         if ( beHost == None ):
75                 usage()
76                 sys.exit(3)
77
78         results = importHeatTypes1(scheme, beHost, bePort, adminUser, "../../../import/tosca/heat-types/", updateversion)
79
80         print "-----------------------------"
81         for result in results:
82                 print "{0:20} | {1:6}".format(result[0], result[1])
83         print "-----------------------------"
84         
85         responseCodes = [200, 201]
86         
87         if(updateversion == 'false'):
88                 responseCodes = [200, 201, 409]
89         
90         failedNormatives = filter(lambda x: x[1] == None or x[1] not in responseCodes, results)
91         if (len(failedNormatives) > 0):
92                 error_and_exit(1, None)
93         else:
94                 error_and_exit(0, None)
95
96
97 if __name__ == "__main__":
98         main(sys.argv[1:])
99
100