Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #This script is to create multiple Active grid link DS
- def file_parse():
- global _dict
- _dict={}
- dsprop = "/mypath/ds.properties"
- if os.path.exists(dsprop):
- fo = open(dsprop,'r+')
- lines = fo.readlines()
- for line in lines:
- if "=" in line:
- line = line.rstrip()
- key = line.split('=')[0]
- value = line.split('=')[1]
- _dict[key]=value
- else:
- print(dsprop+" property file is missing !")
- def connect_domain():
- try:
- AdmSvr = _dict.get('AdminServer')
- AdmPort = _dict.get('AdminPort')
- AdmURL = "t3://"+AdmSvr+":"+AdmPort
- AdmCfg = _dict.get('AdminConfig')
- AdmKey = _dict.get('AdminKey')
- print("Connecting to Admin server")
- if os.path.exists(AdmCfg) and os.path.exists(AdmKey):
- connect(userConfigFile=AdmCfg, userKeyFile=AdmKey, url=AdmURL)
- print("connection successfull")
- except Exception, error:
- print ("\nUnable to connect to admin server")
- print ("Please verify the URL (or) check if Admin server is stopped")
- print ("Error description as follows:\n")
- print(error)
- print dumpStack()
- exit()
- def create_agl_ds(DSN,DSJ,DSU,DSP,DSC):
- db_host = _dict.get('dbHostName')
- db_port = _dict.get('dbPort')
- db_name = _dict.get('dbServiceName')
- jdbcURL = 'jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST='+db_host+')(PORT='+db_port+')))(CONNECT_DATA=(SERVICE_NAME='+db_name+')))'
- db_driver = _dict.get('dbDriver')
- ons_node1 = _dict.get('onsNode1')
- ons_node2 = _dict.get('onsNode2')
- ons_port = _dict.get('onsPort')
- try:
- edit()
- startEdit()
- print("\nCreating "+DSN+" datasource")
- cd('/')
- cmo.createJDBCSystemResource(DSN)
- cd('/JDBCSystemResources/'+DSN+'/JDBCResource/'+DSN)
- cmo.setName(DSN)
- cd('JDBCDataSourceParams/'+DSN)
- set('JNDINames',jarray.array([String(DSJ)], String))
- cd('/JDBCSystemResources/'+DSN+'/JDBCResource/'+DSN+'/JDBCDriverParams/'+DSN)
- cmo.setUrl(jdbcURL)
- cmo.setDriverName('oracle.jdbc.OracleDriver')
- enpwd = encrypt(DSP)
- set('PasswordEncrypted',enpwd)
- cd('/JDBCSystemResources/'+DSN+'/JDBCResource/'+DSN+'/JDBCConnectionPoolParams/'+DSN)
- cmo.setTestTableName('SQL ISVALID\r\n\r\n')
- cd('/JDBCSystemResources/'+DSN+'/JDBCResource/'+DSN+'/JDBCDriverParams/'+DSN+'/Properties/'+DSN)
- cmo.createProperty('user')
- cd('/JDBCSystemResources/'+DSN+'/JDBCResource/'+DSN+'/JDBCDriverParams/'+DSN+'/Properties/'+DSN+'/Properties/user')
- cmo.setValue(DSU)
- cd('/JDBCSystemResources/'+DSN+'/JDBCResource/'+DSN+'/JDBCDataSourceParams/'+DSN)
- cmo.setGlobalTransactionsProtocol('OnePhaseCommit')
- cd('/JDBCSystemResources/'+DSN+'/JDBCResource/'+DSN+'/JDBCOracleParams/'+DSN)
- cmo.setFanEnabled(true)
- cmo.setOnsWalletFile('')
- cmo.setActiveGridlink(true)
- cmo.unSet('OnsWalletPasswordEncrypted')
- cmo.setOnsNodeList(ons_node1+':'+ons_port+','+ons_node2+':'+ons_port)
- cmo.setFanEnabled(true)
- cmo.setOnsWalletFile('')
- cmo.setActiveGridlink(true)
- cmo.unSet('OnsWalletPasswordEncrypted')
- cmo.setOnsNodeList(ons_node1+':'+ons_port+','+ons_node2+':'+ons_port)
- cd('/JDBCSystemResources/'+DSN)
- set('Targets',jarray.array([ObjectName('com.bea:Name='+DSC+',Type=Cluster')], ObjectName))
- save()
- activate()
- print(DSN+" datasource has been created successfully\n")
- except Exception, error:
- print"------------------------------------------------------------"
- print("\nUnable to create "+DSN+" datasource")
- print(error)
- print dumpStack()
- print("proceeding to create the next datasource\n")
- print"------------------------------------------------------------"
- undo(defaultAnswer='y')
- stopEdit(defaultAnswer='y')
- def duplicate_ds_validation(DSN):
- cd('/')
- cd('JDBCSystemResources')
- oldDS = ls(returnMap='true')
- if DSN in oldDS:
- return true
- else:
- return false
- def db_credential_validation(DSU,DSP):
- db_typ = _dict.get('dbType')
- db_host = _dict.get('dbHostName')
- db_port = _dict.get('dbPort')
- db_name = _dict.get('dbServiceName')
- dbTest = "java utils.dbping "+db_typ+" "+DSU+" "+DSP+" "+db_host+":"+db_port+"/"+db_name+">/dev/null 2>&1"
- dbResult = os.system(dbTest)
- if dbResult == 0:
- return true
- else:
- return false
- if __name__ != "__main__":
- import os
- import sys
- redirect("/dev/null",'false')
- file_parse()
- print"\n\n------------------------------------------------------------"
- connect_domain()
- print"------------------------------------------------------------"
- ds = _dict.get('DataSource').split(',')
- for each_ds in ds:
- DS_N = _dict.get(each_ds+'.Name')
- DS_J = _dict.get(each_ds+'.jndiName')
- DS_U = _dict.get(each_ds+'.dbUName')
- DS_P = _dict.get(each_ds+'.dbPasswd')
- DS_C = _dict.get(each_ds+'.Cluster')
- if db_credential_validation(DS_U,DS_P):
- if not duplicate_ds_validation(DS_N):
- create_agl_ds(DS_N,DS_J,DS_U,DS_P,DS_C)
- else:
- print"\n------------------- Duplicate DS found ! -------------------"
- print("\nThere is already a ds with the name: "+DS_N)
- print("skipping "+DS_N+" ds creation\n")
- print"------------------------------------------------------------\n"
- else:
- print"\n---------------- DB connectivity failure ! -----------------"
- print("\nUnable to connect the database with "+DS_U+" user")
- print("skipping "+DS_N+" ds creation\n")
- print"------------------------------------------------------------\n"
- print"\n\n------------------------------------------------------------"
- print" cheers for using WLST ! "
- print"------------------------------------------------------------\n\n"
- if __name__ == "__main__":
- print('Please execute the script via WLST')
Add Comment
Please, Sign In to add comment