WLST查询(将已部署的应用程序和主机列在一起)

时间:2018-04-26 07:55:03

标签: weblogic weblogic12c weblogic11g wlst

我有两个WLST查询。我通过WebLogic Sc​​ripting Tool控制台执行它。这些查询是:

1)已部署的应用程序和状态列表:

connect('weblogic','password','t3://localhost:7001')
cd('AppDeployments')
deplymentsList=cmo.getAppDeployments()
for app in deplymentsList:
      domainConfig()
      cd ('/AppDeployments/'+app.getName()+'/Targets')
      mytargets = ls(returnMap='true')
      domainRuntime()
      cd('AppRuntimeStateRuntime')
      cd('AppRuntimeStateRuntime')
      for targetinst in mytargets:
            curstate4=cmo.getCurrentState(app.getName(),targetinst)
            print app.getApplicationName(), targetinst, curstate4;

输出示例:

  • WeblogicApp Cluster1 STATE_ACTIVE
  • DMS应用程序AdminServer STATE_ACTIVE
  • 好处Cluster2 STATE_ACTIVE

2)主机 - 机器列表

connect('weblogic','password','t3://localhost:7001')     
svrs = cmo.getServers()
domainRuntime()
for host in svrs: 
    machine = host.getMachine();
    print "Host:  " + machine.getName()

输出示例:

  • 主持人:192.168.200.1
  • 主持人:192.168.200.2
  • 主持人:192.168.200.3
  • 主持人:Machine-0
  • 主持人:Machine-1
  • 主持人:Machine-2

我需要获取这两个信息(一个应用程序及其主机或共享主机,如果它们不止一个)。我不知道如何解决和混合查询以在一个查询中获取这两个信息,或者至少在第二个查询中获取与部署应用程序相关的信息 - 主机。

所需的输出是这样的:

  • WeblogicApp Cluster1 STATE_ACTIVE 192.168.200.2
  • WeblogicApp Cluster1 STATE_ACTIVE 192.168.200.3
  • DMS Application AdminServer STATE_ACTIVE 192.168.200.1
  • DMS应用程序AdminServer STATE_ACTIVE Machine-1
  • DMS应用程序AdminServer STATE_ACTIVE Machine-2
  • 好处Cluster1 STATE_ACTIVE Machine-0
  • ..............

提前致谢。

1 个答案:

答案 0 :(得分:1)

聚会晚了一点。但是,如果有人通过寻找答案来找我,我想出了第一个脚本的扩展名以给出所需的结果:

connect('weblogic','password','t3://localhost:7001')
setShowLSResult(false)
cd('AppDeployments')
deplymentsList=cmo.getAppDeployments()
domainConfig()
for app in deplymentsList:
    cd ('/AppDeployments/'+app.getName()+'/Targets')
    mytargets = ls(returnMap='true')
    for targetinst in mytargets:
        domainRuntime()
        cd('AppRuntimeStateRuntime')
        cd('AppRuntimeStateRuntime')
        curstate4 = cmo.getCurrentState(app.getName(),targetinst)
        domainConfig()
        cd('/AppDeployments/'+app.getName()+'/Targets/'+targetinst)
        myType = cmo.getType()
        if myType == 'Cluster':
            myServers = cd('/AppDeployments/'+app.getName()+'/Targets/'+targetinst+'/Servers', returnMap='true')
            for server in myServers:
                cd('/AppDeployments/'+app.getName()+'/Targets/'+targetinst+'/Servers/'+server)
                machineName = cmo.getMachine().getName()
                print app.getApplicationName(), targetinst, curstate4, machineName
        elif myType == 'Server':
            cd('/AppDeployments/'+app.getName()+'/Targets/'+targetinst)
            machineName = cmo.getMachine().getName()
            print app.getApplicationName(), targetinst, curstate4, machineName

输出将类似于原始问题中所述的输出。