在WLST脚本中动态更改变量

时间:2015-04-13 07:26:25

标签: python weblogic wlst

我正在创建一堆.py个WLST脚本(15-20),每个脚本都会在Weblogic环境中检查不同的设置。例如,密码要求,安全设置,用户属性等。

但是,我想在许多WebLogic环境中运行这些脚本,这些环境都具有不同的主机URL和凭据。是否有一种简单的方法可以动态更改每个脚本在不同环境中运行时的连接详细信息:

脚本:

connect(x,y,z)
env 1中的

脚本:

connect('weblogic','welcome1','example-host1:7001')
env 2中的

脚本:

connect('weblogic','welcome2','example-host1:7001')

这是我第一次在使用它作为我职业生涯的前几年的源代码时询问有关stackoverflow的问题,所以如果这个问题的描述很糟糕,那么道歉。

2 个答案:

答案 0 :(得分:1)

简单的回答是。在属性文件中保留与环境相关的属性。并使用Python(Jython)

读取这些属性
from java.io import FileInputStream

propInputStream = FileInputStream("preprodenv.properties") 
configProps = Properties()
configProps.load(propInputStream)

adminHost=configProps.get("admin.host)
adminPort=configProps.get("admin.port")
adminUserName=configProps.get("admin.userName")
adminPassword=configProps.get("admin.password")

# t3 or t3s depends upon your config
adminURL = "t3://"+adminHost+":"+adminPort
connect(adminUserName, adminPassword, adminURL)

选项#2

将环境相关信息保存在属性中并使用

进行阅读
loadProperties('c:/temp/myLoad.properties')

或将其作为参数传递给您的wlst脚本-loadProperties='C:\temp\myLoad.properties'

一切都会奏效。

答案 1 :(得分:0)

我假设主机名在不同环境中会有所不同。我们这样做的方法是创建一个" env shell脚本"其中包含使用简单case语句的映射。然后,我们创建一个包装脚本,该脚本在" env shell脚本"中迭代各种环境。这有帮助,还是需要更多细节?

相关问题