Repository: ranger Updated Branches: refs/heads/master 82682d782 -> 8f9fec37b
http://git-wip-us.apache.org/repos/asf/ranger/blob/8f9fec37/security-admin/scripts/dba_script.py ---------------------------------------------------------------------- diff --git a/security-admin/scripts/dba_script.py b/security-admin/scripts/dba_script.py index e5a1f59..4fe7a58 100644 --- a/security-admin/scripts/dba_script.py +++ b/security-admin/scripts/dba_script.py @@ -30,9 +30,11 @@ globalDict = {} os_name = platform.system() os_name = os_name.upper() +is_unix = os_name == "LINUX" or os_name == "DARWIN" + jisql_debug=True masked_pwd_string='********' -if os_name == "LINUX": +if is_unix: RANGER_ADMIN_HOME = os.getenv("RANGER_ADMIN_HOME") if RANGER_ADMIN_HOME is None: RANGER_ADMIN_HOME = os.getcwd() @@ -40,7 +42,7 @@ elif os_name == "WINDOWS": RANGER_ADMIN_HOME = os.getenv("RANGER_ADMIN_HOME") def check_output(query): - if os_name == "LINUX": + if is_unix: p = subprocess.Popen(shlex.split(query), stdout=subprocess.PIPE) elif os_name == "WINDOWS": p = subprocess.Popen(query, stdout=subprocess.PIPE, shell=True) @@ -61,7 +63,7 @@ def log(msg,type): def populate_global_dict(): global globalDict - if os_name == "LINUX": + if is_unix: read_config_file = open(os.path.join(RANGER_ADMIN_HOME,'install.properties')) elif os_name == "WINDOWS": read_config_file = open(os.path.join(RANGER_ADMIN_HOME,'bin','install_config.properties')) @@ -159,7 +161,7 @@ class MysqlConf(BaseDB): db_ssl_param="?useSSL=%s&requireSSL=%s&verifyServerCertificate=%s" %(self.db_ssl_enabled,self.db_ssl_required,self.db_ssl_verifyServerCertificate) if self.db_ssl_verifyServerCertificate == 'true': db_ssl_cert_param=" -Djavax.net.ssl.keyStore=%s -Djavax.net.ssl.keyStorePassword=%s -Djavax.net.ssl.trustStore=%s -Djavax.net.ssl.trustStorePassword=%s " %(self.javax_net_ssl_keyStore,self.javax_net_ssl_keyStorePassword,self.javax_net_ssl_trustStore,self.javax_net_ssl_trustStorePassword) - if os_name == "LINUX": + if is_unix: jisql_cmd = "%s %s -cp %s:%s/jisql/lib/* org.apache.util.sql.Jisql -driver mysqlconj -cstring jdbc:mysql://%s/%s%s -u %s -p '%s' -noheader -trim -c \;" %(self.JAVA_BIN,db_ssl_cert_param,self.SQL_CONNECTOR_JAR,path,self.host,db_name,db_ssl_param,user,password) elif os_name == "WINDOWS": self.JAVA_BIN = self.JAVA_BIN.strip("'") @@ -169,7 +171,7 @@ class MysqlConf(BaseDB): def verify_user(self, root_user, db_root_password, host, db_user, get_cmd,dryMode): if dryMode == False: log("[I] Verifying user " + db_user+ " for Host "+ host, "info") - if os_name == "LINUX": + if is_unix: query = get_cmd + " -query \"select user from mysql.user where user='%s' and host='%s';\"" %(db_user,host) elif os_name == "WINDOWS": query = get_cmd + " -query \"select user from mysql.user where user='%s' and host='%s';\" -c ;" %(db_user,host) @@ -183,7 +185,7 @@ class MysqlConf(BaseDB): def check_connection(self, db_name, db_user, db_password): #log("[I] Checking connection..", "info") get_cmd = self.get_jisql_cmd(db_user, db_password, db_name) - if os_name == "LINUX": + if is_unix: query = get_cmd + " -query \"SELECT version();\"" elif os_name == "WINDOWS": query = get_cmd + " -query \"SELECT version();\" -c ;" @@ -209,7 +211,7 @@ class MysqlConf(BaseDB): if db_password == "": if dryMode == False: log("[I] MySQL user " + db_user + " does not exists for host " + host, "info") - if os_name == "LINUX": + 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)) @@ -228,7 +230,7 @@ class MysqlConf(BaseDB): else: if dryMode == False: log("[I] MySQL user " + db_user + " does not exists for host " + host, "info") - if os_name == "LINUX": + if is_unix: 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) @@ -255,7 +257,7 @@ class MysqlConf(BaseDB): if dryMode == False: log("[I] Verifying database " + db_name , "info") get_cmd = self.get_jisql_cmd(root_user, db_root_password, 'mysql') - if os_name == "LINUX": + if is_unix: query = get_cmd + " -query \"show databases like '%s';\"" %(db_name) elif os_name == "WINDOWS": query = get_cmd + " -query \"show databases like '%s';\" -c ;" %(db_name) @@ -273,14 +275,14 @@ class MysqlConf(BaseDB): log("[I] Database "+db_name + " already exists.","info") else: get_cmd = self.get_jisql_cmd(root_user, db_root_password, 'mysql') - if os_name == "LINUX": + if is_unix: query = get_cmd + " -query \"create database %s;\"" %(db_name) elif os_name == "WINDOWS": query = get_cmd + " -query \"create database %s;\" -c ;" %(db_name) if dryMode == False: log("[I] Database does not exist, Creating database " + db_name,"info") jisql_log(query, db_root_password) - if os_name == "LINUX": + if is_unix: ret = subprocess.call(shlex.split(query)) elif os_name == "WINDOWS": ret = subprocess.call(query) @@ -305,7 +307,7 @@ class MysqlConf(BaseDB): if dryMode == False: log("[I] ---------- Granting privileges TO user '"+db_user+"'@'"+host+"' on db '"+db_name+"'----------" , "info") get_cmd = self.get_jisql_cmd(root_user, db_root_password, 'mysql') - if os_name == "LINUX": + 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)) @@ -315,7 +317,7 @@ class MysqlConf(BaseDB): ret = subprocess.call(query) if ret == 0: log("[I] ---------- FLUSH PRIVILEGES ----------" , "info") - if os_name == "LINUX": + if is_unix: query = get_cmd + " -query \"FLUSH PRIVILEGES;\"" jisql_log(query, db_root_password) ret = subprocess.call(shlex.split(query)) @@ -385,7 +387,7 @@ class OracleConf(BaseDB): #jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE cstring="jdbc:oracle:thin:@//%s" %(self.host) - if os_name == "LINUX": + if is_unix: jisql_cmd = "%s -cp %s:%s/jisql/lib/* org.apache.util.sql.Jisql -driver oraclethin -cstring %s -u '%s' -p '%s' -noheader -trim" %(self.JAVA_BIN, self.SQL_CONNECTOR_JAR,path, cstring, user, password) elif os_name == "WINDOWS": jisql_cmd = "%s -cp %s;%s\jisql\\lib\\* org.apache.util.sql.Jisql -driver oraclethin -cstring %s -u \"%s\" -p \"%s\" -noheader -trim" %(self.JAVA_BIN, self.SQL_CONNECTOR_JAR, path, cstring, user, password) @@ -394,7 +396,7 @@ class OracleConf(BaseDB): def check_connection(self, db_name, db_user, db_password): log("[I] Checking connection", "info") get_cmd = self.get_jisql_cmd(db_user, db_password) - if os_name == "LINUX": + if is_unix: query = get_cmd + " -c \; -query \"select * from v$version;\"" elif os_name == "WINDOWS": query = get_cmd + " -query \"select * from v$version;\" -c ;" @@ -411,7 +413,7 @@ class OracleConf(BaseDB): if dryMode == False: log("[I] Verifying user " + db_user ,"info") get_cmd = self.get_jisql_cmd(root_user, db_root_password) - if os_name == "LINUX": + if is_unix: query = get_cmd + " -c \; -query \"select username from all_users where upper(username)=upper('%s');\"" %(db_user) elif os_name == "WINDOWS": query = get_cmd + " -query \"select username from all_users where upper(username)=upper('%s');\" -c ;" %(db_user) @@ -431,7 +433,7 @@ class OracleConf(BaseDB): if dryMode == False: log("[I] User does not exists, Creating user : " + db_user, "info") get_cmd = self.get_jisql_cmd(root_user, db_root_password) - if os_name == "LINUX": + if is_unix: 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) @@ -445,7 +447,7 @@ class OracleConf(BaseDB): 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 os_name == "LINUX": + 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)) @@ -472,7 +474,7 @@ class OracleConf(BaseDB): if dryMode == False: log("[I] Verifying tablespace " + db_name, "info") get_cmd = self.get_jisql_cmd(root_user, db_root_password) - if os_name == "LINUX": + if is_unix: query = get_cmd + " -c \; -query \"SELECT DISTINCT UPPER(TABLESPACE_NAME) FROM USER_TablespaceS where UPPER(Tablespace_Name)=UPPER(\'%s\');\"" %(db_name) elif os_name == "WINDOWS": query = get_cmd + " -query \"SELECT DISTINCT UPPER(TABLESPACE_NAME) FROM USER_TablespaceS where UPPER(Tablespace_Name)=UPPER(\'%s\');\" -c ;" %(db_name) @@ -489,7 +491,7 @@ class OracleConf(BaseDB): log("[I] Tablespace " + db_name + " already exists.","info") if self.verify_user(root_user, db_user, db_root_password,dryMode): get_cmd = self.get_jisql_cmd(db_user ,db_password) - if os_name == "LINUX": + if is_unix: query = get_cmd + " -c \; -query 'select default_tablespace from user_users;'" elif os_name == "WINDOWS": query = get_cmd + " -query \"select default_tablespace from user_users;\" -c ;" @@ -507,7 +509,7 @@ class OracleConf(BaseDB): if dryMode == False: log("[I] Tablespace does not exist. Creating tablespace: " + db_name,"info") get_cmd = self.get_jisql_cmd(root_user, db_root_password) - if os_name == "LINUX": + 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)) @@ -535,7 +537,7 @@ class OracleConf(BaseDB): log("[I] Assign default tablespace " +db_name + " to " + db_user, "info") # Assign default tablespace db_name get_cmd = self.get_jisql_cmd(root_user , db_root_password) - if os_name == "LINUX": + 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)) @@ -563,7 +565,7 @@ class OracleConf(BaseDB): if dryMode == False: log("[I] Tablespace does not exist. Creating tablespace: " + audit_db_name,"info") get_cmd = self.get_jisql_cmd(audit_db_root_user, audit_db_root_password) - if os_name == "LINUX": + 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)) @@ -585,7 +587,7 @@ class OracleConf(BaseDB): log("[I] Assign default tablespace " + audit_db_name + " to : " + audit_db_user, "info") # Assign default tablespace audit_db_name get_cmd = self.get_jisql_cmd(audit_db_root_user , audit_db_root_password) - if os_name == "LINUX": + 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)) @@ -604,7 +606,7 @@ class OracleConf(BaseDB): def grant_xa_db_user(self, root_user, db_name, db_user, db_password, db_root_password, invoke,dryMode): if dryMode == False: get_cmd = self.get_jisql_cmd(root_user ,db_root_password) - if os_name == "LINUX": + 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)) @@ -633,7 +635,7 @@ class OracleConf(BaseDB): if dryMode == False: log("[I] User does not exists, Creating user " + db_user, "info") get_cmd = self.get_jisql_cmd(audit_db_root_user, audit_db_root_password) - if os_name == "LINUX": + if is_unix: 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) @@ -662,7 +664,7 @@ class OracleConf(BaseDB): if dryMode == False: log("[I] Audit user does not exists, Creating audit user " + audit_db_user, "info") get_cmd = self.get_jisql_cmd(audit_db_root_user, audit_db_root_password) - if os_name == "LINUX": + if is_unix: 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) @@ -674,7 +676,7 @@ class OracleConf(BaseDB): ret = subprocess.call(query) if ret == 0: if self.verify_user(audit_db_root_user, audit_db_user, audit_db_root_password,dryMode): - if os_name == "LINUX": + 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)) @@ -719,7 +721,7 @@ class PostgresConf(BaseDB): #TODO: User array for forming command path = RANGER_ADMIN_HOME self.JAVA_BIN = self.JAVA_BIN.strip("'") - if os_name == "LINUX": + if is_unix: jisql_cmd = "%s -cp %s:%s/jisql/lib/* org.apache.util.sql.Jisql -driver postgresql -cstring jdbc:postgresql://%s/%s -u %s -p '%s' -noheader -trim -c \;" %(self.JAVA_BIN, self.SQL_CONNECTOR_JAR,path, self.host, db_name, user, password) elif os_name == "WINDOWS": jisql_cmd = "%s -cp %s;%s\jisql\\lib\\* org.apache.util.sql.Jisql -driver postgresql -cstring jdbc:postgresql://%s/%s -u %s -p \"%s\" -noheader -trim" %(self.JAVA_BIN, self.SQL_CONNECTOR_JAR, path, self.host, db_name, user, password) @@ -729,7 +731,7 @@ class PostgresConf(BaseDB): if dryMode == False: log("[I] Verifying user " + db_user , "info") get_cmd = self.get_jisql_cmd(root_user, db_root_password, 'postgres') - if os_name == "LINUX": + if is_unix: query = get_cmd + " -query \"SELECT rolname FROM pg_roles WHERE rolname='%s';\"" %(db_user) elif os_name == "WINDOWS": query = get_cmd + " -query \"SELECT rolname FROM pg_roles WHERE rolname='%s';\" -c ;" %(db_user) @@ -743,7 +745,7 @@ class PostgresConf(BaseDB): def check_connection(self, db_name, db_user, db_password): #log("[I] Checking connection", "info") get_cmd = self.get_jisql_cmd(db_user, db_password, db_name) - if os_name == "LINUX": + if is_unix: query = get_cmd + " -query \"SELECT 1;\"" elif os_name == "WINDOWS": query = get_cmd + " -query \"SELECT 1;\" -c ;" @@ -765,7 +767,7 @@ class PostgresConf(BaseDB): if dryMode == False: log("[I] User does not exists, Creating user : " + db_user, "info") get_cmd = self.get_jisql_cmd(root_user, db_root_password, 'postgres') - if os_name == "LINUX": + if is_unix: 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) @@ -791,7 +793,7 @@ class PostgresConf(BaseDB): if dryMode == False: log("[I] Verifying database " + db_name , "info") get_cmd = self.get_jisql_cmd(root_user, db_root_password, 'postgres') - if os_name == "LINUX": + if is_unix: query = get_cmd + " -query \"SELECT datname FROM pg_database where datname='%s';\"" %(db_name) elif os_name == "WINDOWS": query = get_cmd + " -query \"SELECT datname FROM pg_database where datname='%s';\" -c ;" %(db_name) @@ -811,7 +813,7 @@ class PostgresConf(BaseDB): if dryMode == False: log("[I] Database does not exist, Creating database : " + db_name,"info") get_cmd = self.get_jisql_cmd(root_user, db_root_password, 'postgres') - if os_name == "LINUX": + 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)) @@ -836,7 +838,7 @@ class PostgresConf(BaseDB): if dryMode == False: log("[I] Granting privileges TO user '"+db_user+"' on db '"+db_name+"'" , "info") get_cmd = self.get_jisql_cmd(root_user, db_root_password, db_name) - if os_name == "LINUX": + 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)) @@ -848,7 +850,7 @@ class PostgresConf(BaseDB): log("[E] Granting all privileges on database "+db_name+" to user "+db_user+" failed..", "error") sys.exit(1) - if os_name == "LINUX": + 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)) @@ -860,7 +862,7 @@ class PostgresConf(BaseDB): log("[E] Granting all privileges on schema public to user "+db_user+" failed..", "error") sys.exit(1) - if os_name == "LINUX": + 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) @@ -873,7 +875,7 @@ class PostgresConf(BaseDB): if re.search(' |', each_line): tablename , value = each_line.strip().split(" |",1) tablename = tablename.strip() - if os_name == "LINUX": + 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)) @@ -889,7 +891,7 @@ class PostgresConf(BaseDB): sys.exit(1) - if os_name == "LINUX": + 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": @@ -901,7 +903,7 @@ class PostgresConf(BaseDB): if re.search(' |', each_line): sequence_name , value = each_line.strip().split(" |",1) sequence_name = sequence_name.strip() - if os_name == "LINUX": + 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)) @@ -965,7 +967,7 @@ class SqlServerConf(BaseDB): #TODO: User array for forming command path = RANGER_ADMIN_HOME self.JAVA_BIN = self.JAVA_BIN.strip("'") - if os_name == "LINUX": + if is_unix: jisql_cmd = "%s -cp %s:%s/jisql/lib/* org.apache.util.sql.Jisql -user %s -p '%s' -driver mssql -cstring jdbc:sqlserver://%s\\;databaseName=%s -noheader -trim"%(self.JAVA_BIN, self.SQL_CONNECTOR_JAR, path,user, password, self.host,db_name) elif os_name == "WINDOWS": jisql_cmd = "%s -cp %s;%s\\jisql\\lib\\* org.apache.util.sql.Jisql -user %s -p \"%s\" -driver mssql -cstring jdbc:sqlserver://%s;databaseName=%s -noheader -trim"%(self.JAVA_BIN, self.SQL_CONNECTOR_JAR, path, user, password, self.host,db_name) @@ -975,7 +977,7 @@ class SqlServerConf(BaseDB): if dryMode == False: log("[I] Verifying user " + db_user , "info") get_cmd = self.get_jisql_cmd(root_user, db_root_password, 'master') - if os_name == "LINUX": + if is_unix: query = get_cmd + " -c \; -query \"select name from sys.sql_logins where name = '%s';\"" %(db_user) elif os_name == "WINDOWS": query = get_cmd + " -query \"select name from sys.sql_logins where name = '%s';\" -c ;" %(db_user) @@ -989,7 +991,7 @@ class SqlServerConf(BaseDB): def check_connection(self, db_name, db_user, db_password): log("[I] Checking connection", "info") get_cmd = self.get_jisql_cmd(db_user, db_password, db_name) - if os_name == "LINUX": + if is_unix: query = get_cmd + " -c \; -query \"SELECT 1;\"" elif os_name == "WINDOWS": query = get_cmd + " -query \"SELECT 1;\" -c ;" @@ -1011,7 +1013,7 @@ class SqlServerConf(BaseDB): if dryMode == False: get_cmd = self.get_jisql_cmd(root_user, db_root_password, 'master') log("[I] User does not exists, Creating Login user " + db_user, "info") - if os_name == "LINUX": + if is_unix: 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) @@ -1037,7 +1039,7 @@ class SqlServerConf(BaseDB): if dryMode == False: log("[I] Verifying database " + db_name, "info") get_cmd = self.get_jisql_cmd(root_user, db_root_password, 'master') - if os_name == "LINUX": + if is_unix: query = get_cmd + " -c \; -query \"SELECT name from sys.databases where name='%s';\"" %(db_name) elif os_name == "WINDOWS": query = get_cmd + " -query \"SELECT name from sys.databases where name='%s';\" -c ;" %(db_name) @@ -1056,7 +1058,7 @@ class SqlServerConf(BaseDB): if dryMode == False: log("[I] Database does not exist. Creating database : " + db_name,"info") get_cmd = self.get_jisql_cmd(root_user, db_root_password, 'master') - if os_name == "LINUX": + 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)) @@ -1080,7 +1082,7 @@ class SqlServerConf(BaseDB): def create_user(self, root_user, db_name ,db_user, db_password, db_root_password,dryMode): get_cmd = self.get_jisql_cmd(root_user, db_root_password, db_name) - if os_name == "LINUX": + 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) @@ -1091,7 +1093,7 @@ class SqlServerConf(BaseDB): log("[I] User "+db_user+" exist ","info") else: if dryMode == False: - if os_name == "LINUX": + 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)) @@ -1100,7 +1102,7 @@ class SqlServerConf(BaseDB): jisql_log(query, db_root_password) ret = subprocess.call(query) if ret == 0: - if os_name == "LINUX": + 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) @@ -1121,7 +1123,7 @@ class SqlServerConf(BaseDB): if dryMode == False: log("[I] Granting permission to admin user '" + db_user + "' on db '" + db_name + "'" , "info") get_cmd = self.get_jisql_cmd(root_user, db_root_password, db_name) - if os_name == "LINUX": + 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)) @@ -1185,7 +1187,7 @@ class SqlAnywhereConf(BaseDB): def get_jisql_cmd(self, user, password, db_name): path = RANGER_ADMIN_HOME self.JAVA_BIN = self.JAVA_BIN.strip("'") - if os_name == "LINUX": + if is_unix: jisql_cmd = "%s -cp %s:%s/jisql/lib/* org.apache.util.sql.Jisql -user %s -p '%s' -driver sapsajdbc4 -cstring jdbc:sqlanywhere:database=%s;host=%s -noheader -trim"%(self.JAVA_BIN, self.SQL_CONNECTOR_JAR, path,user, password,db_name,self.host) elif os_name == "WINDOWS": jisql_cmd = "%s -cp %s;%s\\jisql\\lib\\* org.apache.util.sql.Jisql -user %s -p \"%s\" -driver sapsajdbc4 -cstring jdbc:sqlanywhere:database=%s;host=%s -noheader -trim"%(self.JAVA_BIN, self.SQL_CONNECTOR_JAR, path, user, password,db_name,self.host) @@ -1195,7 +1197,7 @@ class SqlAnywhereConf(BaseDB): if dryMode == False: log("[I] Verifying user " + db_user , "info") get_cmd = self.get_jisql_cmd(root_user, db_root_password, '') - if os_name == "LINUX": + 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) @@ -1209,7 +1211,7 @@ class SqlAnywhereConf(BaseDB): def check_connection(self, db_name, db_user, db_password): log("[I] Checking connection", "info") get_cmd = self.get_jisql_cmd(db_user, db_password, db_name) - if os_name == "LINUX": + if is_unix: query = get_cmd + " -c \; -query \"SELECT 1;\"" elif os_name == "WINDOWS": query = get_cmd + " -query \"SELECT 1;\" -c ;" @@ -1231,7 +1233,7 @@ class SqlAnywhereConf(BaseDB): if dryMode == False: get_cmd = self.get_jisql_cmd(root_user, db_root_password, '') log("[I] User does not exists, Creating Login user " + db_user, "info") - if os_name == "LINUX": + if is_unix: 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) @@ -1257,7 +1259,7 @@ class SqlAnywhereConf(BaseDB): if dryMode == False: log("[I] Starting database " + db_name, "info") get_cmd = self.get_jisql_cmd(root_user, db_root_password, '') - if os_name == "LINUX": + if is_unix: query = get_cmd + " -c \; -query \"start database '%s' autostop off;\"" %(db_name) elif os_name == "WINDOWS": query = get_cmd + " -query \"start database '%s' autostop off;\" -c ;" %(db_name) @@ -1268,7 +1270,7 @@ class SqlAnywhereConf(BaseDB): if dryMode == False: log("[I] Verifying database " + db_name, "info") get_cmd = self.get_jisql_cmd(root_user, db_root_password, '') - if os_name == "LINUX": + if is_unix: query = get_cmd + " -c \; -query \"select alias from sa_db_info() where alias='%s';\"" %(db_name) elif os_name == "WINDOWS": query = get_cmd + " -query \"select alias from sa_db_info() where alias='%s';\" -c ;" %(db_name) @@ -1287,7 +1289,7 @@ class SqlAnywhereConf(BaseDB): if dryMode == False: log("[I] Database does not exist. Creating database : " + db_name,"info") get_cmd = self.get_jisql_cmd(root_user, db_root_password, '') - if os_name == "LINUX": + if is_unix: 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) @@ -1314,7 +1316,7 @@ class SqlAnywhereConf(BaseDB): def create_user(self, root_user, db_name ,db_user, db_password, db_root_password,dryMode): get_cmd = self.get_jisql_cmd(root_user, db_root_password, '') - if os_name == "LINUX": + 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) @@ -1325,7 +1327,7 @@ class SqlAnywhereConf(BaseDB): log("[I] User "+db_user+" exist ","info") else: if dryMode == False: - if os_name == "LINUX": + if is_unix: 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) @@ -1336,7 +1338,7 @@ class SqlAnywhereConf(BaseDB): jisql_log(query_with_masked_pwd, db_root_password) ret = subprocess.call(query) if ret == 0: - if os_name == "LINUX": + 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) @@ -1357,7 +1359,7 @@ class SqlAnywhereConf(BaseDB): if dryMode == False: log("[I] Granting permission to user '" + db_user + "' on db '" + db_name + "'" , "info") get_cmd = self.get_jisql_cmd(root_user, db_root_password, db_name) - if os_name == "LINUX": + if is_unix: 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) @@ -1445,7 +1447,7 @@ def main(argv): log("[I] Running DBA setup script. QuiteMode:" + str(quiteMode),"info") if (quiteMode): - if os.environ['JAVA_HOME'] == "": + if (not 'JAVA_HOME' in os.environ) or (os.environ['JAVA_HOME'] == ""): log("[E] ---------- JAVA_HOME environment property not defined, aborting installation. ----------", "error") sys.exit(1) else: @@ -1465,7 +1467,7 @@ def main(argv): else: JAVA_BIN='' if not dryMode: - if os.environ['JAVA_HOME'] == "": + if (not 'JAVA_HOME' in os.environ) or (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')