Sync Integ to Master
[sdc.git] / catalog-be / src / main / resources / scripts / import / tosca / importOnapTypes.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 [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> ] #
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 importOnapTypes(scheme, beHost, bePort, adminUser, fileDir, updateversion):
23         
24         onapTypes = [ "extImageFile",
25                       "extLocalStorage",
26                       "extZteCP",
27                       "extZteVDU",
28                       "extZteVL",
29                       "NSD",
30                                   "VDU",
31                       "vduCompute",
32                                   "vduCpd",
33                                   "vduVirtualStorage",
34                                   "vnfVirtualLinkDesc"
35                                   ]
36                 
37         responseCodes = [200, 201]
38                 
39         if(updateversion == 'false'):
40                 responseCodes = [200, 201, 409]
41                 
42         results = []
43         for onapType in onapTypes:
44                 result = createNormativeType(scheme, beHost, bePort, adminUser, fileDir, onapType, updateversion)
45                 results.append(result)
46                 if ( result[1] == None or result[1] not in responseCodes) :
47                         print "Failed creating heat type " + onapType + ". " + str(result[1])                           
48         return results  
49
50
51 def main(argv):
52         print 'Number of arguments:', len(sys.argv), 'arguments.'
53
54         beHost = 'localhost' 
55         bePort = '8080'
56         adminUser = 'jh0003'
57         updateversion = 'true'
58         scheme = 'http'
59         
60         try:
61                 opts, args = getopt.getopt(argv,"i:p:u:v:h:",["ip=","port=","user=","updateversion="])
62         except getopt.GetoptError:
63                 usage()
64                 errorAndExit(2, 'Invalid input')
65                  
66         for opt, arg in opts:
67         #print opt, arg
68                 if opt == '-h':
69                         usage()                        
70                         sys.exit(3)
71                 elif opt in ("-i", "--ip"):
72                         beHost = arg
73                 elif opt in ("-p", "--port"):
74                         bePort = arg
75                 elif opt in ("-u", "--user"):
76                         adminUser = arg
77                 elif opt in ("-s", "--scheme"):
78                         scheme = arg
79                 elif opt in ("-v", "--updateversion"):
80                         if (arg.lower() == "false" or arg.lower() == "no"):
81                                 updateversion = 'false'
82
83         print 'scheme =',scheme,',be host =',beHost,', be port =', bePort,', user =', adminUser
84         
85         if ( beHost == None ):
86                 usage()
87                 sys.exit(3)
88
89         results = importOnapTypes(scheme, beHost, bePort, adminUser, "../../../import/tosca/onap-types/", updateversion)
90
91         print "-----------------------------"
92         for result in results:
93                 print "{0:20} | {1:6}".format(result[0], result[1])
94         print "-----------------------------"
95         
96         responseCodes = [200, 201]
97         
98         if(updateversion == 'false'):
99                 responseCodes = [200, 201, 409]
100         
101         failedNormatives = filter(lambda x: x[1] == None or x[1] not in responseCodes, results)
102         if (len(failedNormatives) > 0):
103                 errorAndExit(1, None)
104         else:
105                 errorAndExit(0, None)
106
107
108 if __name__ == "__main__":
109         main(sys.argv[1:])