Sync Integ to Master
[sdc.git] / catalog-be / src / main / resources / scripts / import / tosca / upgradeHeatTypes1707.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 all users from a given file                                                                                                                                                                                                                                                                                    #
13 #                                                                                                                                                                                                                                                                                                                                                               #
14 # activation :                                                                                                                                                                                                                                                                                                                                  #
15 #       python importUsers.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 importUsers.py [-f <input file> | --ifile=<input file> ]                                                                                                                                                                                                         #
19 #                                                                                                                                                                                                                                                                                                                                                       #
20 #################################################################################################################################################################################
21
22 def upgradeHeatTypes1707(scheme, beHost, bePort, adminUser, fileDir, updateversion):
23         
24         heatTypes = [ "volume",
25                                   "cinderVolume",
26                                   "extVl",
27                                   "extCp",
28                                   "Generic_VFC", 
29                                   "Generic_VF",
30                                   "Generic_PNF",
31                                   "Generic_Service",
32                                   "globalPort",
33                                   "globalNetwork",
34                                   "contrailV2VirtualMachineInterface",
35                                   "contrailV2VLANSubInterface",
36                                   "contrailPort",
37                                   "contrailV2VirtualNetwork",
38                                   "contrailVirtualNetwork",
39                                   "neutronNet",
40                                   "neutronPort",
41                                   "multiFlavorVFC",
42                                   "vnfConfiguration"
43                                   ]
44                 
45         responseCodes = [200, 201]
46                 
47         if(updateversion == 'false'):
48                 responseCodes = [200, 201, 409]
49                 
50         results = []
51         for heatType in heatTypes:
52                 result = createNormativeType(scheme, beHost, bePort, adminUser, fileDir, heatType, updateversion)
53                 results.append(result)
54                 if ( result[1] == None or result[1] not in responseCodes) :
55                         print "Failed creating heat type " + heatType + ". " + str(result[1])                           
56         return results  
57
58
59 def main(argv):
60         print 'Number of arguments:', len(sys.argv), 'arguments.'
61
62         beHost = 'localhost' 
63         bePort = '8080'
64         adminUser = 'jh0003'
65         updateversion = 'true'
66         scheme = 'http'
67
68         try:
69                 opts, args = getopt.getopt(argv,"i:p:u:v:h:s:",["ip=","port=","user=","updateversion=","scheme="])
70         except getopt.GetoptError:
71                 usage()
72                 errorAndExit(2, 'Invalid input')
73                  
74         for opt, arg in opts:
75         #print opt, arg
76                 if opt == '-h':
77                         usage()                        
78                         sys.exit(3)
79                 elif opt in ("-i", "--ip"):
80                         beHost = arg
81                 elif opt in ("-p", "--port"):
82                         bePort = arg
83                 elif opt in ("-u", "--user"):
84                         adminUser = arg
85                 elif opt in ("-s", "--scheme"):
86                         scheme = arg
87                 elif opt in ("-v", "--updateversion"):
88                         if (arg.lower() == "false" or arg.lower() == "no"):
89                                 updateversion = 'false'
90
91         print 'scheme =',scheme,', be host =',beHost,', be port =', bePort,', user =', adminUser
92         
93         if ( beHost == None ):
94                 usage()
95                 sys.exit(3)
96
97         results = upgradeHeatTypes1707(scheme, beHost, bePort, adminUser, "../../../import/tosca/heat-types/", updateversion)
98
99         print "-----------------------------"
100         for result in results:
101                 print "{0:20} | {1:6}".format(result[0], result[1])
102         print "-----------------------------"
103         
104         responseCodes = [200, 201]
105         
106         if(updateversion == 'false'):
107                 responseCodes = [200, 201, 409]
108         
109         failedNormatives = filter(lambda x: x[1] == None or x[1] not in responseCodes, results)
110         if (len(failedNormatives) > 0):
111                 errorAndExit(1, None)
112         else:
113                 errorAndExit(0, None)
114
115
116 if __name__ == "__main__":
117         main(sys.argv[1:])
118
119