WLST执行存储变量" connect()"声明

时间:2014-03-12 17:51:20

标签: python weblogic wlst

所以,我将一个环境变量从bash传递给python;

#!/usr/bin/env python2
import os

#connect("weblogic", "weblogic", url=xxx.xxx.xxx.xxx:xxxx)
os.environ['bash_variable']

通过wlst.sh我可以打印导出的bash_variable,但是如何执行存储的变量?基本上,我试图删除原始的连接语句并传递具有所述信息的变量。感谢

1 个答案:

答案 0 :(得分:1)

问题,为什么不用变量作为参数调用脚本并使用sys.argv []?

通过这样的例子。

import os
import sys
import traceback
from java.io import *
from java.lang import *




wlDomain = sys.argv[1]
wlDomPath = sys.argv[2]
wlNMHost = sys.argv[3]
wlNMPort = sys.argv[4]
wlDPath="%s/%s" %(wlDomPath,wlDomain)
wlNMprop="/apps/bea/wls/scripts/.shadow/NM.prop"

try:
    print "Connection to Node Manager"
    print ""
    loadProperties(wlNMprop)
    nmConnect(username=NMuser,password=NMpass,host=wlNMHost,port=wlNMPort,domainName=wlDomain,domainDir=wlDPath,mType='ssl',verbose='true')
except:
    print "Fatal Error : No Connection to Node Manager"
    exit()

print "Connected to Node Manager"

NM.prop文件是一个600文件,其中包含NM的用户名/密码。

编辑:

所以根据我的理解,你想做这样的事情:

URLS = ['t3s://Host1:Port1','t3s://Host2:Port2','t3s://Host3:Port3']
for urls in URLS:
    connect('somebody','password',urls)
    {bunch of commands}
    disconnect()

列表URL的值将由环境定义。

我认为你有三种选择:

  1. 每个环境都有1个脚本,或多或少相同,除了URLS列表
  2. 有一个脚本,但在sys.argv [1]上有一个条件分支(环境作为参数)并在那里创建列表。
  3. 根据环境,有1个脚本为每个环境使用参数文件。每个参数文件包含有问题的列表。
  4. 类似的东西:

    propENV = sys.argv[1]
    propPath = "/path1/path2"
    propFile = "%s/%s" %(propPath,propENV)
    
    loadProperties(propFile)
    

    我可能会自己使用属性文件选项,因为从操作的角度来看它更灵活......至少恕我直言。