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