我有一个WLST脚本来设置WorkManager并将其定位到Weblogic域中的所有集群。问题是我在多个环境中有数百个域,因此不能有多个属性文件。有没有一种方法可以编写wlst脚本,以从域中提取群集详细信息并将其设置为创建的工作管理器的目标?
我尝试使用下面的方法获取群集详细信息,但它只列出了一个群集,该域中配置了3个群集。
#cd ('/Clusters')
Clusters = cmo.getClusters()
for clusters in Clusters:
svr = clusters.getName()
print svr
#
这是我正在使用的第一个:
#import java.lang.Exception
# Connect to ADMIN
##################
userName=sys.argv[1]
userPW=sys.argv[2]
adminURL=sys.argv[3]
WL_DOMAIN=sys.argv[4]
exists = 'no';
connect(userName,userPW,adminURL)
edit()
startEdit()
cd ('/Clusters')
Clusters = cmo.getClusters()
for clusters in Clusters:
svr = clusters.getName()
print svr
cd('/SelfTuning/' + domainName)
cmo.createWorkManager('workManager')
cd('/SelfTuning/' + domainName + '/WorkManagers/workManager')
set('Targets',jarray.array([ObjectName('com.bea:Name='+svr+',Type=Cluster')], ObjectName))
activate()
#
上面的脚本将创建的工作管理器仅定向到一个域本身具有3个群集的群集。我想将WM定位到域中的所有群集,而不用硬编码任何群集名称。请帮忙!
答案 0 :(得分:0)
这是一个算法问题。您的代码不正确。
connect(userName,userPW,adminURL)
edit()
startEdit()
cd('/SelfTuning/' + domainName)
cmo.createWorkManager('workManager')
cd ('/Clusters')
Clusters = cmo.getClusters()
cd('/SelfTuning/' + domainName + '/WorkManagers/workManager')
set('Targets',Clusters)
save()
activate()
答案 1 :(得分:0)
在这里,您可以去:(只需删除该svr变量)
cd ('/Clusters')
Clusters = cmo.getClusters()
for clusters in Clusters:
print clusters.getName()