Получить текущее состояние политики перезапуска (nodeRestartState) AppServer с помощью Jython - PullRequest
0 голосов
/ 09 января 2020

Я хочу получить текущую политику перезапуска AppServer (RUNNING, STOPPED или PREVIOUS) с использованием Jython.

servers = AdminTask.listServers('[-serverType APPLICATION_SERVER]').splitlines()
for server in servers:
  print server
  print AdminConfig.showAttribute(server, "monitoringPolicy")
  break

Это дало мне исключение, что атрибут недействителен:

Исключение произошло при выполнении файла "test.py". Информация об исключении: com.ibm.ws.scripting.ScriptingException: WASX7080E: Неверные атрибуты для типа «Сервер» - «monitorPolicy».

Но я мог получить атрибут, используя print AdminConfig.showall(server):

...
[monitoringPolicy [[autoRestart true]
[maximumStartupAttempts 3]
[nodeRestartState STOPPED]
[pingInterval 60]
[pingTimeout 300]]]
...

Для меня это выглядит так: monitoringPolicy является ключом массива, поэтому должно быть возможно получить состояние перезапуска с помощью

policy = AdminConfig.showAttribute(server, "monitoringPolicy")
restartState = policy["restartState"] # Should be "STOPPED"

В чем проблема?

Редактировать

После более глубокого изучения вывода списка я обнаружил, что пропустил свойство верхнего уровня processDefinitions, которое является родителем monitoringPolicy.

* 1025. *

Это печатает:

[(cells/CnxCell/nodes/CnxNode01/servers/UtilCluster_server1|server.xml#JavaProcessDef_1578492353152)]

Но я не могу получить какие-либо дочерние свойства из этого объекта:

# TypeError: sequence subscript must be integer or slice
print pd["monitoringPolicy"]

# AttributeError: 'string' object has no attribute 'monitoringPolicy'
print pd.monitoringPolicy

1 Ответ

1 голос
/ 10 января 2020

MonitoringPolicy имеет свой тип. Это печатает сервер и состояние, поэтому «RUNNING», «STOPPED»

servers = AdminTask.listServers('[-serverType APPLICATION_SERVER]').splitlines()
for server in servers:
    print(server)
    mpol = AdminConfig.list("MonitoringPolicy", server)
    print(AdminConfig.showAttribute(mpol, 'nodeRestartState'))
...