Passwords WLST标识多数据源。
我有一个脚本需要更新。目前,所有数据源都需要密码,但现在我们有一些多数据源以及通用数据源。我的要求是,只要数据源是一个多数据源,它就应该跳过它,并且不应该提示输入密码。我在下面列出了当前的脚本Passwords WLST标识多数据源。,passwords,datasource,wlst,identify,Passwords,Datasource,Wlst,Identify,我有一个脚本需要更新。目前,所有数据源都需要密码,但现在我们有一些多数据源以及通用数据源。我的要求是,只要数据源是一个多数据源,它就应该跳过它,并且不应该提示输入密码。我在下面列出了当前的脚本 def updateJDBCPasswords(): PARAMS_TEMPLATE = '/JDBCSystemResources/%s/JDBCResource/%s/JDBCDriverParams/%s' domainConfig() # Get JDBC DataSources cd("J
def updateJDBCPasswords():
PARAMS_TEMPLATE = '/JDBCSystemResources/%s/JDBCResource/%s/JDBCDriverParams/%s'
domainConfig()
# Get JDBC DataSources
cd("JDBCSystemResources")
dataSources = cmo.getJDBCSystemResources()
edit()
# For each DataSource update the password
for dataSource in dataSources :
dsName = dataSource.getName()
password=raw_input("Enter database password for "+ dsName +" : ")
cd(PARAMS_TEMPLATE % (dsName, dsName, dsName) )
cmo.setPassword(password)
到目前为止,我已经看到了我的线程/博客,但这些都与我的问题无关。有关于创建多数据源的帮助,但找不到任何提示如何识别它以满足我的场景 不太直观,但serverConfig树的根目录中有一个部署列表,其中包括jdbc数据源之类的内容,这是我唯一能找到允许您识别多个数据源的mbean的地方。因此,开始时的附加代码构建了一个要在代码中忽略的名称列表
serverConfig()
deployments=cmo.getDeployments()
multiDataSources = []
for deployment in deployments:
if (deployment.getType()=="JDBCMultiPool"):
multiDataSources.append(deployment.getName())
domainConfig()
# Get JDBC DataSources
cd("JDBCSystemResources")
dataSources = cmo.getJDBCSystemResources()
# For each DataSource update the password
for dataSource in dataSources :
dsName = dataSource.getName()
if dsName in multiDataSources:
print("Skipping multidatasource %s" % dsName)
continue
print("Processing data source %s" % dsName)
类似下面的内容可以帮助您:
cd(_dsDir + '/JDBCDriverParams/NO_NAME_0/Properties/NO_NAME_0/Property/user')
_userprop = cmo.getValue()
# Multi datasource wouldn't have user properties and hence skipping the updation of multi datasources
if _userprop is None:
continue
else:
# continue updating password
cmo.setValue(_userval)
# Next set the password
cd(_dsDir + '/JDBCDriverParams/NO_NAME_0')
set('PasswordEncrypted', _dsPassword)