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

问题描述 投票:0回答:1

我有两个WLST查询。我通过WebLogic脚本工具控制台执行它。这些查询是:

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
  • Benefits 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
  • 主机:计算机-0
  • 主机:计算机-1
  • 主机:Machine-2

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

所需的输出是这样的:

  • WeblogicApp Cluster1 STATE_ACTIVE 192.168.200.2
  • WeblogicApp Cluster1 STATE_ACTIVE 192.168.200.3
  • DMS应用程序AdminServer STATE_ACTIVE 192.168.200.1
  • DMS应用程序AdminServer STATE_ACTIVE机器-1
  • DMS应用程序AdminServer STATE_ACTIVE机器2
  • Benefits Cluster1 STATE_ACTIVE Machine-0
  • .........

提前感谢。

weblogic weblogic12c weblogic11g wlst
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.