WLST-запрос (список развернутых приложений и хостов вместе)

У меня есть два запроса WLST. Я выполняю его через консоль WebLogic Scripting 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 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
  • Ведущий: Машина-0
  • Ведущий: Машина-1
  • Ведущий: Машина-2

Мне нужно получить как информацию (приложение и их хост или общие хосты, если они имеют более одного). Я не знаю, как решить и смешать запросы, чтобы получить обе информации в одном запросе или, по крайней мере, получить информацию, связанную с приложением развертывания - хостами во втором запросе.

Требуется вывод что-то вроде этого:

  • WeblogicApp Cluster1 STATE_ACTIVE 192.168.200.2
  • WeblogicApp Cluster1 STATE_ACTIVE 192.168.200.3
  • Администратор приложений DMS STATE_ACTIVE 192.168.200.1
  • Администратор приложений DMS STATE_ACTIVE Machine-1
  • Администратор приложений DMS STATE_ACTIVE Machine-2
  • Преимущества Cluster1 STATE_ACTIVE Machine-0
  • ..............

Заранее спасибо.

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

Вывод будет аналогичен выводу, указанному в исходном вопросе.

Другие вопросы по тегам