You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by pr...@apache.org on 2017/03/10 17:26:27 UTC
[1/2] ranger git commit: RANGER-1440 : Improve install script to
retry failing statements
Repository: ranger
Updated Branches:
refs/heads/master 910aff0ed -> 284ca416a
http://git-wip-us.apache.org/repos/asf/ranger/blob/284ca416/security-admin/scripts/dba_script.py
----------------------------------------------------------------------
diff --git a/security-admin/scripts/dba_script.py b/security-admin/scripts/dba_script.py
index 1f99328..83d6fe7 100644
--- a/security-admin/scripts/dba_script.py
+++ b/security-admin/scripts/dba_script.py
@@ -25,6 +25,7 @@ import getpass
from os.path import basename
from subprocess import Popen,PIPE
from datetime import date
+import time
globalDict = {}
os_name = platform.system()
@@ -127,6 +128,18 @@ def jisql_log(query, db_root_password):
query = query.replace(" -p '"+db_root_password+"'" , " -p '"+masked_pwd_string+"'")
log("[JISQL] "+query, "info")
+def subprocessCallWithRetry(query):
+ retryCount=1
+ returnCode = subprocess.call(query)
+ while returnCode!=0:
+ retryCount=retryCount+1
+ time.sleep(1)
+ log("[I] SQL statement execution failed!! retrying attempt "+str(retryCount)+" of total 3" ,"info")
+ returnCode = subprocess.call(query)
+ if(returnCode!=0 and retryCount>=3):
+ break
+ return returnCode
+
class BaseDB(object):
def create_rangerdb_user(self, root_user, db_user, db_password, db_root_password,dryMode):
@@ -218,11 +231,11 @@ class MysqlConf(BaseDB):
if is_unix:
query = get_cmd + " -query \"create user '%s'@'%s';\"" %(db_user, host)
jisql_log(query, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"create user '%s'@'%s';\" -c ;" %(db_user, host)
jisql_log(query, db_root_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret == 0:
if self.verify_user(root_user, db_root_password, host, db_user, get_cmd, dryMode):
log("[I] MySQL user " + db_user +" created for host " + host ,"info")
@@ -238,18 +251,14 @@ class MysqlConf(BaseDB):
query = get_cmd + " -query \"create user '%s'@'%s' identified by '%s';\"" %(db_user, host, db_password)
query_with_masked_pwd = get_cmd + " -query \"create user '%s'@'%s' identified by '%s';\"" %(db_user, host, masked_pwd_string)
jisql_log(query_with_masked_pwd, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"create user '%s'@'%s' identified by '%s';\" -c ;" %(db_user, host, db_password)
query_with_masked_pwd = get_cmd + " -query \"create user '%s'@'%s' identified by '%s';\" -c ;" %(db_user, host, masked_pwd_string)
jisql_log(query_with_masked_pwd, db_root_password)
- ret = subprocess.call(query)
- if ret == 0:
- if self.verify_user(root_user, db_root_password, host, db_user, get_cmd,dryMode):
- log("[I] MySQL user " + db_user +" created for host " + host ,"info")
- else:
- log("[E] Creating MySQL user " + db_user +" failed..","error")
- sys.exit(1)
+ ret = subprocessCallWithRetry(query)
+ if self.verify_user(root_user, db_root_password, host, db_user, get_cmd,dryMode):
+ log("[I] MySQL user " + db_user +" created for host " + host ,"info")
else:
log("[E] Creating MySQL user " + db_user +" failed..","error")
sys.exit(1)
@@ -287,12 +296,13 @@ class MysqlConf(BaseDB):
log("[I] Database does not exist, Creating database " + db_name,"info")
jisql_log(query, db_root_password)
if is_unix:
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret != 0:
- log("[E] Database creation failed..","error")
- sys.exit(1)
+ if not self.verify_db(root_user, db_root_password, db_name,dryMode):
+ log("[E] Database creation failed..","error")
+ sys.exit(1)
else:
if self.verify_db(root_user, db_root_password, db_name,dryMode):
log("[I] Creating database " + db_name + " succeeded", "info")
@@ -314,21 +324,21 @@ class MysqlConf(BaseDB):
if is_unix:
query = get_cmd + " -query \"grant all privileges on %s.* to '%s'@'%s' with grant option;\"" %(db_name,db_user, host)
jisql_log(query, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"grant all privileges on %s.* to '%s'@'%s' with grant option;\" -c ;" %(db_name,db_user, host)
jisql_log(query, db_root_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret == 0:
log("[I] ---------- FLUSH PRIVILEGES ----------" , "info")
if is_unix:
query = get_cmd + " -query \"FLUSH PRIVILEGES;\""
jisql_log(query, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"FLUSH PRIVILEGES;\" -c ;"
jisql_log(query, db_root_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret == 0:
log("[I] Privileges granted to '" + db_user + "' on '"+db_name+"'", "info")
else:
@@ -441,31 +451,27 @@ class OracleConf(BaseDB):
query = get_cmd + " -c \; -query 'create user %s identified by \"%s\";'" %(db_user, db_password)
query_with_masked_pwd = get_cmd + " -c \; -query 'create user %s identified by \"%s\";'" %(db_user,masked_pwd_string)
jisql_log(query_with_masked_pwd, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"create user %s identified by \"%s\";\" -c ;" %(db_user, db_password)
query_with_masked_pwd = get_cmd + " -query \"create user %s identified by \"%s\";\" -c ;" %(db_user, masked_pwd_string)
jisql_log(query_with_masked_pwd, db_root_password)
- ret = subprocess.call(query)
- if ret == 0:
- if self.verify_user(root_user, db_user, db_root_password,dryMode):
- log("[I] User " + db_user + " created", "info")
- log("[I] Granting permission to " + db_user, "info")
- if is_unix:
- query = get_cmd + " -c \; -query 'GRANT CREATE SESSION,CREATE PROCEDURE,CREATE TABLE,CREATE VIEW,CREATE SEQUENCE,CREATE PUBLIC SYNONYM,CREATE ANY SYNONYM,CREATE TRIGGER,UNLIMITED Tablespace TO %s;'" % (db_user)
- jisql_log(query, db_root_password)
- ret = subprocess.call(shlex.split(query))
- elif os_name == "WINDOWS":
- query = get_cmd + " -query \"GRANT CREATE SESSION,CREATE PROCEDURE,CREATE TABLE,CREATE VIEW,CREATE SEQUENCE,CREATE PUBLIC SYNONYM,CREATE ANY SYNONYM,CREATE TRIGGER,UNLIMITED Tablespace TO %s;\" -c ;" % (db_user)
- jisql_log(query, db_root_password)
- ret = subprocess.call(query)
- if ret == 0:
- log("[I] Granting permissions to Oracle user '" + db_user + "' for %s done" %(self.host), "info")
- else:
- log("[E] Granting permissions to Oracle user '" + db_user + "' failed..", "error")
- sys.exit(1)
+ ret = subprocessCallWithRetry(query)
+ if self.verify_user(root_user, db_user, db_root_password,dryMode):
+ log("[I] User " + db_user + " created", "info")
+ log("[I] Granting permission to " + db_user, "info")
+ if is_unix:
+ query = get_cmd + " -c \; -query 'GRANT CREATE SESSION,CREATE PROCEDURE,CREATE TABLE,CREATE VIEW,CREATE SEQUENCE,CREATE PUBLIC SYNONYM,CREATE ANY SYNONYM,CREATE TRIGGER,UNLIMITED Tablespace TO %s;'" % (db_user)
+ jisql_log(query, db_root_password)
+ ret = subprocessCallWithRetry(shlex.split(query))
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"GRANT CREATE SESSION,CREATE PROCEDURE,CREATE TABLE,CREATE VIEW,CREATE SEQUENCE,CREATE PUBLIC SYNONYM,CREATE ANY SYNONYM,CREATE TRIGGER,UNLIMITED Tablespace TO %s;\" -c ;" % (db_user)
+ jisql_log(query, db_root_password)
+ ret = subprocessCallWithRetry(query)
+ if ret == 0:
+ log("[I] Granting permissions to Oracle user '" + db_user + "' for %s done" %(self.host), "info")
else:
- log("[E] Creating Oracle user '" + db_user + "' failed..", "error")
+ log("[E] Granting permissions to Oracle user '" + db_user + "' failed..", "error")
sys.exit(1)
else:
log("[E] Creating Oracle user '" + db_user + "' failed..", "error")
@@ -516,20 +522,16 @@ class OracleConf(BaseDB):
if is_unix:
query = get_cmd + " -c \; -query \"create tablespace %s datafile '%s.dat' size 10M autoextend on;\"" %(db_name, db_name)
jisql_log(query, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"create tablespace %s datafile '%s.dat' size 10M autoextend on;\" -c ;" %(db_name, db_name)
jisql_log(query, db_root_password)
- ret = subprocess.call(query)
- if ret == 0:
- if self.verify_tablespace(root_user, db_root_password, db_name,dryMode):
- log("[I] Creating tablespace "+db_name+" succeeded", "info")
- status=True
- status = self.assign_tablespace(root_user, db_root_password, db_user, db_password, db_name, status,dryMode)
- return status
- else:
- log("[E] Creating tablespace "+db_name+" failed..", "error")
- sys.exit(1)
+ ret = subprocessCallWithRetry(query)
+ if self.verify_tablespace(root_user, db_root_password, db_name,dryMode):
+ log("[I] Creating tablespace "+db_name+" succeeded", "info")
+ status=True
+ status = self.assign_tablespace(root_user, db_root_password, db_user, db_password, db_name, status,dryMode)
+ return status
else:
log("[E] Creating tablespace "+db_name+" failed..", "error")
sys.exit(1)
@@ -544,11 +546,11 @@ class OracleConf(BaseDB):
if is_unix:
query = get_cmd +" -c \; -query 'alter user %s DEFAULT Tablespace %s;'" %(db_user, db_name)
jisql_log(query, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd +" -query \"alter user %s DEFAULT Tablespace %s;\" -c ;" %(db_user, db_name)
jisql_log(query, db_root_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret == 0:
log("[I] Assigning default tablespace to user '" + db_user + "' done..", "info")
else:
@@ -572,11 +574,11 @@ class OracleConf(BaseDB):
if is_unix:
query = get_cmd + " -c \; -query \"create tablespace %s datafile '%s.dat' size 10M autoextend on;\"" %(audit_db_name, audit_db_name)
jisql_log(query, audit_db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"create tablespace %s datafile '%s.dat' size 10M autoextend on;\" -c ;" %(audit_db_name, audit_db_name)
jisql_log(query, audit_db_root_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret != 0:
log("[E] Tablespace creation failed..","error")
sys.exit(1)
@@ -594,11 +596,11 @@ class OracleConf(BaseDB):
if is_unix:
query = get_cmd +" -c \; -query 'alter user %s DEFAULT Tablespace %s;'" %(audit_db_user, audit_db_name)
jisql_log(query, audit_db_root_password)
- ret2 = subprocess.call(shlex.split(query))
+ ret2 = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd +" -query \"alter user %s DEFAULT Tablespace %s;\" -c ;" %(audit_db_user, audit_db_name)
jisql_log(query, audit_db_root_password)
- ret2 = subprocess.call(query)
+ ret2 = subprocessCallWithRetry(query)
if (ret2 == 0):
log("[I] Assigning default tablespace to user '" + audit_db_user + "' done..", "info")
@@ -613,11 +615,11 @@ class OracleConf(BaseDB):
if is_unix:
query = get_cmd + " -c \; -query 'GRANT CREATE SESSION,CREATE PROCEDURE,CREATE TABLE,CREATE VIEW,CREATE SEQUENCE,CREATE PUBLIC SYNONYM,CREATE ANY SYNONYM,CREATE TRIGGER,UNLIMITED Tablespace TO %s;'" % (db_user)
jisql_log(query, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"GRANT CREATE SESSION,CREATE PROCEDURE,CREATE TABLE,CREATE VIEW,CREATE SEQUENCE,CREATE PUBLIC SYNONYM,CREATE ANY SYNONYM,CREATE TRIGGER,UNLIMITED Tablespace TO %s;\" -c ;" % (db_user)
jisql_log(query, db_root_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret == 0:
log("[I] Granted permission to " + db_user, "info")
return True
@@ -643,18 +645,14 @@ class OracleConf(BaseDB):
query = get_cmd + " -c \; -query 'create user %s identified by \"%s\";'" %(db_user, db_password)
query_with_masked_pwd = get_cmd + " -c \; -query 'create user %s identified by \"%s\";'" %(db_user, masked_pwd_string)
jisql_log(query_with_masked_pwd, audit_db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"create user %s identified by \"%s\";\" -c ;" %(db_user, db_password)
query_with_masked_pwd = get_cmd + " -query \"create user %s identified by \"%s\";\" -c ;" %(db_user, masked_pwd_string)
jisql_log(query_with_masked_pwd, audit_db_root_password)
- ret = subprocess.call(query)
- if ret == 0:
- if self.verify_user(audit_db_root_user, db_user, audit_db_root_password,dryMode):
- log("[I] User " + db_user + " created", "info")
- else:
- log("[E] Creating Oracle user '" + db_user + "' failed..", "error")
- sys.exit(1)
+ ret = subprocessCallWithRetry(query)
+ if self.verify_user(audit_db_root_user, db_user, audit_db_root_password,dryMode):
+ log("[I] User " + db_user + " created", "info")
else:
log("[E] Creating Oracle user '" + db_user + "' failed..", "error")
sys.exit(1)
@@ -672,29 +670,28 @@ class OracleConf(BaseDB):
query = get_cmd + " -c \; -query 'create user %s identified by \"%s\";'" %(audit_db_user, audit_db_password)
query_with_masked_pwd = get_cmd + " -c \; -query 'create user %s identified by \"%s\";'" %(audit_db_user, masked_pwd_string)
jisql_log(query_with_masked_pwd, audit_db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"create user %s identified by \"%s\";\" -c ;" %(audit_db_user, audit_db_password)
query_with_masked_pwd = get_cmd + " -query \"create user %s identified by \"%s\";\" -c ;" %(audit_db_user, masked_pwd_string)
jisql_log(query_with_masked_pwd, audit_db_root_password)
- ret = subprocess.call(query)
- if ret == 0:
- if self.verify_user(audit_db_root_user, audit_db_user, audit_db_root_password,dryMode):
- if is_unix:
- query = get_cmd + " -c \; -query \"GRANT CREATE SESSION TO %s;\"" %(audit_db_user)
- jisql_log(query, audit_db_root_password)
- ret = subprocess.call(shlex.split(query))
- elif os_name == "WINDOWS":
- query = get_cmd + " -query \"GRANT CREATE SESSION TO %s;\" -c ;" %(audit_db_user)
- jisql_log(query, audit_db_root_password)
- ret = subprocess.call(query)
- if ret == 0:
- log("[I] Granting permission to " + audit_db_user + " done", "info")
- else:
- log("[E] Granting permission to " + audit_db_user + " failed..", "error")
- sys.exit(1)
+ ret = subprocessCallWithRetry(query)
+ if self.verify_user(audit_db_root_user, audit_db_user, audit_db_root_password,dryMode):
+ if is_unix:
+ query = get_cmd + " -c \; -query \"GRANT CREATE SESSION TO %s;\"" %(audit_db_user)
+ jisql_log(query, audit_db_root_password)
+ ret = subprocessCallWithRetry(shlex.split(query))
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"GRANT CREATE SESSION TO %s;\" -c ;" %(audit_db_user)
+ jisql_log(query, audit_db_root_password)
+ ret = subprocessCallWithRetry(query)
+ if ret == 0:
+ log("[I] Granting permission to " + audit_db_user + " done", "info")
else:
- log("[I] Creating audit user " + audit_db_user + " failed..", "info")
+ log("[E] Granting permission to " + audit_db_user + " failed..", "error")
+ sys.exit(1)
+ else:
+ log("[I] Creating audit user " + audit_db_user + " failed..", "info")
else:
logFile("create user %s identified by \"%s\";" %(audit_db_user, audit_db_password))
logFile("GRANT CREATE SESSION TO %s;" % (audit_db_user))
@@ -775,18 +772,14 @@ class PostgresConf(BaseDB):
query = get_cmd + " -query \"CREATE USER %s WITH LOGIN PASSWORD '%s';\"" %(db_user, db_password)
query_with_masked_pwd = get_cmd + " -query \"CREATE USER %s WITH LOGIN PASSWORD '%s';\"" %(db_user, masked_pwd_string)
jisql_log(query_with_masked_pwd, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"CREATE USER %s WITH LOGIN PASSWORD '%s';\" -c ;" %(db_user, db_password)
query_with_masked_pwd = get_cmd + " -query \"CREATE USER %s WITH LOGIN PASSWORD '%s';\" -c ;" %(db_user, masked_pwd_string)
jisql_log(query_with_masked_pwd, db_root_password)
- ret = subprocess.call(query)
- if ret == 0:
- if self.verify_user(root_user, db_root_password, db_user,dryMode):
- log("[I] Postgres user " + db_user + " created", "info")
- else:
- log("[E] Postgres user " +db_user+" creation failed..", "error")
- sys.exit(1)
+ ret = subprocessCallWithRetry(query)
+ if self.verify_user(root_user, db_root_password, db_user,dryMode):
+ log("[I] Postgres user " + db_user + " created", "info")
else:
log("[E] Postgres user " +db_user+" creation failed..", "error")
sys.exit(1)
@@ -820,21 +813,17 @@ class PostgresConf(BaseDB):
if is_unix:
query = get_cmd + " -query \"create database %s with OWNER %s;\"" %(db_name, db_user)
jisql_log(query, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"create database %s with OWNER %s;\" -c ;" %(db_name, db_user)
jisql_log(query, db_root_password)
- ret = subprocess.call(query)
- if ret != 0:
+ ret = subprocessCallWithRetry(query)
+ if self.verify_db(root_user, db_root_password, db_name,dryMode):
+ log("[I] Creating database " + db_name + " succeeded", "info")
+ return True
+ else:
log("[E] Database creation failed..","error")
sys.exit(1)
- else:
- if self.verify_db(root_user, db_root_password, db_name,dryMode):
- log("[I] Creating database " + db_name + " succeeded", "info")
- return True
- else:
- log("[E] Database creation failed..","error")
- sys.exit(1)
else:
logFile("CREATE DATABASE %s WITH OWNER %s;" %(db_name, db_user))
@@ -845,11 +834,11 @@ class PostgresConf(BaseDB):
if is_unix:
query = get_cmd + " -query \"GRANT ALL PRIVILEGES ON DATABASE %s to %s;\"" %(db_name, db_user)
jisql_log(query, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"GRANT ALL PRIVILEGES ON DATABASE %s to %s;\" -c ;" %(db_name, db_user)
jisql_log(query, db_root_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret != 0:
log("[E] Granting all privileges on database "+db_name+" to user "+db_user+" failed..", "error")
sys.exit(1)
@@ -857,70 +846,90 @@ class PostgresConf(BaseDB):
if is_unix:
query = get_cmd + " -query \"GRANT ALL PRIVILEGES ON SCHEMA public TO %s;\"" %(db_user)
jisql_log(query, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"GRANT ALL PRIVILEGES ON SCHEMA public TO %s;\" -c ;" %(db_user)
jisql_log(query, db_root_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret != 0:
log("[E] Granting all privileges on schema public to user "+db_user+" failed..", "error")
sys.exit(1)
if is_unix:
- query = get_cmd + " -query \"SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';\""
+ query = get_cmd + " -query \"GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO %s;\"" %(db_user)
jisql_log(query, db_root_password)
- output = check_output(query)
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
- query = get_cmd + " -query \"SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';\" -c ;"
+ query = get_cmd + " -query \"GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO %s;\" -c ;" %(db_user)
jisql_log(query, db_root_password)
- output = check_output(query)
- for each_line in output.split('\n'):
- if len(each_line) == 0 : continue
- if re.search(' |', each_line):
- tablename , value = each_line.strip().split(" |",1)
- tablename = tablename.strip()
- if is_unix:
- query1 = get_cmd + " -query \"GRANT ALL PRIVILEGES ON TABLE %s TO %s;\"" %(tablename,db_user)
- jisql_log(query1, db_root_password)
- ret = subprocess.call(shlex.split(query1))
- if ret != 0:
- log("[E] Granting all privileges on tablename "+tablename+" to user "+db_user+" failed..", "error")
- sys.exit(1)
- elif os_name == "WINDOWS":
- query1 = get_cmd + " -query \"GRANT ALL PRIVILEGES ON TABLE %s TO %s;\" -c ;" %(tablename,db_user)
- jisql_log(query1, db_root_password)
- ret = subprocess.call(query1)
- if ret != 0:
- log("[E] Granting all privileges on tablename "+tablename+" to user "+db_user+" failed..", "error")
- sys.exit(1)
+ ret = subprocessCallWithRetry(query)
+ if ret != 0:
+ log("[E] Granting all privileges on all tables in schema public to user "+db_user+" failed..", "error")
+ if is_unix:
+ query = get_cmd + " -query \"SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';\""
+ jisql_log(query, db_root_password)
+ output = check_output(query)
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';\" -c ;"
+ jisql_log(query, db_root_password)
+ output = check_output(query)
+ for each_line in output.split('\n'):
+ if len(each_line) == 0 : continue
+ if re.search(' |', each_line):
+ tablename , value = each_line.strip().split(" |",1)
+ tablename = tablename.strip()
+ if is_unix:
+ query1 = get_cmd + " -query \"GRANT ALL PRIVILEGES ON TABLE %s TO %s;\"" %(tablename,db_user)
+ jisql_log(query1, db_root_password)
+ ret = subprocessCallWithRetry(shlex.split(query1))
+ if ret != 0:
+ log("[E] Granting all privileges on tablename "+tablename+" to user "+db_user+" failed..", "error")
+ sys.exit(1)
+ elif os_name == "WINDOWS":
+ query1 = get_cmd + " -query \"GRANT ALL PRIVILEGES ON TABLE %s TO %s;\" -c ;" %(tablename,db_user)
+ jisql_log(query1, db_root_password)
+ ret = subprocessCallWithRetry(query1)
+ if ret != 0:
+ log("[E] Granting all privileges on tablename "+tablename+" to user "+db_user+" failed..", "error")
+ sys.exit(1)
if is_unix:
- query = get_cmd + " -query \"SELECT sequence_name FROM information_schema.sequences where sequence_schema='public';\""
- output = check_output(query)
+ query = get_cmd + " -query \"GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO %s;\"" %(db_user)
+ jisql_log(query, db_root_password)
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
- query = get_cmd + " -query \"SELECT sequence_name FROM information_schema.sequences where sequence_schema='public';\" -c ;"
+ query = get_cmd + " -query \"GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO %s;\" -c ;" %(db_user)
jisql_log(query, db_root_password)
- output = check_output(query)
- for each_line in output.split('\n'):
- if len(each_line) == 0 : continue
- if re.search(' |', each_line):
- sequence_name , value = each_line.strip().split(" |",1)
- sequence_name = sequence_name.strip()
- if is_unix:
- query1 = get_cmd + " -query \"GRANT ALL PRIVILEGES ON SEQUENCE %s TO %s;\"" %(sequence_name,db_user)
- jisql_log(query1, db_root_password)
- ret = subprocess.call(shlex.split(query1))
- if ret != 0:
- log("[E] Granting all privileges on sequence "+sequence_name+" to user "+db_user+" failed..", "error")
- sys.exit(1)
- elif os_name == "WINDOWS":
- query1 = get_cmd + " -query \"GRANT ALL PRIVILEGES ON SEQUENCE %s TO %s;\" -c ;" %(sequence_name,db_user)
- jisql_log(query1, db_root_password)
- ret = subprocess.call(query1)
- if ret != 0:
- log("[E] Granting all privileges on sequence "+sequence_name+" to user "+db_user+" failed..", "error")
- sys.exit(1)
+ ret = subprocessCallWithRetry(query)
+ if ret!=0:
+ log("[E] Granting all privileges on all sequences in schema public to user "+db_user+" failed..", "error")
+ if is_unix:
+ query = get_cmd + " -query \"SELECT sequence_name FROM information_schema.sequences where sequence_schema='public';\""
+ output = check_output(query)
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"SELECT sequence_name FROM information_schema.sequences where sequence_schema='public';\" -c ;"
+ jisql_log(query, db_root_password)
+ output = check_output(query)
+ for each_line in output.split('\n'):
+ if len(each_line) == 0 : continue
+ if re.search(' |', each_line):
+ sequence_name , value = each_line.strip().split(" |",1)
+ sequence_name = sequence_name.strip()
+ if is_unix:
+ query1 = get_cmd + " -query \"GRANT ALL PRIVILEGES ON SEQUENCE %s TO %s;\"" %(sequence_name,db_user)
+ jisql_log(query1, db_root_password)
+ ret = subprocessCallWithRetry(shlex.split(query1))
+ if ret != 0:
+ log("[E] Granting all privileges on sequence "+sequence_name+" to user "+db_user+" failed..", "error")
+ sys.exit(1)
+ elif os_name == "WINDOWS":
+ query1 = get_cmd + " -query \"GRANT ALL PRIVILEGES ON SEQUENCE %s TO %s;\" -c ;" %(sequence_name,db_user)
+ jisql_log(query1, db_root_password)
+ ret = subprocessCallWithRetry(query1)
+ if ret != 0:
+ log("[E] Granting all privileges on sequence "+sequence_name+" to user "+db_user+" failed..", "error")
+ sys.exit(1)
log("[I] Granting privileges TO user '"+db_user+"' on db '"+db_name+"' Done" , "info")
else:
@@ -1021,20 +1030,16 @@ class SqlServerConf(BaseDB):
query = get_cmd + " -c \; -query \"CREATE LOGIN %s WITH PASSWORD = '%s';\"" %(db_user,db_password)
query_with_masked_pwd = get_cmd + " -c \; -query \"CREATE LOGIN %s WITH PASSWORD = '%s';\"" %(db_user,masked_pwd_string)
jisql_log(query_with_masked_pwd, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"CREATE LOGIN %s WITH PASSWORD = '%s';\" -c ;" %(db_user,db_password)
query_with_masked_pwd = get_cmd + " -query \"CREATE LOGIN %s WITH PASSWORD = '%s';\" -c ;" %(db_user,masked_pwd_string)
jisql_log(query_with_masked_pwd, db_root_password)
- ret = subprocess.call(query)
- if ret == 0:
- if self.verify_user(root_user, db_root_password, db_user,dryMode):
- log("[I] SQL Server user " + db_user + " created", "info")
- else:
- log("[E] SQL Server user " +db_user+" creation failed..", "error")
- sys.exit(1)
+ ret = subprocessCallWithRetry(query)
+ if self.verify_user(root_user, db_root_password, db_user,dryMode):
+ log("[I] SQL Server Login " + db_user + " created", "info")
else:
- log("[E] SQL Server user " +db_user+" creation failed..", "error")
+ log("[E] SQL Server Login " +db_user+" creation failed..", "error")
sys.exit(1)
else:
logFile("CREATE LOGIN %s WITH PASSWORD = '%s';" %(db_user,db_password))
@@ -1065,22 +1070,18 @@ class SqlServerConf(BaseDB):
if is_unix:
query = get_cmd + " -c \; -query \"create database %s;\"" %(db_name)
jisql_log(query, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"create database %s;\" -c ;" %(db_name)
jisql_log(query, db_root_password)
- ret = subprocess.call(query)
- if ret != 0:
+ ret = subprocessCallWithRetry(query)
+ if self.verify_db(root_user, db_root_password, db_name,dryMode):
+ self.create_user(root_user, db_name ,db_user, db_password, db_root_password,dryMode)
+ log("[I] Creating database " + db_name + " succeeded", "info")
+ return True
+ else:
log("[E] Database creation failed..","error")
sys.exit(1)
- else:
- if self.verify_db(root_user, db_root_password, db_name,dryMode):
- self.create_user(root_user, db_name ,db_user, db_password, db_root_password,dryMode)
- log("[I] Creating database " + db_name + " succeeded", "info")
- return True
- else:
- log("[E] Database creation failed..","error")
- sys.exit(1)
else:
logFile("create database %s;" %(db_name))
@@ -1100,25 +1101,21 @@ class SqlServerConf(BaseDB):
if is_unix:
query = get_cmd + " -c \; -query \"CREATE USER %s for LOGIN %s;\"" %(db_user, db_user)
jisql_log(query, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"CREATE USER %s for LOGIN %s;\" -c ;" %(db_user, db_user)
jisql_log(query, db_root_password)
- ret = subprocess.call(query)
- if ret == 0:
- if is_unix:
- query = get_cmd + " -c \; -query \"SELECT name FROM sys.database_principals WHERE name = N'%s';\"" %(db_user)
- elif os_name == "WINDOWS":
- query = get_cmd + " -query \"SELECT name FROM sys.database_principals WHERE name = N'%s';\" -c ;" %(db_user)
- jisql_log(query, db_root_password)
- output = check_output(query)
- if output.strip(db_user + " |"):
- log("[I] User "+db_user+" exist ","info")
- else:
- log("[E] Database creation failed..","error")
- sys.exit(1)
+ ret = subprocessCallWithRetry(query)
+ if is_unix:
+ query = get_cmd + " -c \; -query \"SELECT name FROM sys.database_principals WHERE name = N'%s';\"" %(db_user)
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"SELECT name FROM sys.database_principals WHERE name = N'%s';\" -c ;" %(db_user)
+ jisql_log(query, db_root_password)
+ output = check_output(query)
+ if output.strip(db_user + " |"):
+ log("[I] User "+db_user+" exist ","info")
else:
- log("[E] Database creation failed..","error")
+ log("[E] User "+db_user+" creation failed..","error")
sys.exit(1)
else:
logFile("CREATE USER %s for LOGIN %s;" %(db_user, db_user))
@@ -1130,11 +1127,11 @@ class SqlServerConf(BaseDB):
if is_unix:
query = get_cmd + " -c \; -query \" EXEC sp_addrolemember N'db_owner', N'%s';\"" %(db_user)
jisql_log(query, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \" EXEC sp_addrolemember N'db_owner', N'%s';\" -c ;" %(db_user)
jisql_log(query, db_root_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret != 0:
sys.exit(1)
else:
@@ -1241,18 +1238,14 @@ class SqlAnywhereConf(BaseDB):
query = get_cmd + " -c \; -query \"CREATE USER %s IDENTIFIED BY '%s';\"" %(db_user,db_password)
query_with_masked_pwd = get_cmd + " -c \; -query \"CREATE USER %s IDENTIFIED BY '%s';\"" %(db_user,masked_pwd_string)
jisql_log(query_with_masked_pwd, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"CREATE USER %s IDENTIFIED BY '%s';\" -c ;" %(db_user,db_password)
query_with_masked_pwd = get_cmd + " -query \"CREATE USER %s IDENTIFIED BY '%s';\" -c ;" %(db_user,masked_pwd_string)
jisql_log(query_with_masked_pwd, db_root_password)
- ret = subprocess.call(query)
- if ret == 0:
- if self.verify_user(root_user, db_root_password, db_user,dryMode):
- log("[I] SQL Anywhere user " + db_user + " created", "info")
- else:
- log("[E] SQL Anywhere user " +db_user+" creation failed..", "error")
- sys.exit(1)
+ ret = subprocessCallWithRetry(query)
+ if self.verify_user(root_user, db_root_password, db_user,dryMode):
+ log("[I] SQL Anywhere user " + db_user + " created", "info")
else:
log("[E] SQL Anywhere user " +db_user+" creation failed..", "error")
sys.exit(1)
@@ -1297,24 +1290,20 @@ class SqlAnywhereConf(BaseDB):
query = get_cmd + " -c \; -query \"create database '%s' dba user '%s' dba password '%s' database size 100MB;\"" %(db_name,db_user, db_password)
query_with_masked_pwd = get_cmd + " -c \; -query \"create database '%s' dba user '%s' dba password '%s' database size 100MB;\"" %(db_name,db_user, masked_pwd_string)
jisql_log(query_with_masked_pwd, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"create database '%s' dba user '%s' dba password '%s' database size 100MB;\" -c ;" %(db_name,db_user, db_password)
query_with_masked_pwd = get_cmd + " -query \"create database '%s' dba user '%s' dba password '%s' database size 100MB;\" -c ;" %(db_name,db_user, masked_pwd_string)
jisql_log(query_with_masked_pwd, db_root_password)
- ret = subprocess.call(query)
- if ret != 0:
+ ret = subprocessCallWithRetry(query)
+ self.start_db(root_user, db_root_password, db_name,dryMode)
+ if self.verify_db(root_user, db_root_password, db_name,dryMode):
+ self.create_user(root_user, db_name ,db_user, db_password, db_root_password,dryMode)
+ log("[I] Creating database " + db_name + " succeeded", "info")
+ return True
+ else:
log("[E] Database creation failed..","error")
sys.exit(1)
- else:
- self.start_db(root_user, db_root_password, db_name,dryMode)
- if self.verify_db(root_user, db_root_password, db_name,dryMode):
- self.create_user(root_user, db_name ,db_user, db_password, db_root_password,dryMode)
- log("[I] Creating database " + db_name + " succeeded", "info")
- return True
- else:
- log("[E] Database creation failed..","error")
- sys.exit(1)
else:
logFile("create database %s dba user '%s' dba password '%s' database size 100MB;" %(db_name,db_user, db_password))
@@ -1335,26 +1324,22 @@ class SqlAnywhereConf(BaseDB):
query = get_cmd + " -c \; -query \"CREATE USER %s IDENTIFIED BY '%s';\"" %(db_user, db_password)
query_with_masked_pwd = get_cmd + " -c \; -query \"CREATE USER %s IDENTIFIED BY '%s';\"" %(db_user, masked_pwd_string)
jisql_log(query_with_masked_pwd, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"CREATE USER %s IDENTIFIED BY '%s';\" -c ;" %(db_user, db_password)
query_with_masked_pwd = get_cmd + " -query \"CREATE USER %s IDENTIFIED BY '%s';\" -c ;" %(db_user, masked_pwd_string)
jisql_log(query_with_masked_pwd, db_root_password)
- ret = subprocess.call(query)
- if ret == 0:
- if is_unix:
- query = get_cmd + " -c \; -query \"select name from syslogins where name ='%s';\"" %(db_user)
- elif os_name == "WINDOWS":
- query = get_cmd + " -query \"select name from syslogins where name ='%s';\" -c ;" %(db_user)
- jisql_log(query, db_root_password)
- output = check_output(query)
- if output.strip(db_user + " |"):
- log("[I] User "+db_user+" exist ","info")
- else:
- log("[E] Database creation failed..","error")
- sys.exit(1)
+ ret = subprocessCallWithRetry(query)
+ if is_unix:
+ query = get_cmd + " -c \; -query \"select name from syslogins where name ='%s';\"" %(db_user)
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"select name from syslogins where name ='%s';\" -c ;" %(db_user)
+ jisql_log(query, db_root_password)
+ output = check_output(query)
+ if output.strip(db_user + " |"):
+ log("[I] User "+db_user+" exist ","info")
else:
- log("[E] Database creation failed..","error")
+ log("[E] User "+db_user+" creation failed..","error")
sys.exit(1)
else:
logFile("CREATE USER %s IDENTIFIED BY '%s';" %(db_user, db_password))
@@ -1367,12 +1352,12 @@ class SqlAnywhereConf(BaseDB):
query = get_cmd + " -c \; -query \" GRANT CONNECT to %s IDENTIFIED BY '%s';\"" %(db_user,db_password)
query_with_masked_pwd = get_cmd + " -c \; -query \" GRANT CONNECT to %s IDENTIFIED BY '%s';\"" %(db_user,masked_pwd_string)
jisql_log(query_with_masked_pwd, db_root_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \" GRANT CONNECT to %s IDENTIFIED BY '%s';\"" %(db_user,db_password)
query_with_masked_pwd = get_cmd + " -query \" GRANT CONNECT to %s IDENTIFIED BY '%s';\"" %(db_user,masked_pwd_string)
jisql_log(query_with_masked_pwd, db_root_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret != 0:
sys.exit(1)
else:
http://git-wip-us.apache.org/repos/asf/ranger/blob/284ca416/security-admin/scripts/setup.sh
----------------------------------------------------------------------
diff --git a/security-admin/scripts/setup.sh b/security-admin/scripts/setup.sh
index 76bb119..87be127 100755
--- a/security-admin/scripts/setup.sh
+++ b/security-admin/scripts/setup.sh
@@ -1421,24 +1421,29 @@ check_python_command
run_dba_steps
if [ "$?" == "0" ]
then
-update_properties
-do_authentication_setup
+ update_properties
+ do_authentication_setup
else
log "[E] DB schema setup failed! Please contact Administrator."
exit 1
fi
if [ "$?" == "0" ]
then
-echo "ln -sf ${WEBAPP_ROOT}/WEB-INF/classes/conf ${INSTALL_DIR}/conf"
-ln -sf ${WEBAPP_ROOT}/WEB-INF/classes/conf ${INSTALL_DIR}/conf
+ echo "ln -sf ${WEBAPP_ROOT}/WEB-INF/classes/conf ${INSTALL_DIR}/conf"
+ ln -sf ${WEBAPP_ROOT}/WEB-INF/classes/conf ${INSTALL_DIR}/conf
else
exit 1
fi
if [ "$?" == "0" ]
then
-$PYTHON_COMMAND_INVOKER db_setup.py
+ $PYTHON_COMMAND_INVOKER db_setup.py
+ if [ "$?" == "0" ]
+ then
+ $PYTHON_COMMAND_INVOKER db_setup.py -javapatch
+ else
+ exit 1
+ fi
else
- exit 1
+ exit 1
fi
-$PYTHON_COMMAND_INVOKER db_setup.py -javapatch
echo "Installation of Ranger PolicyManager Web Application is completed."
http://git-wip-us.apache.org/repos/asf/ranger/blob/284ca416/security-admin/scripts/update_property.py
----------------------------------------------------------------------
diff --git a/security-admin/scripts/update_property.py b/security-admin/scripts/update_property.py
index 338fbf5..80ccdb8 100644
--- a/security-admin/scripts/update_property.py
+++ b/security-admin/scripts/update_property.py
@@ -16,10 +16,15 @@
import sys
import os
from xml.etree import ElementTree as ET
+from xml.parsers.expat import ExpatError
def write_properties_to_xml(xml_path, property_name='', property_value=''):
if(os.path.isfile(xml_path)):
- xml = ET.parse(xml_path)
+ try:
+ xml = ET.parse(xml_path)
+ except ExpatError:
+ print "Error while parsing file:"+xml_path
+ return -1
root = xml.getroot()
for child in root.findall('property'):
name = child.find("name").text.strip()
[2/2] ranger git commit: RANGER-1440 : Improve install script to
retry failing statements
Posted by pr...@apache.org.
RANGER-1440 : Improve install script to retry failing statements
Project: http://git-wip-us.apache.org/repos/asf/ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/284ca416
Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/284ca416
Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/284ca416
Branch: refs/heads/master
Commit: 284ca416a60533139889a0c3f68f20ae12fdd3cc
Parents: 910aff0
Author: pradeep <pr...@apache.org>
Authored: Fri Mar 10 10:21:15 2017 +0530
Committer: pradeep <pr...@apache.org>
Committed: Fri Mar 10 22:56:04 2017 +0530
----------------------------------------------------------------------
security-admin/scripts/db_setup.py | 614 ++++++++++++++-----------
security-admin/scripts/dba_script.py | 435 +++++++++---------
security-admin/scripts/setup.sh | 19 +-
security-admin/scripts/update_property.py | 7 +-
4 files changed, 570 insertions(+), 505 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ranger/blob/284ca416/security-admin/scripts/db_setup.py
----------------------------------------------------------------------
diff --git a/security-admin/scripts/db_setup.py b/security-admin/scripts/db_setup.py
index 6d1a047..6e79151 100644
--- a/security-admin/scripts/db_setup.py
+++ b/security-admin/scripts/db_setup.py
@@ -34,6 +34,7 @@ os_name = platform.system()
os_name = os_name.upper()
ranger_version=''
jisql_debug=True
+retryPatchAfterSeconds=120
is_unix = os_name == "LINUX" or os_name == "DARWIN"
@@ -108,6 +109,17 @@ def password_validation(password):
log("[E] password contains one of the unsupported special characters like \" ' \ `","error")
sys.exit(1)
+def subprocessCallWithRetry(query):
+ retryCount=1
+ returnCode = subprocess.call(query)
+ while returnCode!=0:
+ retryCount=retryCount+1
+ time.sleep(1)
+ log("[I] SQL statement execution Failed!! retrying attempt "+str(retryCount)+" of total 3" ,"info")
+ returnCode = subprocess.call(query)
+ if(returnCode!=0 and retryCount>=3):
+ break
+ return returnCode
class BaseDB(object):
@@ -135,7 +147,7 @@ class BaseDB(object):
for filename in sorted_files:
currentPatch = os.path.join(PATCHES_PATH, filename)
self.import_db_patches(db_name, db_user, db_password, currentPatch)
- self.update_applied_patches_status(db_name, db_user, db_password, "DB_PATCHES")
+ self.update_applied_patches_status(db_name, db_user, db_password, "DB_PATCHES")
else:
log("[I] No patches to apply!","info")
@@ -224,11 +236,11 @@ class MysqlConf(BaseDB):
if is_unix:
query = get_cmd + " -query \"GRANT INSERT ON %s.%s TO '%s'@'%s';\"" %(audit_db_name,TABLE_NAME,audit_db_user,host)
jisql_log(query, db_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"GRANT INSERT ON %s.%s TO '%s'@'%s';\" -c ;" %(audit_db_name,TABLE_NAME,audit_db_user,host)
jisql_log(query, db_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret == 0:
log("[I] Granting privileges to '" + audit_db_user+"' done on '"+ audit_db_name+"'", "info")
else:
@@ -283,7 +295,7 @@ class MysqlConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] Patch "+ name +" is being applied by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -308,6 +320,16 @@ class MysqlConf(BaseDB):
query = get_cmd + " -input %s -c ;" %file_name
jisql_log(query, db_password)
ret = subprocess.call(query)
+ if ret!=0:
+ if is_unix:
+ query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and active = 'Y';\"" %(version)
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and active = 'Y';\" -c ;" %(version)
+ jisql_log(query, db_password)
+ output = check_output(query)
+ if output.strip(version + " |"):
+ ret=0
+ log("[I] Patch "+ name +" has been applied by some other process!" ,"info")
if ret == 0:
log("[I] "+name + " patch applied","info")
if is_unix:
@@ -370,7 +392,7 @@ class MysqlConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] Patch "+ name +" is being applied by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -508,7 +530,7 @@ class MysqlConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] Java patch "+ className +" is being applied by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -597,7 +619,7 @@ class MysqlConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] Ranger Password change utility is being executed by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -707,7 +729,7 @@ class MysqlConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] "+ version +" is being imported by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -727,21 +749,22 @@ class MysqlConf(BaseDB):
isSchemaCreated=False
if isFirstTableExist == True and isLastTableExist == True :
isSchemaCreated=True
- elif isFirstTableExist == True and isLastTableExist == False :
- while(isLastTableExist==False):
- log("[I] "+ version +" is being imported by some other process" ,"info")
- time.sleep(300)
- isLastTableExist=self.check_table(db_name, db_user, db_password, last_table)
- if(isLastTableExist==True):
- isSchemaCreated=True
elif isFirstTableExist == False and isLastTableExist == False :
isImported=self.import_db_file(db_name, db_user, db_password, file_name)
if(isImported==False):
log("[I] "+ version +" might being imported by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
isLastTableExist=self.check_table(db_name, db_user, db_password, last_table)
if(isLastTableExist==True):
isSchemaCreated=True
+ elif isFirstTableExist == False or isLastTableExist == False :
+ while(isFirstTableExist == False or isLastTableExist==False):
+ log("[I] "+ version +" is being imported by some other process" ,"info")
+ time.sleep(retryPatchAfterSeconds)
+ isFirstTableExist=self.check_table(db_name, db_user, db_password, first_table)
+ isLastTableExist=self.check_table(db_name, db_user, db_password, last_table)
+ if(isFirstTableExist==True and isLastTableExist==True):
+ isSchemaCreated=True
if isSchemaCreated == True:
if is_unix:
query = get_cmd + " -query \"update x_db_version_h set active='Y' where version='%s' and active='N' and updated_by='%s';\"" %(version,client_host)
@@ -776,35 +799,35 @@ class MysqlConf(BaseDB):
log("[E] "+version + " import failed!","error")
sys.exit(1)
- def hasPendingPatches(self, db_name, db_user, db_password, version):
- get_cmd = self.get_jisql_cmd(db_user, db_password, db_name)
- if is_unix:
- query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active='Y';\"" %(version,ranger_version)
- elif os_name == "WINDOWS":
- query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active='Y';\" -c ;" %(version,ranger_version)
- jisql_log(query, db_password)
- output = check_output(query)
- if output.strip(version + " |"):
- return False
- else:
- return True
-
- def update_applied_patches_status(self,db_name, db_user, db_password,version):
- if self.hasPendingPatches(db_name, db_user, db_password,version) == True:
- get_cmd = self.get_jisql_cmd(db_user, db_password, db_name)
- if is_unix:
- query = get_cmd + " -query \"insert into x_db_version_h (version, inst_at, inst_by, updated_at, updated_by,active) values ('%s', now(), '%s', now(), '%s','Y') ;\"" %(version,ranger_version,client_host)
- jisql_log(query, db_password)
- ret = subprocess.call(shlex.split(query))
- elif os_name == "WINDOWS":
- query = get_cmd + " -query \"insert into x_db_version_h (version, inst_at, inst_by, updated_at, updated_by,active) values ('%s', now(), '%s', now(), '%s','Y') ;\" -c ;" %(version,ranger_version,client_host)
- jisql_log(query, db_password)
- ret = subprocess.call(query)
- if ret != 0:
- log("[E] "+ version +" status entry to x_db_version_h table failed", "error")
- sys.exit(1)
- else:
- log("[I] "+ version +" status entry to x_db_version_h table completed", "info")
+ def hasPendingPatches(self, db_name, db_user, db_password, version):
+ get_cmd = self.get_jisql_cmd(db_user, db_password, db_name)
+ if is_unix:
+ query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active='Y';\"" %(version,ranger_version)
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active='Y';\" -c ;" %(version,ranger_version)
+ jisql_log(query, db_password)
+ output = check_output(query)
+ if output.strip(version + " |"):
+ return False
+ else:
+ return True
+
+ def update_applied_patches_status(self,db_name, db_user, db_password,version):
+ if self.hasPendingPatches(db_name, db_user, db_password,version) == True:
+ get_cmd = self.get_jisql_cmd(db_user, db_password, db_name)
+ if is_unix:
+ query = get_cmd + " -query \"insert into x_db_version_h (version, inst_at, inst_by, updated_at, updated_by,active) values ('%s', now(), '%s', now(), '%s','Y') ;\"" %(version,ranger_version,client_host)
+ jisql_log(query, db_password)
+ ret = subprocess.call(shlex.split(query))
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"insert into x_db_version_h (version, inst_at, inst_by, updated_at, updated_by,active) values ('%s', now(), '%s', now(), '%s','Y') ;\" -c ;" %(version,ranger_version,client_host)
+ jisql_log(query, db_password)
+ ret = subprocess.call(query)
+ if ret != 0:
+ log("[E] "+ version +" status entry to x_db_version_h table failed", "error")
+ sys.exit(1)
+ else:
+ log("[I] "+ version +" status entry to x_db_version_h table completed", "info")
class OracleConf(BaseDB):
# Constructor
@@ -855,21 +878,21 @@ class OracleConf(BaseDB):
if is_unix:
query = get_cmd + " -c \; -query 'GRANT SELECT ON %s.XA_ACCESS_AUDIT_SEQ TO %s;'" % (db_user,audit_db_user)
jisql_log(query, db_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"GRANT SELECT ON %s.XA_ACCESS_AUDIT_SEQ TO %s;\" -c ;" % (db_user,audit_db_user)
jisql_log(query, db_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret != 0:
sys.exit(1)
if is_unix:
query = get_cmd + " -c \; -query 'GRANT INSERT ON %s.XA_ACCESS_AUDIT TO %s;'" % (db_user,audit_db_user)
jisql_log(query, db_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"GRANT INSERT ON %s.XA_ACCESS_AUDIT TO %s;\" -c ;" % (db_user,audit_db_user)
jisql_log(query, db_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret != 0:
sys.exit(1)
@@ -903,21 +926,21 @@ class OracleConf(BaseDB):
if is_unix:
query = get_cmd + " -c \; -query 'CREATE OR REPLACE SYNONYM %s.XA_ACCESS_AUDIT FOR %s.XA_ACCESS_AUDIT;'" % (audit_db_user,db_user)
jisql_log(query, db_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"CREATE OR REPLACE SYNONYM %s.XA_ACCESS_AUDIT FOR %s.XA_ACCESS_AUDIT;\" -c ;" % (audit_db_user,db_user)
jisql_log(query, db_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret != 0:
sys.exit(1)
if is_unix:
query = get_cmd + " -c \; -query 'CREATE OR REPLACE SYNONYM %s.XA_ACCESS_AUDIT_SEQ FOR %s.XA_ACCESS_AUDIT_SEQ;'" % (audit_db_user,db_user)
jisql_log(query, db_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"CREATE OR REPLACE SYNONYM %s.XA_ACCESS_AUDIT_SEQ FOR %s.XA_ACCESS_AUDIT_SEQ;\" -c ;" % (audit_db_user,db_user)
jisql_log(query, db_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret != 0:
sys.exit(1)
@@ -945,7 +968,7 @@ class OracleConf(BaseDB):
if output.strip(version +" |"):
while(output.strip(version + " |")):
log("[I] Patch "+ name +" is being applied by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -969,6 +992,16 @@ class OracleConf(BaseDB):
query = get_cmd + " -input %s -c /" %file_name
jisql_log(query, db_password)
ret = subprocess.call(query)
+ if ret != 0:
+ if is_unix:
+ query = get_cmd + " -c \; -query \"select version from x_db_version_h where version = '%s' and active = 'Y';\"" %(version)
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and active = 'Y';\" -c ;" %(version)
+ jisql_log(query, db_password)
+ output = check_output(query)
+ if output.strip(version +" |"):
+ ret=0
+ log("[I] Patch "+ name +" has been applied by some other process!" ,"info")
if ret == 0:
log("[I] "+name + " patch applied","info")
if is_unix:
@@ -1031,7 +1064,7 @@ class OracleConf(BaseDB):
if output.strip(version +" |"):
while(output.strip(version + " |")):
log("[I] Patch "+ name +" is being applied by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -1212,7 +1245,7 @@ class OracleConf(BaseDB):
#End of Upgrade failure fix
while(output.strip(version + " |")):
log("[I] Java patch "+ className +" is being applied by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -1301,7 +1334,7 @@ class OracleConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] Ranger Password change utility is being executed by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -1411,7 +1444,7 @@ class OracleConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] "+ version +" is being imported by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -1431,21 +1464,22 @@ class OracleConf(BaseDB):
isSchemaCreated=False
if isFirstTableExist == True and isLastTableExist == True :
isSchemaCreated=True
- elif isFirstTableExist == True and isLastTableExist == False :
- while(isLastTableExist==False):
- log("[I] "+ version +" is being imported by some other process" ,"info")
- time.sleep(300)
- isLastTableExist=self.check_table(db_name, db_user, db_password, last_table)
- if(isLastTableExist==True):
- isSchemaCreated=True
elif isFirstTableExist == False and isLastTableExist == False :
isImported=self.import_db_file(db_name, db_user, db_password, file_name)
if(isImported==False):
log("[I] "+ version +" might being imported by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
isLastTableExist=self.check_table(db_name, db_user, db_password, last_table)
if(isLastTableExist==True):
isSchemaCreated=True
+ elif isFirstTableExist == False or isLastTableExist == False :
+ while(isFirstTableExist==False or isLastTableExist == False):
+ log("[I] "+ version +" is being imported by some other process" ,"info")
+ time.sleep(retryPatchAfterSeconds)
+ isFirstTableExist=self.check_table(db_name, db_user, db_password, first_table)
+ isLastTableExist=self.check_table(db_name, db_user, db_password, last_table)
+ if(isFirstTableExist==True and isLastTableExist==True):
+ isSchemaCreated=True
if isSchemaCreated == True:
if is_unix:
query = get_cmd + " -c \; -query \"update x_db_version_h set active='Y' where version='%s' and active='N' and updated_by='%s';\"" %(version,client_host)
@@ -1480,35 +1514,35 @@ class OracleConf(BaseDB):
log("[E] "+version + " import failed!","error")
sys.exit(1)
- def hasPendingPatches(self, db_name, db_user, db_password, version):
- get_cmd = self.get_jisql_cmd(db_user, db_password)
- if is_unix:
- query = get_cmd + " -c \; -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active = 'Y';\"" %(version,ranger_version)
- elif os_name == "WINDOWS":
- query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active = 'Y';\" -c ;" %(version,ranger_version)
- jisql_log(query, db_password)
- output = check_output(query)
- if output.strip(version + " |"):
- return False
- else:
- return True
-
- def update_applied_patches_status(self,db_name, db_user, db_password,version):
- if self.hasPendingPatches(db_name, db_user, db_password,version) == True:
- get_cmd = self.get_jisql_cmd(db_user, db_password)
- if is_unix:
- query = get_cmd + " -c \; -query \"insert into x_db_version_h (id,version, inst_at, inst_by, updated_at, updated_by,active) values ( X_DB_VERSION_H_SEQ.nextval,'%s', sysdate, '%s', sysdate, '%s','Y');\"" %(version, ranger_version, client_host)
- jisql_log(query, db_password)
- ret = subprocess.call(shlex.split(query))
- elif os_name == "WINDOWS":
- query = get_cmd + " -query \"insert into x_db_version_h (id,version, inst_at, inst_by, updated_at, updated_by,active) values ( X_DB_VERSION_H_SEQ.nextval,'%s', sysdate, '%s', sysdate, '%s','Y');\" -c ;" %(version, ranger_version, client_host)
- jisql_log(query, db_password)
- ret = subprocess.call(query)
- if ret != 0:
- log("[E] "+ version +" status entry to x_db_version_h table failed", "error")
- sys.exit(1)
- else:
- log("[I] "+ version +" status entry to x_db_version_h table completed", "info")
+ def hasPendingPatches(self, db_name, db_user, db_password, version):
+ get_cmd = self.get_jisql_cmd(db_user, db_password)
+ if is_unix:
+ query = get_cmd + " -c \; -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active = 'Y';\"" %(version,ranger_version)
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active = 'Y';\" -c ;" %(version,ranger_version)
+ jisql_log(query, db_password)
+ output = check_output(query)
+ if output.strip(version + " |"):
+ return False
+ else:
+ return True
+
+ def update_applied_patches_status(self,db_name, db_user, db_password,version):
+ if self.hasPendingPatches(db_name, db_user, db_password,version) == True:
+ get_cmd = self.get_jisql_cmd(db_user, db_password)
+ if is_unix:
+ query = get_cmd + " -c \; -query \"insert into x_db_version_h (id,version, inst_at, inst_by, updated_at, updated_by,active) values ( X_DB_VERSION_H_SEQ.nextval,'%s', sysdate, '%s', sysdate, '%s','Y');\"" %(version, ranger_version, client_host)
+ jisql_log(query, db_password)
+ ret = subprocess.call(shlex.split(query))
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"insert into x_db_version_h (id,version, inst_at, inst_by, updated_at, updated_by,active) values ( X_DB_VERSION_H_SEQ.nextval,'%s', sysdate, '%s', sysdate, '%s','Y');\" -c ;" %(version, ranger_version, client_host)
+ jisql_log(query, db_password)
+ ret = subprocess.call(query)
+ if ret != 0:
+ log("[E] "+ version +" status entry to x_db_version_h table failed", "error")
+ sys.exit(1)
+ else:
+ log("[I] "+ version +" status entry to x_db_version_h table completed", "info")
class PostgresConf(BaseDB):
# Constructor
@@ -1574,11 +1608,11 @@ class PostgresConf(BaseDB):
if is_unix:
query = get_cmd + " -query 'GRANT SELECT,USAGE ON XA_ACCESS_AUDIT_SEQ TO %s;'" % (audit_db_user)
jisql_log(query, db_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"GRANT SELECT,USAGE ON XA_ACCESS_AUDIT_SEQ TO %s;\" -c ;" % (audit_db_user)
jisql_log(query, db_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret != 0:
log("[E] Granting select privileges to Postgres user '" + audit_db_user + "' failed", "error")
sys.exit(1)
@@ -1587,11 +1621,11 @@ class PostgresConf(BaseDB):
if is_unix:
query = get_cmd + " -query 'GRANT INSERT ON XA_ACCESS_AUDIT TO %s;'" % (audit_db_user)
jisql_log(query, db_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"GRANT INSERT ON XA_ACCESS_AUDIT TO %s;\" -c ;" % (audit_db_user)
jisql_log(query, db_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret != 0:
log("[E] Granting insert privileges to Postgres user '" + audit_db_user + "' failed", "error")
sys.exit(1)
@@ -1608,11 +1642,11 @@ class PostgresConf(BaseDB):
if is_unix:
query = get_cmd + " -query \"CREATE LANGUAGE plpgsql;\""
jisql_log(query, db_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"CREATE LANGUAGE plpgsql;\" -c ;"
jisql_log(query, db_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret == 0:
log("[I] LANGUAGE plpgsql created successfully", "info")
else:
@@ -1644,7 +1678,7 @@ class PostgresConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] Patch "+ name +" is being applied by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -1668,6 +1702,16 @@ class PostgresConf(BaseDB):
query = get_cmd + " -input %s -c ;" %file_name
jisql_log(query, db_password)
ret = subprocess.call(query)
+ if ret != 0:
+ if is_unix:
+ query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and active = 'Y';\"" %(version)
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and active = 'Y';\" -c ;" %(version)
+ jisql_log(query, db_password)
+ output = check_output(query)
+ if output.strip(version + " |"):
+ ret=0
+ log("[I] Patch "+ name +" has been applied by some other process!" ,"info")
if ret == 0:
log("[I] "+name + " patch applied","info")
if is_unix:
@@ -1731,7 +1775,7 @@ class PostgresConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] Patch "+ name +" is being applied by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -1871,7 +1915,7 @@ class PostgresConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] Java patch "+ className +" is being applied by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -1960,7 +2004,7 @@ class PostgresConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] Ranger Password change utility is being executed by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -2070,7 +2114,7 @@ class PostgresConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] "+ version +" is being imported by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -2090,21 +2134,22 @@ class PostgresConf(BaseDB):
isSchemaCreated=False
if isFirstTableExist == True and isLastTableExist == True :
isSchemaCreated=True
- elif isFirstTableExist == True and isLastTableExist == False :
- while(isLastTableExist==False):
- log("[I] "+ version +" is being imported by some other process" ,"info")
- time.sleep(300)
- isLastTableExist=self.check_table(db_name, db_user, db_password, last_table)
- if(isLastTableExist==True):
- isSchemaCreated=True
elif isFirstTableExist == False and isLastTableExist == False :
isImported=self.import_db_file(db_name, db_user, db_password, file_name)
if(isImported==False):
log("[I] "+ version +" might being imported by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
isLastTableExist=self.check_table(db_name, db_user, db_password, last_table)
if(isLastTableExist==True):
isSchemaCreated=True
+ elif isFirstTableExist == False or isLastTableExist == False :
+ while(isFirstTableExist == False or isLastTableExist==False):
+ log("[I] "+ version +" is being imported by some other process" ,"info")
+ time.sleep(retryPatchAfterSeconds)
+ isFirstTableExist=self.check_table(db_name, db_user, db_password, first_table)
+ isLastTableExist=self.check_table(db_name, db_user, db_password, last_table)
+ if(isFirstTableExist == True and isLastTableExist==True):
+ isSchemaCreated=True
if isSchemaCreated == True:
if is_unix:
query = get_cmd + " -query \"update x_db_version_h set active='Y' where version='%s' and active='N' and updated_by='%s';\"" %(version,client_host)
@@ -2139,35 +2184,35 @@ class PostgresConf(BaseDB):
log("[E] "+version + " import failed!","error")
sys.exit(1)
- def hasPendingPatches(self, db_name, db_user, db_password, version):
- get_cmd = self.get_jisql_cmd(db_user, db_password, db_name)
- if is_unix:
- query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active = 'Y';\"" %(version,ranger_version)
- elif os_name == "WINDOWS":
- query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active = 'Y';\" -c ;" %(version,ranger_version)
- jisql_log(query, db_password)
- output = check_output(query)
- if output.strip(version + " |"):
- return False
- else:
- return True
-
- def update_applied_patches_status(self,db_name, db_user, db_password,version):
- if self.hasPendingPatches(db_name, db_user, db_password,version) == True:
- get_cmd = self.get_jisql_cmd(db_user, db_password, db_name)
- if is_unix:
- query = get_cmd + " -query \"insert into x_db_version_h (version, inst_at, inst_by, updated_at, updated_by,active) values ('%s', current_timestamp, '%s', current_timestamp, '%s','Y') ;\"" %(version,ranger_version,client_host)
- jisql_log(query, db_password)
- ret = subprocess.call(shlex.split(query))
- elif os_name == "WINDOWS":
- query = get_cmd + " -query \"insert into x_db_version_h (version, inst_at, inst_by, updated_at, updated_by,active) values ('%s', current_timestamp, '%s', current_timestamp, '%s','Y') ;\" -c ;" %(version,ranger_version,client_host)
- jisql_log(query, db_password)
- ret = subprocess.call(query)
- if ret != 0:
- log("[E] "+ version +" status entry to x_db_version_h table failed", "error")
- sys.exit(1)
- else:
- log("[I] "+ version +" status entry to x_db_version_h table completed", "info")
+ def hasPendingPatches(self, db_name, db_user, db_password, version):
+ get_cmd = self.get_jisql_cmd(db_user, db_password, db_name)
+ if is_unix:
+ query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active = 'Y';\"" %(version,ranger_version)
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active = 'Y';\" -c ;" %(version,ranger_version)
+ jisql_log(query, db_password)
+ output = check_output(query)
+ if output.strip(version + " |"):
+ return False
+ else:
+ return True
+
+ def update_applied_patches_status(self,db_name, db_user, db_password,version):
+ if self.hasPendingPatches(db_name, db_user, db_password,version) == True:
+ get_cmd = self.get_jisql_cmd(db_user, db_password, db_name)
+ if is_unix:
+ query = get_cmd + " -query \"insert into x_db_version_h (version, inst_at, inst_by, updated_at, updated_by,active) values ('%s', current_timestamp, '%s', current_timestamp, '%s','Y') ;\"" %(version,ranger_version,client_host)
+ jisql_log(query, db_password)
+ ret = subprocess.call(shlex.split(query))
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"insert into x_db_version_h (version, inst_at, inst_by, updated_at, updated_by,active) values ('%s', current_timestamp, '%s', current_timestamp, '%s','Y') ;\" -c ;" %(version,ranger_version,client_host)
+ jisql_log(query, db_password)
+ ret = subprocess.call(query)
+ if ret != 0:
+ log("[E] "+ version +" status entry to x_db_version_h table failed", "error")
+ sys.exit(1)
+ else:
+ log("[I] "+ version +" status entry to x_db_version_h table completed", "info")
class SqlServerConf(BaseDB):
# Constructor
@@ -2247,11 +2292,11 @@ class SqlServerConf(BaseDB):
if is_unix:
query = get_cmd + " -c \; -query \"USE %s GRANT SELECT,INSERT to %s;\"" %(audit_db_name ,audit_db_user)
jisql_log(query, db_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"USE %s GRANT SELECT,INSERT to %s;\" -c ;" %(audit_db_name ,audit_db_user)
jisql_log(query, db_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret != 0 :
sys.exit(1)
else:
@@ -2281,7 +2326,7 @@ class SqlServerConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] Patch "+ name +" is being applied by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -2305,6 +2350,17 @@ class SqlServerConf(BaseDB):
query = get_cmd + " -input %s" %file_name
jisql_log(query, db_password)
ret = subprocess.call(query)
+ if ret != 0:
+ time.sleep(1)
+ if is_unix:
+ query = get_cmd + " -c \; -query \"select version from x_db_version_h where version = '%s' and active = 'Y';\"" %(version)
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and active = 'Y';\" -c ;" %(version)
+ jisql_log(query, db_password)
+ output = check_output(query)
+ if output.strip(version + " |"):
+ ret=0
+ log("[I] Patch "+ name +" has been applied by some other process!" ,"info")
if ret == 0:
log("[I] "+name + " patch applied","info")
if is_unix:
@@ -2367,7 +2423,7 @@ class SqlServerConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] Patch "+ name +" is being applied by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -2491,7 +2547,7 @@ class SqlServerConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] Java patch "+ className +" is being applied by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -2580,7 +2636,7 @@ class SqlServerConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] Ranger Password change utility is being executed by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -2690,7 +2746,7 @@ class SqlServerConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] "+ version +" is being imported by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -2710,21 +2766,22 @@ class SqlServerConf(BaseDB):
isSchemaCreated=False
if isFirstTableExist == True and isLastTableExist == True :
isSchemaCreated=True
- elif isFirstTableExist == True and isLastTableExist == False :
- while(isLastTableExist==False):
- log("[I] "+ version +" is being imported by some other process" ,"info")
- time.sleep(300)
- isLastTableExist=self.check_table(db_name, db_user, db_password, last_table)
- if(isLastTableExist==True):
- isSchemaCreated=True
elif isFirstTableExist == False and isLastTableExist == False :
isImported=self.import_db_file(db_name, db_user, db_password, file_name)
if(isImported==False):
log("[I] "+ version +" might being imported by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
isLastTableExist=self.check_table(db_name, db_user, db_password, last_table)
if(isLastTableExist==True):
isSchemaCreated=True
+ elif isFirstTableExist == False or isLastTableExist == False :
+ while(isFirstTableExist == False or isLastTableExist==False):
+ log("[I] "+ version +" is being imported by some other process" ,"info")
+ time.sleep(retryPatchAfterSeconds)
+ isFirstTableExist=self.check_table(db_name, db_user, db_password, first_table)
+ isLastTableExist=self.check_table(db_name, db_user, db_password, last_table)
+ if(isFirstTableExist == True and isLastTableExist==True):
+ isSchemaCreated=True
if isSchemaCreated == True:
if is_unix:
query = get_cmd + " -query \"update x_db_version_h set active='Y' where version='%s' and active='N' and updated_by='%s';\" -c \;" %(version,client_host)
@@ -2759,35 +2816,35 @@ class SqlServerConf(BaseDB):
log("[E] "+version + " import failed!","error")
sys.exit(1)
- def hasPendingPatches(self, db_name, db_user, db_password, version):
- get_cmd = self.get_jisql_cmd(db_user, db_password, db_name)
- if is_unix:
- query = get_cmd + " -c \; -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active = 'Y';\"" %(version,ranger_version)
- elif os_name == "WINDOWS":
- query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active = 'Y';\" -c ;" %(version,ranger_version)
- jisql_log(query, db_password)
- output = check_output(query)
- if output.strip(version + " |"):
- return False
- else:
- return True
-
- def update_applied_patches_status(self,db_name, db_user, db_password,version):
- if self.hasPendingPatches(db_name, db_user, db_password,version) == True:
- get_cmd = self.get_jisql_cmd(db_user, db_password, db_name)
- if is_unix:
- query = get_cmd + " -query \"insert into x_db_version_h (version, inst_at, inst_by, updated_at, updated_by,active) values ('%s', GETDATE(), '%s', GETDATE(), '%s','Y') ;\" -c \;" %(version,ranger_version,client_host)
- jisql_log(query, db_password)
- ret = subprocess.call(shlex.split(query))
- elif os_name == "WINDOWS":
- query = get_cmd + " -query \"insert into x_db_version_h (version, inst_at, inst_by, updated_at, updated_by,active) values ('%s', GETDATE(), '%s', GETDATE(), '%s','Y') ;\" -c ;" %(version,ranger_version,client_host)
- jisql_log(query, db_password)
- ret = subprocess.call(query)
- if ret != 0:
- log("[E] "+ version +" status entry to x_db_version_h table failed", "error")
- sys.exit(1)
- else:
- log("[I] "+ version +" status entry to x_db_version_h table completed", "info")
+ def hasPendingPatches(self, db_name, db_user, db_password, version):
+ get_cmd = self.get_jisql_cmd(db_user, db_password, db_name)
+ if is_unix:
+ query = get_cmd + " -c \; -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active = 'Y';\"" %(version,ranger_version)
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active = 'Y';\" -c ;" %(version,ranger_version)
+ jisql_log(query, db_password)
+ output = check_output(query)
+ if output.strip(version + " |"):
+ return False
+ else:
+ return True
+
+ def update_applied_patches_status(self,db_name, db_user, db_password,version):
+ if self.hasPendingPatches(db_name, db_user, db_password,version) == True:
+ get_cmd = self.get_jisql_cmd(db_user, db_password, db_name)
+ if is_unix:
+ query = get_cmd + " -query \"insert into x_db_version_h (version, inst_at, inst_by, updated_at, updated_by,active) values ('%s', GETDATE(), '%s', GETDATE(), '%s','Y') ;\" -c \;" %(version,ranger_version,client_host)
+ jisql_log(query, db_password)
+ ret = subprocess.call(shlex.split(query))
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"insert into x_db_version_h (version, inst_at, inst_by, updated_at, updated_by,active) values ('%s', GETDATE(), '%s', GETDATE(), '%s','Y') ;\" -c ;" %(version,ranger_version,client_host)
+ jisql_log(query, db_password)
+ ret = subprocess.call(query)
+ if ret != 0:
+ log("[E] "+ version +" status entry to x_db_version_h table failed", "error")
+ sys.exit(1)
+ else:
+ log("[I] "+ version +" status entry to x_db_version_h table completed", "info")
class SqlAnywhereConf(BaseDB):
# Constructor
@@ -2867,11 +2924,11 @@ class SqlAnywhereConf(BaseDB):
if is_unix:
query = get_cmd + " -c \; -query \"GRANT INSERT ON XA_ACCESS_AUDIT to %s;\"" %(audit_db_user)
jisql_log(query, db_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
elif os_name == "WINDOWS":
query = get_cmd + " -query \"GRANT INSERT ON XA_ACCESS_AUDIT to %s;\" -c ;" %(audit_db_user)
jisql_log(query, db_password)
- ret = subprocess.call(query)
+ ret = subprocessCallWithRetry(query)
if ret != 0 :
sys.exit(1)
else:
@@ -2901,7 +2958,7 @@ class SqlAnywhereConf(BaseDB):
if output.strip(version + " |"):
while output.strip(version + " |"):
log("[I] Patch "+ name +" is being applied by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -2925,6 +2982,17 @@ class SqlAnywhereConf(BaseDB):
query = get_cmd + " -input %s" %file_name
jisql_log(query, db_password)
ret = subprocess.call(query)
+ if ret != 0:
+ time.sleep(5)
+ if is_unix:
+ query = get_cmd + " -c \; -query \"select version from x_db_version_h where version = '%s' and active = 'Y';\"" %(version)
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and active = 'Y';\" -c ;" %(version)
+ jisql_log(query, db_password)
+ output = check_output(query)
+ if output.strip(version + " |"):
+ ret=0
+ log("[I] Patch "+ name +" has been applied by some other process!" ,"info")
if ret == 0:
log("[I] "+name + " patch applied","info")
if is_unix:
@@ -2979,7 +3047,7 @@ class SqlAnywhereConf(BaseDB):
if output.strip(version + " |"):
while output.strip(version + " |"):
log("[I] Patch "+ name +" is being applied by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -3103,7 +3171,7 @@ class SqlAnywhereConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] Java patch "+ className +" is being applied by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -3170,19 +3238,19 @@ class SqlAnywhereConf(BaseDB):
elif os_name == "WINDOWS":
query = get_cmd + " -query \"set option public.reserved_keywords='LIMIT';\" -c ;"
jisql_log(query, db_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
if is_unix:
query = get_cmd + " -c \; -query \"set option public.max_statement_count=0;\""
elif os_name == "WINDOWS":
query = get_cmd + " -query \"set option public.max_statement_count=0;\" -c;"
jisql_log(query, db_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
if is_unix:
query = get_cmd + " -c \; -query \"set option public.max_cursor_count=0;\""
elif os_name == "WINDOWS":
query = get_cmd + " -query \"set option public.max_cursor_count=0;\" -c;"
jisql_log(query, db_password)
- ret = subprocess.call(shlex.split(query))
+ ret = subprocessCallWithRetry(shlex.split(query))
def change_admin_default_password(self, xa_db_host, db_user, db_password, db_name,userName,oldPassword,newPassword):
my_dict = {}
@@ -3213,7 +3281,7 @@ class SqlAnywhereConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] Ranger Password change utility is being executed by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -3323,7 +3391,7 @@ class SqlAnywhereConf(BaseDB):
if output.strip(version + " |"):
while(output.strip(version + " |")):
log("[I] "+ version +" is being imported by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
jisql_log(query, db_password)
output = check_output(query)
else:
@@ -3343,21 +3411,22 @@ class SqlAnywhereConf(BaseDB):
isSchemaCreated=False
if isFirstTableExist == True and isLastTableExist == True :
isSchemaCreated=True
- elif isFirstTableExist == True and isLastTableExist == False :
- while(isLastTableExist==False):
- log("[I] "+ version +" is being imported by some other process" ,"info")
- time.sleep(300)
- isLastTableExist=self.check_table(db_name, db_user, db_password, last_table)
- if(isLastTableExist==True):
- isSchemaCreated=True
elif isFirstTableExist == False and isLastTableExist == False :
isImported=self.import_db_file(db_name, db_user, db_password, file_name)
if(isImported==False):
log("[I] "+ version +" might being imported by some other process" ,"info")
- time.sleep(300)
+ time.sleep(retryPatchAfterSeconds)
isLastTableExist=self.check_table(db_name, db_user, db_password, last_table)
if(isLastTableExist==True):
isSchemaCreated=True
+ elif isFirstTableExist == False or isLastTableExist == False :
+ while(isFirstTableExist == False or isLastTableExist==False):
+ log("[I] "+ version +" is being imported by some other process" ,"info")
+ time.sleep(retryPatchAfterSeconds)
+ isFirstTableExist = self.check_table(db_name, db_user, db_password, first_table)
+ isLastTableExist=self.check_table(db_name, db_user, db_password, last_table)
+ if(isFirstTableExist == True and isLastTableExist==True):
+ isSchemaCreated=True
if isSchemaCreated == True:
if is_unix:
query = get_cmd + " -query \"update x_db_version_h set active='Y' where version='%s' and active='N' and updated_by='%s';\" -c \;" %(version,client_host)
@@ -3392,35 +3461,35 @@ class SqlAnywhereConf(BaseDB):
log("[E] "+version + " import failed!","error")
sys.exit(1)
- def hasPendingPatches(self, db_name, db_user, db_password, version):
- get_cmd = self.get_jisql_cmd(db_user, db_password, db_name)
- if is_unix:
- query = get_cmd + " -c \; -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active = 'Y';\"" %(version,ranger_version)
- elif os_name == "WINDOWS":
- query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active = 'Y';\" -c ;" %(version,ranger_version)
- jisql_log(query, db_password)
- output = check_output(query)
- if output.strip(version + " |"):
- return False
- else:
- return True
-
- def update_applied_patches_status(self,db_name, db_user, db_password,version):
- if self.hasPendingPatches(db_name, db_user, db_password,version) == True:
- get_cmd = self.get_jisql_cmd(db_user, db_password, db_name)
- if is_unix:
- query = get_cmd + " -query \"insert into x_db_version_h (version, inst_at, inst_by, updated_at, updated_by,active) values ('%s', GETDATE(), '%s', GETDATE(), '%s','Y') ;\" -c \;" %(version,ranger_version,client_host)
- jisql_log(query, db_password)
- ret = subprocess.call(shlex.split(query))
- elif os_name == "WINDOWS":
- query = get_cmd + " -query \"insert into x_db_version_h (version, inst_at, inst_by, updated_at, updated_by,active) values ('%s', GETDATE(), '%s', GETDATE(), '%s','Y') ;\" -c ;" %(version,ranger_version,client_host)
- jisql_log(query, db_password)
- ret = subprocess.call(query)
- if ret != 0:
- log("[E] "+ version +" status entry to x_db_version_h table failed", "error")
- sys.exit(1)
- else:
- log("[I] "+ version +" status entry to x_db_version_h table completed", "info")
+ def hasPendingPatches(self, db_name, db_user, db_password, version):
+ get_cmd = self.get_jisql_cmd(db_user, db_password, db_name)
+ if is_unix:
+ query = get_cmd + " -c \; -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active = 'Y';\"" %(version,ranger_version)
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"select version from x_db_version_h where version = '%s' and inst_by = '%s' and active = 'Y';\" -c ;" %(version,ranger_version)
+ jisql_log(query, db_password)
+ output = check_output(query)
+ if output.strip(version + " |"):
+ return False
+ else:
+ return True
+
+ def update_applied_patches_status(self,db_name, db_user, db_password,version):
+ if self.hasPendingPatches(db_name, db_user, db_password,version) == True:
+ get_cmd = self.get_jisql_cmd(db_user, db_password, db_name)
+ if is_unix:
+ query = get_cmd + " -query \"insert into x_db_version_h (version, inst_at, inst_by, updated_at, updated_by,active) values ('%s', GETDATE(), '%s', GETDATE(), '%s','Y') ;\" -c \;" %(version,ranger_version,client_host)
+ jisql_log(query, db_password)
+ ret = subprocess.call(shlex.split(query))
+ elif os_name == "WINDOWS":
+ query = get_cmd + " -query \"insert into x_db_version_h (version, inst_at, inst_by, updated_at, updated_by,active) values ('%s', GETDATE(), '%s', GETDATE(), '%s','Y') ;\" -c ;" %(version,ranger_version,client_host)
+ jisql_log(query, db_password)
+ ret = subprocess.call(query)
+ if ret != 0:
+ log("[E] "+ version +" status entry to x_db_version_h table failed", "error")
+ sys.exit(1)
+ else:
+ log("[I] "+ version +" status entry to x_db_version_h table completed", "info")
def main(argv):
populate_global_dict()
@@ -3444,31 +3513,31 @@ def main(argv):
else:
log("[E] ---------- JAVA Not Found, aborting installation. ----------", "error")
sys.exit(1)
- #get ranger version
- global ranger_version
- try:
- lib_home = os.path.join(RANGER_ADMIN_HOME,"ews","webapp","WEB-INF","lib","*")
- get_ranger_version_cmd="%s -cp %s org.apache.ranger.common.RangerVersionInfo"%(JAVA_BIN,lib_home)
- ranger_version = check_output(get_ranger_version_cmd).split("\n")[1]
- except Exception, error:
- ranger_version=''
-
- try:
- if ranger_version=="" or ranger_version=="ranger-admin - None":
- script_path = os.path.join(RANGER_ADMIN_HOME,"ews","ranger-admin-services.sh")
- ranger_version=check_output(script_path +" version").split("\n")[1]
- except Exception, error:
- ranger_version=''
-
- try:
- if ranger_version=="" or ranger_version=="ranger-admin - None":
- ranger_version=check_output("ranger-admin version").split("\n")[1]
- except Exception, error:
- ranger_version=''
-
- if ranger_version=="" or ranger_version is None:
- log("[E] Unable to find ranger version details, Exiting..", "error")
- sys.exit(1)
+ #get ranger version
+ global ranger_version
+ try:
+ lib_home = os.path.join(RANGER_ADMIN_HOME,"ews","webapp","WEB-INF","lib","*")
+ get_ranger_version_cmd="%s -cp %s org.apache.ranger.common.RangerVersionInfo"%(JAVA_BIN,lib_home)
+ ranger_version = check_output(get_ranger_version_cmd).split("\n")[1]
+ except Exception, error:
+ ranger_version=''
+
+ try:
+ if ranger_version=="" or ranger_version=="ranger-admin - None":
+ script_path = os.path.join(RANGER_ADMIN_HOME,"ews","ranger-admin-services.sh")
+ ranger_version=check_output(script_path +" version").split("\n")[1]
+ except Exception, error:
+ ranger_version=''
+
+ try:
+ if ranger_version=="" or ranger_version=="ranger-admin - None":
+ ranger_version=check_output("ranger-admin version").split("\n")[1]
+ except Exception, error:
+ ranger_version=''
+
+ if ranger_version=="" or ranger_version is None:
+ log("[E] Unable to find ranger version details, Exiting..", "error")
+ sys.exit(1)
XA_DB_FLAVOR=globalDict['DB_FLAVOR']
AUDIT_DB_FLAVOR=globalDict['DB_FLAVOR']
@@ -3675,12 +3744,12 @@ def main(argv):
if audit_db_user != "" and db_user != audit_db_user:
xa_sqlObj.create_synonym(db_name, db_user, db_password,audit_db_user)
- applyDBPatches=xa_sqlObj.hasPendingPatches(db_name, db_user, db_password, "DB_PATCHES")
- if applyDBPatches == True:
- log("[I] --------- Applying Ranger DB patches ---------","info")
- xa_sqlObj.apply_patches(db_name, db_user, db_password, xa_patch_file)
- else:
- log("[I] DB_PATCHES have already been applied","info")
+ applyDBPatches=xa_sqlObj.hasPendingPatches(db_name, db_user, db_password, "DB_PATCHES")
+ if applyDBPatches == True:
+ log("[I] --------- Applying Ranger DB patches ---------","info")
+ xa_sqlObj.apply_patches(db_name, db_user, db_password, xa_patch_file)
+ else:
+ log("[I] DB_PATCHES have already been applied","info")
if audit_store == "db" and audit_db_password!='':
log("[I] --------- Starting Audit Operation ---------","info")
@@ -3691,13 +3760,14 @@ def main(argv):
if len(argv)>1:
for i in range(len(argv)):
if str(argv[i]) == "-javapatch":
- applyJavaPatches=xa_sqlObj.hasPendingPatches(db_name, db_user, db_password, "JAVA_PATCHES")
- if applyJavaPatches == True:
- log("[I] ----------------- Applying java patches ------------", "info")
- xa_sqlObj.execute_java_patches(xa_db_host, db_user, db_password, db_name)
- xa_sqlObj.update_applied_patches_status(db_name,db_user, db_password,"JAVA_PATCHES")
- else:
- log("[I] JAVA_PATCHES have already been applied","info")
+ applyJavaPatches=xa_sqlObj.hasPendingPatches(db_name, db_user, db_password, "JAVA_PATCHES")
+ if applyJavaPatches == True:
+ log("[I] ----------------- Applying java patches ------------", "info")
+ xa_sqlObj.execute_java_patches(xa_db_host, db_user, db_password, db_name)
+ xa_sqlObj.update_applied_patches_status(db_name,db_user, db_password,"JAVA_PATCHES")
+ else:
+ log("[I] JAVA_PATCHES have already been applied","info")
+
if str(argv[i]) == "-changepassword":
if len(argv)==5:
userName=argv[2]