When we have multiple environments for different releases, it is very common to change the weblogic database properties to point corresponding database. Instead of going to Weblogic console and doing it manually, it can be done using WSLT scripts offline quickly.
The below scripts and properties file is used to update the datasource properties.
/u01/scripts/update-datasource.py
from java.io import FileInputStream
propInputStream = FileInputStream("/u01/scripts/ds.properties")
configProps = Properties()
configProps.load(propInputStream)
dsnames= configProps.get("ds.names")
readDomain(configProps.get("domain.path"))
dsName=''
for member in dsnames:
if member == ",":
print 'updating the password for ' + dsName
cd('/JDBCSystemResource/'+dsName+'/JdbcResource/'+dsName+'/JDBCDriverParams/NO_NAME_0')
set('PasswordEncrypted', encrypt(configProps.get("ds."+dsName+".pwd")))
set('URL',configProps.get("ds."+dsName+".url"))
cd('Properties/NO_NAME_0')
cd('Property')
cd('user')
set('Value', configProps.get("ds."+dsName+".username"))
dsName=''
else:
dsName=dsName+member
updateDomain()
exit()
/u01/scripts/ds.properties
domain.path=/u01/oracle/user_projects/domains/base_domain
ds.names=appatg,appcat,appmarket,appnotme,
ds.appatg.username=STR01_ATGAPP
ds.appatg.pwd=tst1to5appusers
ds.appatg.url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=zlt13574.vci.att.com)(PORT=1524)))(CONNECT_DATA=(SERVICE_NAME=t1c4d857)))
ds.appcat.pwd=catpwd
ds.appmarket.pwd=marketpwd
ds.appnotme.pwd=notmepwd
/u01/scripts/update-datasource.sh
#!/bin/bash
cd /u01/oracle/user_projects/domains/base_domain
/u01/oracle/wlserver/common/bin/wlst.sh /u01/scripts/ds.py
Execute the script:
$ /u01/scripts/update-datasources.sh
The below scripts and properties file is used to update the datasource properties.
/u01/scripts/update-datasource.py
from java.io import FileInputStream
propInputStream = FileInputStream("/u01/scripts/ds.properties")
configProps = Properties()
configProps.load(propInputStream)
dsnames= configProps.get("ds.names")
readDomain(configProps.get("domain.path"))
dsName=''
for member in dsnames:
if member == ",":
print 'updating the password for ' + dsName
cd('/JDBCSystemResource/'+dsName+'/JdbcResource/'+dsName+'/JDBCDriverParams/NO_NAME_0')
set('PasswordEncrypted', encrypt(configProps.get("ds."+dsName+".pwd")))
set('URL',configProps.get("ds."+dsName+".url"))
cd('Properties/NO_NAME_0')
cd('Property')
cd('user')
set('Value', configProps.get("ds."+dsName+".username"))
dsName=''
else:
dsName=dsName+member
updateDomain()
exit()
/u01/scripts/ds.properties
domain.path=/u01/oracle/user_projects/domains/base_domain
ds.names=appatg,appcat,appmarket,appnotme,
ds.appatg.username=STR01_ATGAPP
ds.appatg.pwd=tst1to5appusers
ds.appatg.url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=zlt13574.vci.att.com)(PORT=1524)))(CONNECT_DATA=(SERVICE_NAME=t1c4d857)))
ds.appcat.pwd=catpwd
ds.appmarket.pwd=marketpwd
ds.appnotme.pwd=notmepwd
/u01/scripts/update-datasource.sh
#!/bin/bash
cd /u01/oracle/user_projects/domains/base_domain
/u01/oracle/wlserver/common/bin/wlst.sh /u01/scripts/ds.py
cd -
Execute the script:
$ /u01/scripts/update-datasources.sh