def main()

in security-admin/scripts/rolebasedusersearchutil.py [0:0]


def main(argv):
    FORMAT = '%(asctime)-15s %(message)s'
    logging.basicConfig(format=FORMAT, level=logging.DEBUG)
    ews_lib = os.path.join(RANGER_ADMIN_HOME,"ews","lib")
    app_home = os.path.join(RANGER_ADMIN_HOME,"ews","webapp")
    ranger_log = os.path.join(RANGER_ADMIN_HOME,"ews","logs")

    if os.environ['JAVA_HOME'] == "":
        log("[E] ---------- JAVA_HOME environment property not defined, aborting installation. ----------", "error")
        sys.exit(1)
    JAVA_BIN=os.path.join(os.environ['JAVA_HOME'],'bin','java')
    if os_name == "WINDOWS" :
        JAVA_BIN = JAVA_BIN+'.exe'
    if os.path.isfile(JAVA_BIN):
        pass
    else:
        while os.path.isfile(JAVA_BIN) == False:
            log("Enter java executable path: :","info")
            JAVA_BIN=input()
    log("[I] Using Java:" + str(JAVA_BIN),"info")
    userName = ""
    password = ""
    userRole = ""
    userNameMsgFlag = False
    passwordMsgFlag = False
    userRoleMsgFlag = False
    userroleFlag = False

    if len(argv) == 1:
        log("[I] " +msgPrompt + " or \n" + msgCommand + "\n " +msgRoleList, "info")
        userName = input('Enter a user name: ')
        password = getpass.getpass('Enter a user password:')
        userRole = input('Enter a role: ')
    elif len(argv) > 1 and len(argv) < 8 :
        for i in range(1, len(sys.argv)) :
            if sys.argv[i] == "-u" :
                if len(argv)-1 > i+1 or len(argv)-1 == i+1:
                    userName = sys.argv[i+1]
                    continue
            if sys.argv[i] == "-p" :
                if len(argv)-1 > i+1 or len(argv)-1 == i+1:
                    password = sys.argv[i+1]
                    continue
            if sys.argv[i] == "-r" :
                if len(argv)-1 > i+1 or len(argv)-1 == i+1:
                    userRole = sys.argv[i+1]
                userroleFlag = True
                continue
    else:
        log("[E] Invalid argument list.", "error")
        log("[I] " + msgCommand + "\n  " + msgRoleList, "info")
        sys.exit(1)

    if userName == "" :
       userNameMsgFlag = True
    elif userName != "" :
        if userName.lower() == "-p" or userName.lower() == "-r" or userName.lower() == "-u" :
             userNameMsgFlag = True
    if password == "" :
        passwordMsgFlag = True
    elif  password.lower() == "-p" or password.lower() == "-r" or password.lower() == "-u" :
        passwordMsgFlag = True
    if userroleFlag == True :
        if userRole == "":
           userRoleMsgFlag = True
        elif userRole != "":
            if userRole.lower() == "-p" or userRole.lower() == "-r" or userRole.lower() == "-u":
                userRoleMsgFlag = True
    if userNameMsgFlag == True or  passwordMsgFlag == True or userRoleMsgFlag == True :
        log("[I] "+msgPrompt + " or \n" + msgCommand + "\n  " +msgRoleList, "info")
    if userNameMsgFlag == True :
        userName = input('Enter a user name: ')
    if passwordMsgFlag == True :
        password = getpass.getpass("Enter user password:")
    if userRoleMsgFlag == True :
        userRole = input('Enter a role: ')
    if userName != "" and password != "" :
        if os_name == "LINUX":
            path = os.path.join("%s","WEB-INF","classes","conf:%s","WEB-INF","classes","lib","*:%s","WEB-INF",":%s","META-INF",":%s","WEB-INF","lib","*:%s","WEB-INF","classes",":%s","WEB-INF","classes","META-INF:%s/*")%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home,ews_lib)
        elif os_name == "WINDOWS":
            path = os.path.join("%s","WEB-INF","classes","conf;%s","WEB-INF","classes","lib","*;%s","WEB-INF",";%s","META-INF",";%s","WEB-INF","lib","*;%s","WEB-INF","classes",";%s","WEB-INF","classes","META-INF" )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home)
        if userRole != "" :
            get_java_cmd = "%s -Dlogdir=%s -Dlogback.configurationFile=db_patch.logback.xml -cp %s org.apache.ranger.patch.cliutil.%s %s %s %s"%(JAVA_BIN,ranger_log,path,'RoleBasedUserSearchUtil',userName,password,userRole)
        if userRole == "" :
            get_java_cmd = "%s -Dlogdir=%s -Dlogback.configurationFile=db_patch.logback.xml -cp %s org.apache.ranger.patch.cliutil.%s %s %s "%(JAVA_BIN,ranger_log,path,'RoleBasedUserSearchUtil',userName,password)
        if os_name == "LINUX":
            ret = subprocess.call(shlex.split(get_java_cmd))
        elif os_name == "WINDOWS":
            ret = subprocess.call(get_java_cmd)
        if ret == 0:
            log("[I] List fetched successfully","info")
        else:
            log("[E] Unable to fetch user list of given role ","error")
            sys.exit(1)
    else:
        log("[E] Input Error","error")