Migrate Python 2 files to Python 3 95/134995/2
authoreschcam <cameron.scholes@est.tech>
Mon, 19 Jun 2023 16:39:10 +0000 (17:39 +0100)
committerVasyl Razinkov <vasyl.razinkov@est.tech>
Tue, 20 Jun 2023 10:14:27 +0000 (10:14 +0000)
Issue-ID: SDC-4498
Signed-off-by: eschcam <cameron.scholes@est.tech>
Change-Id: I6b55fcd799371dd209898607c90d5c348e242c36

12 files changed:
asdctool/src/main/resources/scripts/python/duplicates.py
asdctool/src/main/resources/scripts/python/duplicatesAndRemove.py
asdctool/src/main/resources/scripts/python/graphSize.py
asdctool/src/main/resources/scripts/python/user/exportUsers.py
asdctool/src/main/resources/scripts/python/user/importUsers.py
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/securityrulestoportconnection/securityRulesToPortGetResource/inputfiles/call_home.py
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/securityrulestoportconnection/securityRulesToPortGetResource/inputfiles/check_availability.py
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/securityrulestoportconnection/securityRulesToPortGetResource/inputfiles/register_status.py
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/securityrulestoportconnection/securityRulesToPortGetResource/inputfiles/wait_for_resources.py
openecomp-be/tools/build/scripts/action_library_client/action_library_client.py
openecomp-be/tools/build/scripts/parse-json.py
openecomp-be/tools/migration/1607_to_1610.py

index be60b05..7228677 100644 (file)
@@ -1,47 +1,49 @@
 import json
 import sys
 
-dict = {} 
-dupliacteUid = {} 
-#debugFlag = True 
-debugFlag = False 
+dict = {}
+dupliacteUid = {}
+# debugFlag = True
+debugFlag = False
+
 
 def debug(str1, str2=""):
     'print only if debug enabled'
-    if (debugFlag == True): print str1, str2
+    if debugFlag:
+        print(str1, str2)
 
-print 'Number of arguments:', len(sys.argv), 'arguments.'
 
+print('Number of arguments:', len(sys.argv), 'arguments.')
 
 with open(sys.argv[1]) as json_file:
     json_data = json.load(json_file)
     for x in json_data['vertices']:
-       uid = None
-       nodeLabel=x.get('nodeLabel')
-       debug(nodeLabel)
-       if ( nodeLabel == 'user' ):
-           uid = x['userId']
-       elif ( nodeLabel == 'tag' ):
-           uid = x['name'] 
-       elif ( nodeLabel == None ):
-           pass
-       elif ( nodeLabel == 'lockNode' ):
-           uid = x.get('uid')
-       else: uid = x['uid']            
-
-       debug(nodeLabel, uid)
-
-       existId = dict.get(uid)
-       if (existId == None):
-           dict[uid] = x.get('_id')
-       else:
-            dupliacteUid[uid] = existId            
-
-    print dupliacteUid 
+        uid = None
+        nodeLabel = x.get('nodeLabel')
+        debug(nodeLabel)
+        if nodeLabel == 'user':
+            uid = x['userId']
+        elif nodeLabel == 'tag':
+            uid = x['name']
+        elif nodeLabel is None:
+            pass
+        elif nodeLabel == 'lockNode':
+            uid = x.get('uid')
+        else:
+            uid = x['uid']
+
+        debug(nodeLabel, uid)
+
+        existId = dict.get(uid)
+        if existId == None:
+            dict[uid] = x.get('_id')
+        else:
+            dupliacteUid[uid] = existId
+
+    print(dupliacteUid)
 
 #    with open('data.txt', 'w') as outfile:
 #        json.dump(json_data, outfile)
 
 
-    
 #      print x['uid']
index a4bd35d..086ab92 100644 (file)
+import getopt
 import json
-import sys, getopt
+import sys
 from collections import OrderedDict
 
-dict = {} 
-dupliacteUid = {} 
-#debugFlag = True 
-debugFlag = False 
+dict = {}
+dupliacteUid = {}
+# debugFlag = True
+debugFlag = False
+
 
 def join_strings(lst):
     concat = ""
     for string in lst:
-       if (string != None):
-               if (type(string) == int):
-                       string = str(string)
-               concat += (string + " ")
+        if string is None:
+            if type(string) == int:
+                string = str(string)
+            concat += (string + " ")
     return concat
 
+
 def debug(desc, *args):
-       'print only if debug enabled'
-       if (debugFlag == True): 
-               print desc, join_strings(args)  
+    'print only if debug enabled'
+    if debugFlag:
+        print(desc, join_strings(args))
+
 
 def log(desc, arg):
-       'print log info'
-       print desc, arg  
+    'print log info'
+    print(desc, arg)
+
 
 def getUid(vertex):
-       uid = None
-       nodeLabel=vertex.get('nodeLabel')
-       debug(nodeLabel)
-       if ( nodeLabel == 'user' ):
-               uid = vertex['userId']
-       elif ( nodeLabel == 'tag' ):
-               uid = vertex['name']
-       elif ( nodeLabel == None ):
-               pass
-       elif ( nodeLabel == 'lockNode' ):
-               uid = vertex.get('uid')
-       else: uid = vertex['uid']
-
-       debug(nodeLabel, uid)
-
-       return uid         
+    uid = None
+    nodeLabel = vertex.get('nodeLabel')
+    debug(nodeLabel)
+    if nodeLabel == 'user':
+        uid = vertex['userId']
+    elif nodeLabel == 'tag':
+        uid = vertex['name']
+    elif nodeLabel is None:
+        pass
+    elif nodeLabel == 'lockNode':
+        uid = vertex.get('uid')
+    else:
+        uid = vertex['uid']
+
+    debug(nodeLabel, uid)
+
+    return uid
+
 
 def generateFile(inputFile, outputFile):
-       
-       with open(inputFile) as json_file:
-               dupliacteUid = {}
-               json_data = json.load(json_file)
-               for x in json_data['vertices']:
-                       uid = getUid(x)
-
-                       existId = dict.get(uid)
-                       if (existId == None):
-                               dict[uid] = x.get('_id')
-                       else:
-                               dupliacteUid[uid] = existId         
-
-               log("duplicate ids", dupliacteUid)
-
-               json_data_vertices = json_data['vertices']
-               log("number of vertices is", len(json_data_vertices))
-
-               ids = {} 
-               deleteIndexes = []
-                
-               for i in xrange(len(json_data_vertices)):
-               #print "****** ", i, " *************"
-               #print json_data_vertices[i]
-                       id = json_data_vertices[i]["_id"]
-                       uid = getUid(json_data_vertices[i])
-                       isDuplicateId = dupliacteUid.get(uid)
-                       if (isDuplicateId != None):
-                               debug("uid to id pair", uid if uid != None else 'None', id)
-                               value = ids.get(uid)
-                               if (value == None):
-                                       list = [id,]    
-                                       ids[uid] = list 
-                               else:
-                                       value.append(id)        
-                                       deleteIndexes.append(id)        
-
-               log("ids", ids)
-               log("deleteIndexes", deleteIndexes)
-               log("deleteIndexes size", len(deleteIndexes))
-
-               filter_vertex = [ x for x in json_data_vertices if x.get('_id') not in deleteIndexes ]
-               json_data['vertices'] = filter_vertex   
-
-               log("number of vertexes after filter", len(filter_vertex))
-
-               json_data_edges = json_data['edges']
-
-               log("number of edges", len(json_data_edges))
-               
-               filter_edge = [ x for x in json_data_edges if x['_outV'] not in (deleteIndexes) and x['_inV'] not in (deleteIndexes) ]
-                json_data['edges'] = filter_edge
-
-               log("number of edges after filter", len(json_data['edges']))
-
-               json_data = OrderedDict(sorted(json_data.items(), key=lambda t: t[0], reverse=True))    
-       
-               with open(outputFile, 'w') as outfile:
-                       #json.dump(json_data, outfile)
-                       json.dump(json_data, outfile)
-               log("output file is", outputFile);
+    with open(inputFile) as json_file:
+        dupliacteUid = {}
+        json_data = json.load(json_file)
+        for x in json_data['vertices']:
+            uid = getUid(x)
+
+            existId = dict.get(uid)
+            if existId is None:
+                dict[uid] = x.get('_id')
+            else:
+                dupliacteUid[uid] = existId
+
+        log("duplicate ids", dupliacteUid)
+
+        json_data_vertices = json_data['vertices']
+        log("number of vertices is", len(json_data_vertices))
+
+        ids = {}
+        deleteIndexes = []
+
+        for i in xrange(len(json_data_vertices)):
+            # print "****** ", i, " *************"
+            # print json_data_vertices[i]
+            id = json_data_vertices[i]["_id"]
+            uid = getUid(json_data_vertices[i])
+            isDuplicateId = dupliacteUid.get(uid)
+            if isDuplicateId is not None:
+                debug("uid to id pair", uid if uid != None else 'None', id)
+                value = ids.get(uid)
+                if value is None:
+                    list = [id, ]
+                    ids[uid] = list
+                else:
+                    value.append(id)
+                    deleteIndexes.append(id)
+
+        log("ids", ids)
+        log("deleteIndexes", deleteIndexes)
+        log("deleteIndexes size", len(deleteIndexes))
+
+        filter_vertex = [x for x in json_data_vertices if x.get('_id') not in deleteIndexes]
+        json_data['vertices'] = filter_vertex
+
+        log("number of vertexes after filter", len(filter_vertex))
+
+        json_data_edges = json_data['edges']
+
+        log("number of edges", len(json_data_edges))
+
+        filter_edge = [x for x in json_data_edges if
+                       x['_outV'] not in deleteIndexes and x['_inV'] not in deleteIndexes]
+        json_data['edges'] = filter_edge
+
+        log("number of edges after filter", len(json_data['edges']))
+
+        json_data = OrderedDict(sorted(json_data.items(), key=lambda t: t[0], reverse=True))
+
+        with open(outputFile, 'w') as outfile:
+            # json.dump(json_data, outfile)
+            json.dump(json_data, outfile)
+        log("output file is", outputFile)
+
 
 def main(argv):
-        print 'Number of arguments:', len(sys.argv), 'arguments.'
-        inputfile = None 
-        outputfile = ''
-        try:
-                opts, args = getopt.getopt(argv,"h:i:o:",["ifile=","ofile="])
-        except getopt.GetoptError:
-                print sys.argv[0], '-i <inputfile>'
-                sys.exit(2)
-        for opt, arg in opts:
-                if opt == '-h':
-                        print sys.argv[0], '-i <inputfile>'
-                        sys.exit(3)
-                elif opt in ("-i", "--ifile"):
-                        inputfile = arg
-
-        if ( inputfile == None ):
-                print sys.argv[0] ,'-i <inputfile>'
-                sys.exit(3)
-
-        print 'Input file is "', inputfile
-        generateFile(inputfile, inputfile + '.noduplicates')
-               
+    print('Number of arguments:', len(sys.argv), 'arguments.')
+    inputfile = None
+    outputfile = ''
+    try:
+        opts, args = getopt.getopt(argv, "h:i:o:", ["ifile=", "ofile="])
+    except getopt.GetoptError:
+        print(sys.argv[0], '-i <inputfile>')
+        sys.exit(2)
+    for opt, arg in opts:
+        if opt == '-h':
+            print(sys.argv[0], '-i <inputfile>')
+            sys.exit(3)
+        elif opt in ("-i", "--ifile"):
+            inputfile = arg
+
+    if (inputfile == None):
+        print(sys.argv[0], '-i <inputfile>')
+        sys.exit(3)
+
+    print('Input file is "', inputfile)
+    generateFile(inputfile, inputfile + '.noduplicates')
+
 
 if __name__ == "__main__":
-        main(sys.argv[1:])
-    
+    main(sys.argv[1:])
+
 #      print x['uid']
index 6c36ec6..236da92 100644 (file)
@@ -1,56 +1,59 @@
 import json
 import sys, getopt
 
-dict = {} 
-dupliacteUid = {} 
-#debugFlag = True 
-debugFlag = False 
+dict = {}
+dupliacteUid = {}
+# debugFlag = True
+debugFlag = False
+
 
 def debug(desc, *args):
-       'print only if debug enabled'
-       if (debugFlag == True): 
-               print desc, join_strings(args)  
+    'print only if debug enabled'
+    if debugFlag:
+        print(desc, join_strings(args))
+
 
 def log(desc, arg):
-       'print log info'
-       print desc, arg  
+    'print log info'
+    print(desc, arg)
+
 
 def graphSize(inputFile):
-       
-       with open(inputFile) as json_file:
-               json_data = json.load(json_file)
+    with open(inputFile) as json_file:
+        json_data = json.load(json_file)
 
-               json_data_vertices = json_data['vertices']
-               log("number of vertices is", len(json_data_vertices))
+        json_data_vertices = json_data['vertices']
+        log("number of vertices is", len(json_data_vertices))
+
+        json_data_edges = json_data['edges']
+        log("number of edges is", len(json_data_edges))
 
-               json_data_edges = json_data['edges']
-               log("number of edges is", len(json_data_edges))
 
 def main(argv):
-        print 'Number of arguments:', len(sys.argv), 'arguments.'
-        inputfile = None 
-        outputfile = ''
-        try:
-                opts, args = getopt.getopt(argv,"h:i:o:",["ifile=","ofile="])
-        except getopt.GetoptError:
-                print sys.argv[0], '-i <inputfile>'
-                sys.exit(2)
-        for opt, arg in opts:
-                if opt == '-h':
-                        print sys.argv[0], '-i <inputfile>'
-                        sys.exit(3)
-                elif opt in ("-i", "--ifile"):
-                        inputfile = arg
-
-        if ( inputfile == None ):
-                print sys.argv[0], '-i <inputfile>'
-                sys.exit(3)
-
-        print 'Input file is ', inputfile
-        graphSize(inputfile)
-               
+    print('Number of arguments:', len(sys.argv), 'arguments.')
+    inputfile = None
+    outputfile = ''
+    try:
+        opts, args = getopt.getopt(argv, "h:i:o:", ["ifile=", "ofile="])
+    except getopt.GetoptError:
+        print(sys.argv[0], '-i <inputfile>')
+        sys.exit(2)
+    for opt, arg in opts:
+        if opt == '-h':
+            print(sys.argv[0], '-i <inputfile>')
+            sys.exit(3)
+        elif opt in ("-i", "--ifile"):
+            inputfile = arg
+
+    if (inputfile == None):
+        print(sys.argv[0], '-i <inputfile>')
+        sys.exit(3)
+
+    print('Input file is ', inputfile)
+    graphSize(inputfile)
+
 
 if __name__ == "__main__":
-        main(sys.argv[1:])
-    
+    main(sys.argv[1:])
+
 #      print x['uid']
index ed7515c..058ad92 100644 (file)
@@ -3,7 +3,6 @@ import sys, getopt
 from StringIO import StringIO
 import json
 
-
 ####################################################################################################################################################################################
 #                                                                                                                                                                                  #
 # Export all active users to file - for 1602+                                                                                                                                      #
@@ -18,113 +17,117 @@ import json
 
 ALL_USERS_SUFFIX = '/sdc2/rest/v1/user/users'
 
+
 def errorAndExit(errorCode, errorDesc):
-        if ( errorCode > 0 ):
-                print("status=" + str(errorCode) + ". " + errorDesc)
-        else:
-                print("status=" + str(errorCode))
-        sys.exit(errorCode)
+    if errorCode > 0:
+        print("status=" + str(errorCode) + ". " + errorDesc)
+    else:
+        print("status=" + str(errorCode))
+    sys.exit(errorCode)
+
 
 def getUsers(scheme, beHost, bePort, adminUser):
+    try:
+        buffer = StringIO()
+        c = pycurl.Curl()
 
-       try:
-               buffer = StringIO()
-               c = pycurl.Curl()
+        url = scheme + '://' + beHost + ':' + bePort + ALL_USERS_SUFFIX
+        print(url)
+        c.setopt(c.URL, url)
+        c.setopt(c.WRITEFUNCTION, buffer.write)
+        # c.setopt(c.WRITEFUNCTION, lambda x: None)
+        adminHeader = 'USER_ID: ' + adminUser
+        c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json', 'Accept: application/json', adminHeader])
 
-               url = scheme + '://' + beHost + ':' + bePort + ALL_USERS_SUFFIX 
-               print(url)
-               c.setopt(c.URL, url)
-               c.setopt(c.WRITEFUNCTION, buffer.write)
-               #c.setopt(c.WRITEFUNCTION, lambda x: None)
-               adminHeader = 'USER_ID: ' + adminUser
-               c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json', 'Accept: application/json', adminHeader])
+        if scheme == 'https':
+            c.setopt(pycurl.SSL_VERIFYPEER, 0)
+            c.setopt(pycurl.SSL_VERIFYHOST, 0)
 
-               if scheme == 'https':
-                       c.setopt(pycurl.SSL_VERIFYPEER, 0)
-                       c.setopt(pycurl.SSL_VERIFYHOST, 0)
+        res = c.perform()
+        # print(res)
 
-               res = c.perform()
-               #print(res)
+        # print('Status: %d' % c.getinfo(c.RESPONSE_CODE))
 
-               #print('Status: %d' % c.getinfo(c.RESPONSE_CODE))
+        c.close()
 
-               c.close()
+        body = buffer.getvalue()
 
-               body = buffer.getvalue()
+               # print(body)
 
-        #print(body)
+        return body, None
 
-               return (body, None)
+    except Exception as inst:
+        print(inst)
+               # print type(inst)     # the exception instance
+               # print inst.args      # arguments stored in .args
+               # print inst           # __str__ allows args to be printed directly
+               # x, y = inst.args
+               # print 'x =', x
 
-       except Exception as inst:
-               print inst
-        #print type(inst)     # the exception instance
-        #print inst.args      # arguments stored in .args
-        #print inst           # __str__ allows args to be printed directly
-        #x, y = inst.args
-        #print 'x =', x
-               
-               return (None, inst)
+        return None, inst
 
 
 def usage():
-       print sys.argv[0], '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <output file> | --ofile=<output file> ]'
+    print(sys.argv[0],
+          '[optional -s <scheme> | --scheme=<scheme>, default http] [-i <be host> | --ip=<be host>] [-p <be port> | --port=<be port> ] [-f <output file> | --ofile=<output file> ]')
+
 
 def main(argv):
-       print 'Number of arguments:', len(sys.argv), 'arguments.'
+    print('Number of arguments:', len(sys.argv), 'arguments.')
+
+    adminHeader = 'jh0003'
+    beHost = 'localhost'
+    bePort = '8080'
+    outputfile = None
+    scheme = 'http'
+
+    try:
+        opts, args = getopt.getopt(argv, "i:p:f:h:s:", ["ip=", "port=", "ofile=", "scheme="])
+    except getopt.GetoptError:
+        usage()
+        errorAndExit(2, 'Invalid input')
 
-       adminHeader = 'jh0003'
-       beHost = 'localhost'
-       bePort = '8080'
-       outputfile = None 
-       scheme = 'http'
+    for opt, arg in opts:
+        # print opt, arg
+        if opt == '-h':
+            usage()
+            sys.exit(3)
+        elif opt in ("-i", "--ip"):
+            beHost = arg
+        elif opt in ("-p", "--port"):
+            bePort = arg
+        elif opt in ("-f", "--ofile"):
+            outputfile = arg
+        elif opt in ("-s", "--scheme"):
+            scheme = arg
 
-       try:
-               opts, args = getopt.getopt(argv,"i:p:f:h:s:",["ip=","port=","ofile=","scheme="])
-       except getopt.GetoptError:
-               usage()
-               errorAndExit(2, 'Invalid input')
-        
-       for opt, arg in opts:
-        #print opt, arg
-               if opt == '-h':
-                       usage()
-                       sys.exit(3)
-               elif opt in ("-i", "--ip"):
-                       beHost = arg
-               elif opt in ("-p", "--port"):
-                       bePort = arg
-               elif opt in ("-f", "--ofile"):
-                       outputfile = arg
-               elif opt in ("-s", "--scheme"):
-                       scheme = arg
+    print('scheme =', scheme, ', be host =', beHost, ', be port =', bePort, ', output file =', outputfile)
 
-       print 'scheme =',scheme,', be host =',beHost,', be port =', bePort,', output file =',outputfile
+    if outputfile == None:
+        usage()
+        sys.exit(3)
 
-       if ( outputfile == None ):
-               usage()
-               sys.exit(3)
+    users = getUsers(scheme, beHost, bePort, adminHeader)
+    error = users[1]
+    body = users[0]
 
-       users = getUsers(scheme, beHost, bePort, adminHeader)
-       error = users[1]
-       body = users[0]
+    if error is not None:
+        errorAndExit(5, str(error))
 
-       if ( error != None ):
-               errorAndExit(5, str(error))
+    # print body
 
-       #print body
+    io = StringIO(body)
+    usersAsJson = json.load(io)
 
-       io = StringIO(body)
-       usersAsJson = json.load(io)
+    writeFile = open(outputfile, 'w')
 
-       writeFile = open(outputfile, 'w')
+    json.dump(usersAsJson, writeFile)
 
-       json.dump(usersAsJson, writeFile)
+    writeFile.close()
 
-       writeFile.close()
+    print("-------------------------------------------")
+    errorAndExit(0, None)
 
-       print("-------------------------------------------")
-       errorAndExit(0, None)
 
 if __name__ == "__main__":
-        main(sys.argv[1:])
+    main(sys.argv[1:])
index 82ddec5..c15ecb7 100644 (file)
@@ -4,6 +4,7 @@ from StringIO import StringIO
 import json
 import copy
 
+
 #####################################################################################################################################################################################
 #                                                                                                                                                                                                                                                                                                                                                              #
 # Import all users from a given file                                                                                                                                                                                                                                                                                           #
@@ -18,210 +19,209 @@ import copy
 
 
 def importUsers(scheme, beHost, bePort, users, adminUser):
-       
-       result = []     
-
-       for user in users:
-                       
-               #print("Going to add user " + user['userId'])
-       
-               getRes = getUser(scheme, beHost, bePort, user)  
-               userId = getRes[0]
-               error = getRes[1]
-               #print error
-               if ( error != None and error == 404 ):
-                       res = createUser(scheme, beHost, bePort, user ,adminUser)                       
-                       result.append(res)                      
-               else:
-                       if ( error == 200 ):
-                               curResult = (userId, 409)
-                               result.append(curResult)        
-                       else:
-                               result.append(getRes)
-
-       return result                           
+    result = []
+
+    for user in users:
+
+        # print("Going to add user " + user['userId'])
+
+        getRes = getUser(scheme, beHost, bePort, user)
+        userId = getRes[0]
+        error = getRes[1]
+        # print error
+        if error is not None and error == 404:
+            res = createUser(scheme, beHost, bePort, user, adminUser)
+            result.append(res)
+        else:
+            if error == 200:
+                curResult = (userId, 409)
+                result.append(curResult)
+            else:
+                result.append(getRes)
+
+    return result
 
 
 def convertUsersToCreationObject(users):
+    cloneUsers = copy.deepcopy(users)
+    for user in cloneUsers:
+        # print user
+        if user.get('fullName') is not None:
+            del user['fullName']
+    # user['userId'] = user['userId'] + '1'
+    # print user
 
-       cloneUsers  = copy.deepcopy(users)
-       for user in cloneUsers:
-               #print user     
-               if (user.get('fullName') != None):
-                       del user['fullName']
-               #user['userId'] = user['userId'] + '1'
-               #print user
+    return cloneUsers
 
-       return cloneUsers
 
 def getUser(scheme, beHost, bePort, user):
+    userId = user['userId']
+    try:
+        buffer = StringIO()
+        c = pycurl.Curl()
+
+        # print type(userId)
+        url = scheme + '://' + beHost + ':' + bePort + '/sdc2/rest/v1/user/' + str(userId)
+        c.setopt(c.URL, url)
 
-       userId = user['userId']
-       try:
-               buffer = StringIO()
-               c = pycurl.Curl()
+        # adminHeader = 'USER_ID: ' + adminUser
+        c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json', 'Accept: application/json'])
+        c.setopt(c.WRITEFUNCTION, lambda x: None)
 
-               #print type(userId)
-               url = scheme + '://' + beHost + ':' + bePort + '/sdc2/rest/v1/user/' + str(userId)
-               c.setopt(c.URL, url)
+        if scheme == 'https':
+            c.setopt(pycurl.SSL_VERIFYPEER, 0)
+            c.setopt(pycurl.SSL_VERIFYHOST, 0)
 
-               #adminHeader = 'USER_ID: ' + adminUser
-               c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json', 'Accept: application/json'])
-               c.setopt(c.WRITEFUNCTION, lambda x: None)
+        res = c.perform()
 
-               if scheme == 'https':
-                       c.setopt(pycurl.SSL_VERIFYPEER, 0)
-                       c.setopt(pycurl.SSL_VERIFYHOST, 0)
+        # print("Before get response code")
+        httpRes = c.getinfo(c.RESPONSE_CODE)
+        # print("After get response code")
+        responseCode = c.getinfo(c.RESPONSE_CODE)
 
-               res = c.perform()
-                                       
-               #print("Before get response code")      
-               httpRes = c.getinfo(c.RESPONSE_CODE)
-               #print("After get response code")       
-               responseCode = c.getinfo(c.RESPONSE_CODE)
-               
-               #print('Status: ' + str(responseCode))
+        # print('Status: ' + str(responseCode))
 
-               c.close()
+        c.close()
 
-               return (userId, httpRes)
+        return userId, httpRes
 
-       except Exception as inst:
-               print(inst)
-               return (userId, None)                           
+    except Exception as inst:
+        print(inst)
+        return userId, None
 
-               
 
 def createUser(scheme, beHost, bePort, user, adminUser):
+    userId = user['userId']
+    try:
+        buffer = StringIO()
+        c = pycurl.Curl()
 
-       userId = user['userId']
-       try:
-               buffer = StringIO()
-               c = pycurl.Curl()
+        url = scheme + '://' + beHost + ':' + bePort + '/sdc2/rest/v1/user'
+        c.setopt(c.URL, url)
+        c.setopt(c.POST, 1)
 
-               url = scheme + '://' + beHost + ':' + bePort + '/sdc2/rest/v1/user'
-               c.setopt(c.URL, url)
-               c.setopt(c.POST, 1)             
+        adminHeader = 'USER_ID: ' + adminUser
+        c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json', 'Accept: application/json', adminHeader])
 
-               adminHeader = 'USER_ID: ' + adminUser
-               c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json', 'Accept: application/json', adminHeader])
+        data = json.dumps(user)
+        c.setopt(c.POSTFIELDS, data)
 
-               data = json.dumps(user)
-               c.setopt(c.POSTFIELDS, data)    
+        c.setopt(c.WRITEFUNCTION, lambda x: None)
 
-               c.setopt(c.WRITEFUNCTION, lambda x: None)
+        if scheme == 'https':
+            c.setopt(pycurl.SSL_VERIFYPEER, 0)
+            c.setopt(pycurl.SSL_VERIFYHOST, 0)
 
-               if scheme == 'https':
-                       c.setopt(pycurl.SSL_VERIFYPEER, 0)
-                       c.setopt(pycurl.SSL_VERIFYHOST, 0)
+        # print("before perform")
+        res = c.perform()
+               # print(res)
 
-               #print("before perform")        
-               res = c.perform()
-        #print(res)
-       
-               #print("Before get response code")      
-               httpRes = c.getinfo(c.RESPONSE_CODE)
-               #print("After get response code")       
-               responseCode = c.getinfo(c.RESPONSE_CODE)
-               
-               #print('Status: ' + str(responseCode))
+        # print("Before get response code")
+        httpRes = c.getinfo(c.RESPONSE_CODE)
+        # print("After get response code")
+        responseCode = c.getinfo(c.RESPONSE_CODE)
 
-               c.close()
+        # print('Status: ' + str(responseCode))
 
-               return (userId, httpRes)
+        c.close()
 
-       except Exception as inst:
-               print(inst)
-               return (userId, None)                           
+        return userId, httpRes
+
+    except Exception as inst:
+        print(inst)
+        return userId, None
 
 
 def errorAndExit(errorCode, errorDesc):
-       if ( errorCode > 0 ):
-               print("status=" + str(errorCode) + ". " + errorDesc) 
-       else:
-               print("status=" + str(errorCode))
-       sys.exit(errorCode)
-       
+    if errorCode > 0:
+        print("status=" + str(errorCode) + ". " + errorDesc)
+    else:
+        print("status=" + str(errorCode))
+    sys.exit(errorCode)
+
+
 def usage():
-       print sys.argv[0], '[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> ]'
+    print(sys.argv[0],
+          '[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> ]')
+
 
 def main(argv):
-       print 'Number of arguments:', len(sys.argv), 'arguments.'
+    print('Number of arguments:', len(sys.argv), 'arguments.')
+
+    beHost = 'localhost'
+    bePort = '8080'
+    inputfile = None
+    scheme = 'http'
+    adminUser = 'jh0003'
+
+    try:
+        opts, args = getopt.getopt(argv, "i:p:f:h:s:", ["ip=", "port=", "ifile=", "scheme="])
+    except getopt.GetoptError:
+        usage()
+        errorAndExit(2, 'Invalid input')
 
-       beHost = 'localhost' 
-       bePort = '8080'
-       inputfile = None 
-       scheme = 'http'
-       adminUser = 'jh0003'
+    for opt, arg in opts:
+        # print opt, arg
+        if opt == '-h':
+            usage()
+            sys.exit(3)
+        elif opt in ("-i", "--ip"):
+            beHost = arg
+        elif opt in ("-p", "--port"):
+            bePort = arg
+        elif opt in ("-f", "--ifile"):
+            inputfile = arg
+        elif opt in ("-s", "--scheme"):
+            scheme = arg
 
-       try:
-               opts, args = getopt.getopt(argv,"i:p:f:h:s:",["ip=","port=","ifile=","scheme="])
-       except getopt.GetoptError:
-               usage()
-               errorAndExit(2, 'Invalid input')
-                
-       for opt, arg in opts:
-       #print opt, arg
-               if opt == '-h':
-                       usage()                        
-                       sys.exit(3)
-               elif opt in ("-i", "--ip"):
-                       beHost = arg
-               elif opt in ("-p", "--port"):
-                       bePort = arg
-               elif opt in ("-f", "--ifile"):
-                       inputfile = arg
-               elif opt in ("-s", "--scheme"):
-                       scheme = arg
+    print('scheme =', scheme, ', be host =', beHost, ', be port =', bePort, ', users file =', inputfile)
 
-       print 'scheme =',scheme,', be host =',beHost,', be port =', bePort,', users file =',inputfile
-       
-       if ( inputfile == None ):
-               usage()
-               sys.exit(3)
+    if inputfile == None:
+        usage()
+        sys.exit(3)
 
-       print 'Input file is ', inputfile
+    print('Input file is ', inputfile)
 
-       usersFile = open(inputfile)
+    usersFile = open(inputfile)
 
-       json_data = json.load(usersFile)
+    json_data = json.load(usersFile)
 
-       #print json_data
+    print json_data
 
-       cloneUsers = convertUsersToCreationObject(json_data)
+    cloneUsers = convertUsersToCreationObject(json_data)
 
-       activeUsers = filter(lambda x: x['status'] == 'ACTIVE', cloneUsers)
+    activeUsers = filter(lambda x: x['status'] == 'ACTIVE', cloneUsers)
 
-       #print activeUsers
+    print activeUsers
 
-       resultTable = importUsers(scheme, beHost, bePort, activeUsers, adminUser)
+    resultTable = importUsers(scheme, beHost, bePort, activeUsers, adminUser)
 
-       g = lambda x: x[1] != 201 and x[1] != 409
+    g = lambda x: x[1] != 201 and x[1] != 409
 
-       result = filter(g, resultTable)
+    result = filter(g, resultTable)
 
-       if ( len(result) > 0 ):
-               #print("ERROR: Failed to load the users " + ', '.join(map(lambda x: x[0],result)))
-               errorAndExit(3, "Failed to load the users " + ', '.join(map(lambda x: x[0],result)))    
+    if (len(result) > 0):
+        print("ERROR: Failed to load the users " + ', '.join(map(lambda x: x[0],result)))
+        errorAndExit(3, "Failed to load the users " + ', '.join(map(lambda x: x[0], result)))
 
-       g = lambda x: x[1] == 409
-       result = filter(g, resultTable)
+    g = lambda x: x[1] == 409
+    result = filter(g, resultTable)
 
-       print("-------------------------------------------")
-       print("Existing users: " + ', '.join(map(lambda x: x[0],result)))
+    print("-------------------------------------------")
+    print("Existing users: " + ', '.join(map(lambda x: x[0], result)))
 
-       result = filter(lambda x: x[1] == 201, resultTable)
-       if ( len(result) == 0 ):
-               print("-------------------------------------------")
-               print("No NEW user was loaded. All users are already exist")
-               print("-------------------------------------------")
-       else:
-               print("-------------------------------------------")
-               print("Loaded users: " + ', '.join(map(lambda x: x[0],result)))
-               print("-------------------------------------------")
+    result = filter(lambda x: x[1] == 201, resultTable)
+    if len(result) == 0:
+        print("-------------------------------------------")
+        print("No NEW user was loaded. All users are already exist")
+        print("-------------------------------------------")
+    else:
+        print("-------------------------------------------")
+        print("Loaded users: " + ', '.join(map(lambda x: x[0], result)))
+        print("-------------------------------------------")
 
-       errorAndExit(0, None)
+    errorAndExit(0, None)
 
 
 if __name__ == "__main__":
-        main(sys.argv[1:])
+    main(sys.argv[1:])
index 54f2a69..0b12098 100644 (file)
@@ -6,7 +6,6 @@ from socket import getfqdn
 from sys import platform
 from time import sleep
 
-
 PARSER = argparse.ArgumentParser()
 PARSER.add_argument("manager_ip", help="The IPv4 Address where one can read the MaveriQConductor.")
 PARSER.add_argument("--mockupfile", type=str, help="The path of the json mockupfile to use.")
@@ -43,7 +42,7 @@ def check_availability():
     is_connected = False
     while is_connected is False:
         try:
-            if requests.get(URL_AVAIL, headers={'Connection': 'close'}).status_code is 200:
+            if requests.get(URL_AVAIL, headers={'Connection': 'close'}).status_code == 200:
                 is_connected = True
             sleep(2)
         except requests.exceptions.ConnectionError:
@@ -90,8 +89,9 @@ def main():
 
         # Perform any replacement needed.
         json_data = multiple_replace(regex_dict, json_data)
-        print json_data
+        print(json_data)
         check_availability()
         return post_request(p_json_data=json_data, p_headers=HEADERS)
 
-print main()
+
+print(main())
index e93b372..09098b2 100644 (file)
@@ -15,20 +15,20 @@ PARSER.add_argument("ScribeIP", type=str,
                     help="The Stage the application is currently in")
 ARGS = PARSER.parse_args()
 
-print "Begining check availability check!"
+print("Beginning check availability check!")
 isConnected = False
 while isConnected is False:
     try:
         sys.stdout.write('.')
         sleep(2)
         if requests.get(conductor_url.format(ARGS.ScribeIP),
-                        headers={'Connection': 'close'}).status_code is 200 and requests.get(
+                        headers={'Connection': 'close'}).status_code == 200 and requests.get(
             check_api.format(ARGS.ScribeIP,
                              headers={'Connection': 'close'}),
             auth=requests.auth.HTTPBasicAuth(check_user,
-                                             check_password)).status_code is 200:
+                                             check_password)).status_code == 200:
             isConnected = True
     except requests.exceptions.ConnectionError as e:
         sleep(2)
 
-print 'Conductor and Scribe are ready!'
+print('Conductor and Scribe are ready!')
index 98adafa..55be22d 100644 (file)
@@ -12,7 +12,6 @@ from socket import getfqdn
 import sys
 from time import time
 
-
 parser = argparse.ArgumentParser()
 parser.add_argument("scribe_ip", type=str,
                     help="The IP where the Scribe can be reached.")
@@ -88,22 +87,24 @@ def build_add_json():
     ADD_COMPONENT_BODY["OAM_IP"] = OAM_DIRECT_IP
 
     for interface in netifaces.interfaces():
-        ADD_COMPONENT_BODY["machineNetworkInterfaces"].append({"name": interface, "value": netifaces.ifaddresses(interface)[2][0]['addr']})
+        ADD_COMPONENT_BODY["machineNetworkInterfaces"].append(
+            {"name": interface, "value": netifaces.ifaddresses(interface)[2][0]['addr']})
 
-    if PROBE_ID is not "":
-        ADD_COMPONENT_BODY["machineID"] = REGION + '_' + TENANT + '_' +\
-            CLUSTER_NAME + '_' + MACHINE_NAME + '_' + PROBE_ID
+    if PROBE_ID != "":
+        ADD_COMPONENT_BODY["machineID"] = REGION + '_' + TENANT + '_' + \
+                                          CLUSTER_NAME + '_' + MACHINE_NAME + '_' + PROBE_ID
     else:
-        ADD_COMPONENT_BODY["machineID"] = REGION + '_' + TENANT + '_' +\
-            CLUSTER_NAME + '_' + MACHINE_NAME
+        ADD_COMPONENT_BODY["machineID"] = REGION + '_' + TENANT + '_' + \
+                                          CLUSTER_NAME + '_' + MACHINE_NAME
     return ADD_COMPONENT_BODY
 
 
 def send_postage(p_url, p_url_user, p_url_password, p_json_data):
     json_header = {'Content-type': 'application/json'}
-    request = requests.post(p_url, json.dumps(p_json_data), json_header, auth=requests.auth.HTTPBasicAuth(p_url_user, p_url_password))
-    print request.status_code
-    if (request.status_code != 200):
+    request = requests.post(p_url, json.dumps(p_json_data), json_header,
+                            auth=requests.auth.HTTPBasicAuth(p_url_user, p_url_password))
+    print(request.status_code)
+    if request.status_code != 200:
         sys.exit(1)
     return request.status_code
 
@@ -118,9 +119,10 @@ def post_add_machine():
     read_metadata()
     return send_postage(add_machine_ip, user, password, build_add_json())
 
+
 if args.stage is None and args.status is None and args.description is None:
-    print "adding machine"
-    print post_add_machine()
+    print("adding machine")
+    print(post_add_machine())
 else:
-    print "logging health"
-    print post_health()
+    print("logging health")
+    print(post_health())
index 5d960d6..5abf961 100644 (file)
@@ -16,9 +16,9 @@ def parse_json_file(json_path):
 
 def check_network_interfaces():
     for interface in netifaces.interfaces():
-        if(sys.platform != 'win32' or netifaces.ifaddresses(interface)[-1000][0]['addr'] != '00:00:00:00:00:00:00:e0'):
+        if sys.platform != 'win32' or netifaces.ifaddresses(interface)[-1000][0]['addr'] != '00:00:00:00:00:00:00:e0':
             while 2 not in netifaces.ifaddresses(interface).keys() and 23 not in netifaces.ifaddresses(interface).keys():
-                print "Still waiting for interface:", interface
+                print("Still waiting for interface:", interface)
                 time.sleep(TIME_INTERVAL)
 
 
@@ -29,7 +29,7 @@ def check_connectivity():
         ping_str = "ping -n 1 "
 
     while os.system(ping_str + component_ip) != 0:
-        print "No connectivity to", component_ip, "waiting", TIME_INTERVAL, "seconds"
+        print("No connectivity to", component_ip, "waiting", TIME_INTERVAL, "seconds")
         time.sleep(TIME_INTERVAL)
 
 
@@ -51,7 +51,7 @@ def check_cinder_mounts():
         cinder_attached = os.popen("wmic diskdrive get DeviceID | find /i \"PHYSICALDRIVE\" | find /V \"0\" /C").read()
 
     while (int(cinder_attached) < cinder_count) and (cinder_count != 0):
-        print "Missing a cinder mount, waiting", TIME_INTERVAL, "seconds"
+        print("Missing a cinder mount, waiting", TIME_INTERVAL, "seconds")
         time.sleep(TIME_INTERVAL)
 
         if sys.platform.startswith('linux'):
@@ -62,7 +62,7 @@ def check_cinder_mounts():
                 "wmic diskdrive get DeviceID | find /i \"PHYSICALDRIVE\" | find /V \"0\" /C").read()
 
         if int(cinder_attached) == cinder_count:
-            print "All cinder are attached and ready to be formatted and mounted"
+            print("All cinder are attached and ready to be formatted and mounted")
 
 
 def main():
@@ -72,7 +72,7 @@ def main():
     if component_ip is not None:
         check_connectivity()
 
-    print "All resources are ready"
+    print("All resources are ready")
 
 
 if __name__ == "__main__":
index 7f513af..0537128 100644 (file)
@@ -147,6 +147,7 @@ class FinalizeStatus(object):
 
 class ArgsDict(dict):
     """A dict which makes attributes accessible as properties."""
+
     def __getattr__(self, attr):
         return self[attr]
 
@@ -221,33 +222,33 @@ class ArgumentParser(object):
     def usage():
         """Print usage message."""
         print("" +
-            "Usage: action_library_client.py [--help] [--url <url>] [--in <filename>]\n" +
-            "                                 [--out <filename>] [--config <filename>]\n" +
-            "                                 [--log <filename>] [--uuid <uuid>]\n" +
-            "                                 [--curl] [--dryrun] [--verbose] [--version]\n" +
-            "                                 [--list | --create | --update= | --delete |\n" +
-            "                                  --checkout | --undocheckout | --checkin | --submit]\n" +
-            "\n" +
-            "Optional arguments:\n" +
-            "  --help                Show this help message and exit\n" +
-            "  --url <url>           REST endpoint URL\n" +
-            "  --in <filename>       Path to JSON input file (else STDIN)\n" +
-            "  --out <filename>      Path to JSON output file (else STDOUT or logfile)\n" +
-            "  --config <filename>   Path to configuration file\n" +
-            "  --log <filename>      Path to logfile (else STDOUT)\n" +
-            "  --uuid <uuid>         Action UUID, (=='actionInvariantUUID')\n" +
-            "  --curl                Use curl transport impl\n" +
-            "  --dryrun              Describe what will happen, execute nothing\n" +
-            "  --verbose             Verbose diagnostic output\n" +
-            "  --version             Print script version and exit\n" +
-            "  --list                List actions\n" +
-            "  --create              Create new action (requires --in)\n" +
-            "  --update              Update existing action (requires --uuid, --in)\n" +
-            "  --delete              Delete existing action (requires --uuid)\n" +
-            "  --checkout            Create minor version candidate (requires --uuid)\n" +
-            "  --undocheckout        Discard minor version candidate (requires --uuid)\n" +
-            "  --checkin             Create minor version from candidate (requires --uuid)\n" +
-            "  --submit              Create next major version (requires --uuid)")
+              "Usage: action_library_client.py [--help] [--url <url>] [--in <filename>]\n" +
+              "                                 [--out <filename>] [--config <filename>]\n" +
+              "                                 [--log <filename>] [--uuid <uuid>]\n" +
+              "                                 [--curl] [--dryrun] [--verbose] [--version]\n" +
+              "                                 [--list | --create | --update= | --delete |\n" +
+              "                                  --checkout | --undocheckout | --checkin | --submit]\n" +
+              "\n" +
+              "Optional arguments:\n" +
+              "  --help                Show this help message and exit\n" +
+              "  --url <url>           REST endpoint URL\n" +
+              "  --in <filename>       Path to JSON input file (else STDIN)\n" +
+              "  --out <filename>      Path to JSON output file (else STDOUT or logfile)\n" +
+              "  --config <filename>   Path to configuration file\n" +
+              "  --log <filename>      Path to logfile (else STDOUT)\n" +
+              "  --uuid <uuid>         Action UUID, (=='actionInvariantUUID')\n" +
+              "  --curl                Use curl transport impl\n" +
+              "  --dryrun              Describe what will happen, execute nothing\n" +
+              "  --verbose             Verbose diagnostic output\n" +
+              "  --version             Print script version and exit\n" +
+              "  --list                List actions\n" +
+              "  --create              Create new action (requires --in)\n" +
+              "  --update              Update existing action (requires --uuid, --in)\n" +
+              "  --delete              Delete existing action (requires --uuid)\n" +
+              "  --checkout            Create minor version candidate (requires --uuid)\n" +
+              "  --undocheckout        Discard minor version candidate (requires --uuid)\n" +
+              "  --checkin             Create minor version from candidate (requires --uuid)\n" +
+              "  --submit              Create next major version (requires --uuid)")
 
 
 ###############################################################################
@@ -533,7 +534,7 @@ class CURLRESTClient(IRESTClient):
         """Debug curl command, for diags and dryrun."""
         buf = ""
         for token in cmd:
-            if token is "curl" or token.startswith("-"):
+            if token == "curl" or token.startswith("-"):
                 buf = "{0}{1} ".format(buf, token)
             else:
                 buf = "{0}\"{1}\" ".format(buf, token)
@@ -556,7 +557,7 @@ class CURLRESTClient(IRESTClient):
             try:
                 separator = output.index("\r\n\r\n{")
                 self.logger.debug("HTTP preamble:\n{0}".format(output[:separator]))
-                json_body = json.loads(output[(separator+4):])
+                json_body = json.loads(output[(separator + 4):])
                 self.log_json_response(method, json_body)
                 return json_body
             except ValueError:
index 46537ce..83c70aa 100644 (file)
@@ -41,17 +41,19 @@ from collections import OrderedDict
 
 
 def readJsonFile(file, type):
-  with open(file, 'r') as f:
-     data = json.load(f, object_pairs_hook=OrderedDict)
-     return data[type]
+    with open(file, 'r') as f:
+        data = json.load(f, object_pairs_hook=OrderedDict)
+        return data[type]
+
 
 def printJsonTypeEntries(jsonData):
-        for i in jsonData.keys():
-                print jsonData[i] + ';'
+    for i in jsonData.keys():
+        print(jsonData[i] + ';')
 
 
 def usage():
-    print 'parseJsonFile.py [-f <json-file> & -t <cql-type: drop|create|insert|update|select]'
+    print('parseJsonFile.py [-f <json-file> & -t <cql-type: drop|create|insert|update|select]')
+
 
 def main(argv):
     action = ''
index f46cb3a..e817e3b 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/python
 import os
-import sys,json,datetime,time,types,httplib,re
+import sys, json, datetime, time, types, httplib, re
 import mimetypes
 
 DEFAULT_HOST = "127.0.0.1"
@@ -13,49 +13,50 @@ DEFAULT_PASSWORD = "cs0008"
 
 ONBOARD_BASE_PATH = "/onboarding-api/v1.0"
 VSP_LIST_PATH = "{0}/vendor-software-products".format(ONBOARD_BASE_PATH)
-VSP_ACTIONS_PATH =  "{0}/vendor-software-products/{{vspId}}/actions".format(ONBOARD_BASE_PATH)
+VSP_ACTIONS_PATH = "{0}/vendor-software-products/{{vspId}}/actions".format(ONBOARD_BASE_PATH)
 VSP_UPLOAD_PATH = "{0}/vendor-software-products/{{vspId}}/upload".format(ONBOARD_BASE_PATH)
 VSP_DOWNLOAD_PATH = "{0}/vendor-software-products/{{vspId}}/downloadHeat".format(ONBOARD_BASE_PATH)
 VSP_GET_URL = "{0}/vendor-software-products/{{vspId}}".format(ONBOARD_BASE_PATH)
 
+
 def main(argv):
-    username=DEFAULT_USERNAME
-    password=DEFAULT_PASSWORD
-    host=DEFAULT_HOST
+    username = DEFAULT_USERNAME
+    password = DEFAULT_PASSWORD
+    host = DEFAULT_HOST
 
     if not argv:
-        print "Going to use default values"
+        print("Going to use default values")
     else:
-       if argv[0].lower() == 'h' or argv[0].lower() == '-h':
-               printHelp()
-               return
-
-               if argv[0] == '-ip':
-                host=argv[1]
-       else:
-               if argv[0].lower() == '-a' and '/' not in argv[1]:
-                       print '\n>>> Error: Credentials required (username/password)\n'
-                       printHelp()
-                       return
-
-               else:
-                        creds = argv[1].split('/')
-                        username = creds[0]
-                        password = creds[1] # not used
-
-                       try:
-                               cmdIp=argv[2]
-                               host=argv[3]
-                       except IndexError:
-                               host=DEFAULT_HOST
-       print "Going to use user defined values"
+        if argv[0].lower() == 'h' or argv[0].lower() == '-h':
+            printHelp()
+            return
+
+        if argv[0] == '-ip':
+            host = argv[1]
+        else:
+            if argv[0].lower() == '-a' and '/' not in argv[1]:
+                print('\n>>> Error: Credentials required (username/password)\n')
+                printHelp()
+                return
+
+            else:
+                creds = argv[1].split('/')
+                username = creds[0]
+                password = creds[1]  # not used
+
+            try:
+                cmdIp = argv[2]
+                host = argv[3]
+            except IndexError:
+                host = DEFAULT_HOST
+        print("Going to use user defined values")
     Service.server(host)
 
-    webHandler=WebHandler(host=host, port=DEFAULT_PORT)
+    webHandler = WebHandler(host=host, port=DEFAULT_PORT)
     response, headers = webHandler.rest(url=VSP_LIST_PATH, method='GET', data=None, userId=username)
     jResult = json.loads(response)
     jSrvices = jResult["results"]
-    reportFileName = 'upgradereport.csv'  #datetime.now()
+    reportFileName = 'upgradereport.csv'  # datetime.now()
     reportFile = open(reportFileName, 'w')
     reportFile.write(Service.header())
 
@@ -69,85 +70,91 @@ def main(argv):
         else:
             lockingUser = jService["lockingUser"]
 
-        service = Service(serviceName=serviceName, vspId=vspId, vendorName=vendorName, lockingUser=lockingUser )
-        print service
-       # Will try to GET the service
+        service = Service(serviceName=serviceName, vspId=vspId, vendorName=vendorName, lockingUser=lockingUser)
+        print(service)
+        # Will try to GET the service
         res = service.Get()
         if res == 500:
-           serviceMigration(service, status, username)
+            serviceMigration(service, status, username)
         else:
-           print "Service {0} was tested and does not need a migration".format(serviceName)
+            print("Service {0} was tested and does not need a migration".format(serviceName))
 
         reportFile.write(service.line())
     reportFile.close()
 
 
 def serviceMigration(service, serviceStatus, username):
-        print "Service {0} was tested and it needs a migration".format(service.serviceName)
-        print "Service {0} - Migration start"
-        if serviceStatus == "Locked":
-           print "Service {0} is locked - forcing checkin".format(service.serviceName)
-           service.Checkin()
-        print "Doing new checkout"
-        service.Checkout(username)
-
-        zipName = service.DownloadHeat()
-        if not zipName:
-            print "no heat found"
-            service.uploadStatus = "no heat found"
-        else:
-            uploadResponse = service.UploadHeat(zipName)
-            uploadResults = json.loads(uploadResponse)
-            if uploadResults['status'] == 'Success' and uploadResults['errors'].__len__() == 0:
-                service.uploadStatus = "Heat uploaded successfully"
-            else:
-                service.uploadStatus = "Heat uploaded with errors"
-        print "Doing new checkin"
+    print("Service {0} was tested and it needs a migration".format(service.serviceName))
+    print("Service {0} - Migration start")
+    if serviceStatus == "Locked":
+        print("Service {0} is locked - forcing checkin".format(service.serviceName))
         service.Checkin()
+    print("Doing new checkout")
+    service.Checkout(username)
+
+    zipName = service.DownloadHeat()
+    if not zipName:
+        print("no heat found")
+        service.uploadStatus = "no heat found"
+    else:
+        uploadResponse = service.UploadHeat(zipName)
+        uploadResults = json.loads(uploadResponse)
+        if uploadResults['status'] == 'Success' and uploadResults['errors'].__len__() == 0:
+            service.uploadStatus = "Heat uploaded successfully"
+        else:
+            service.uploadStatus = "Heat uploaded with errors"
+    print("Doing new checkin")
+    service.Checkin()
 
-        print "Service {0} - Migration end"
+    print("Service {0} - Migration end")
 
 
-def  printHelp():
+def printHelp():
     print("Upgrade script Help:")
     print("==================================")
     print("1607_to_1610 -h                            --> get help")
     print("1607_to_1610 -a <username>/<password> [-ip {ip}]")
     print("Example: 1607_to_1610 -a root/secret")
 
+
 class Service(object):
-    def __init__(self, serviceName, vspId ,vendorName, lockingUser):
+    def __init__(self, serviceName, vspIdvendorName, lockingUser):
         self.serviceName = serviceName
         self.vspId = vspId
         self.vendorName = vendorName
         self.lockingUser = lockingUser
-        self.webHandler = WebHandler(host=Service.serveraddress, port=DEFAULT_PORT) # Schema?
+        self.webHandler = WebHandler(host=Service.serveraddress, port=DEFAULT_PORT)  # Schema?
         self.uploadStatus = "not started"
 
     def __repr__(self):
-        return 'Name: {0}, Id: {1}, Vendor: {2}, locked by: {3}, status {4}'.format(self.serviceName, self.vspId ,self.vendorName, self.lockingUser, self.uploadStatus)
+        return 'Name: {0}, Id: {1}, Vendor: {2}, locked by: {3}, status {4}'.format(self.serviceName, self.vspId,
+                                                                                    self.vendorName, self.lockingUser,
+                                                                                    self.uploadStatus)
+
     @classmethod
     def header(cls):
         return 'Name,Id,Vendor,locked-by,status\n'
 
     @classmethod
     def server(cls, address):
-        cls.serveraddress=address
+        cls.serveraddress = address
 
     def line(self):
-        return '{0},{1},{2},{3},{4}\n'.format(self.serviceName, self.vspId ,self.vendorName, self.lockingUser, self.uploadStatus)
+        return '{0},{1},{2},{3},{4}\n'.format(self.serviceName, self.vspId, self.vendorName, self.lockingUser,
+                                              self.uploadStatus)
 
     def Checkout(self, userId):
         # /v1.0/vendor-software-products/{vspId}/actions
-        urlpath=VSP_ACTIONS_PATH.format(vspId=self.vspId)
-        response, headers = self.webHandler.rest( url=urlpath, method='PUT', data={"action": "Checkout"}, userId=userId)
-        self.lockingUser=userId #we will later use this user to checkin
+        urlpath = VSP_ACTIONS_PATH.format(vspId=self.vspId)
+        response, headers = self.webHandler.rest(url=urlpath, method='PUT', data={"action": "Checkout"}, userId=userId)
+        self.lockingUser = userId  # we will later use this user to checkin
         return response
 
     def Checkin(self):
         # /v1.0/vendor-software-products/{vspId}/actions
         urlpath = VSP_ACTIONS_PATH.format(vspId=self.vspId)
-        response, headers = self.webHandler.rest(url=urlpath, method='PUT', data={"action": "Checkin"}, userId=self.lockingUser)
+        response, headers = self.webHandler.rest(url=urlpath, method='PUT', data={"action": "Checkin"},
+                                                 userId=self.lockingUser)
         return response
 
     def Get(self):
@@ -156,38 +163,39 @@ class Service(object):
         try:
             response, headers = self.webHandler.rest(url=urlpath, method='GET', data=None, userId=self.lockingUser)
         except HttpError as e:
-            print e.message
+            print(e.message)
             response = e.status
         return response
 
     def UploadHeat(self, zipName):
-            #/v1.0/vendor-software-products/{vspId}/upload
-            urlpath = VSP_UPLOAD_PATH.format(vspId=self.vspId)
-            try:
-                fields = []
-                with open(zipName, 'rb') as fin:
-                    buffer = fin.read()
-                    fin.close()
-                files = [('upload', 'heatfile.zip', buffer)]
-                response = self.webHandler.post_multipart('HTTP', urlpath, fields, files, self.lockingUser)
-
-                return response
-            finally:
-                print "done upload"
+        /v1.0/vendor-software-products/{vspId}/upload
+        urlpath = VSP_UPLOAD_PATH.format(vspId=self.vspId)
+        try:
+            fields = []
+            with open(zipName, 'rb') as fin:
+                buffer = fin.read()
+                fin.close()
+            files = [('upload', 'heatfile.zip', buffer)]
+            response = self.webHandler.post_multipart('HTTP', urlpath, fields, files, self.lockingUser)
+
+            return response
+        finally:
+            print("done upload")
 
     def DownloadHeat(self):
-        urlpath=VSP_DOWNLOAD_PATH.format(vspId=self.vspId)
+        urlpath = VSP_DOWNLOAD_PATH.format(vspId=self.vspId)
         try:
-            response, headers = self.webHandler.rest(url=urlpath, method='Get', data=None, userId=self.lockingUser, accept='application/octet-stream')
+            response, headers = self.webHandler.rest(url=urlpath, method='Get', data=None, userId=self.lockingUser,
+                                                     accept='application/octet-stream')
         except HttpError as e:
             if e.status == 404:
                 return ""
 
         for (key, value) in headers:
             if key.lower() == "content-disposition":
-                file_name = value[value.index('=')+1:]
+                file_name = value[value.index('=') + 1:]
                 break
-        heatsDir= os.path.join(os.path.dirname(__file__), 'heats')
+        heatsDir = os.path.join(os.path.dirname(__file__), 'heats')
         if not os.path.exists(heatsDir):
             os.makedirs(heatsDir)
         file_name = os.path.join(heatsDir, file_name)
@@ -198,7 +206,6 @@ class Service(object):
         return file_name
 
 
-
 class WebHandler(object):
     def __init__(self, host, port):
         self.host = host
@@ -208,13 +215,13 @@ class WebHandler(object):
         connection = httplib.HTTPConnection(host=self.host, port=self.port)
 
         try:
-            headers = {'Content-Type':content_type ,'Accept':accept}
+            headers = {'Content-Type': content_type, 'Accept': accept}
             headers['USER_ID'] = userId
 
             connection.request(method=method, headers=headers, body=json.dumps(data), url=url)
             response = connection.getresponse()
             if response.status not in range(200, 300):
-                raise HttpError(status= response.status, message=response.reason)
+                raise HttpError(status=response.status, message=response.reason)
 
             return response.read(), response.getheaders()
         finally:
@@ -241,7 +248,7 @@ class WebHandler(object):
         h.endheaders()
         h.send(body)
         errcode, errmsg, headers = h.getreply()
-        print errcode, errmsg, headers
+        print(errcode, errmsg, headers)
         return h.file.read()
 
     def encode_multipart_form_data(self, fields, files):
@@ -268,14 +275,15 @@ class WebHandler(object):
     def get_content_type(self, filename):
         return mimetypes.guess_type(filename)[0] or 'application/octet-stream'
 
+
 class HttpError(Exception):
     def __init__(self, status, message):
         self.status = status
-        self.message=message
+        self.message = message
+
     def __str__(self):
         return repr(self.value, self.message)
 
+
 if __name__ == "__main__":
     main(sys.argv[1:])
-
-