Я разрабатываю множество сценариев для управления инфраструктурой WAS, и у меня сложилось впечатление, что кто-то в IBM намеренно напортачил wsadmin
. Это не могло быть несчастным случаем.
Вот "простой" пример:
for node in AdminConfig.list('Node').splitlines():
nodeName = AdminConfig.showAttribute(node, 'name')
for srv in AdminConfig.list('Server', node).splitlines():
if AdminConfig.showAttribute(srv, 'serverType') == 'APPLICATION_SERVER':
serverName = AdminConfig.showAttribute(srv, 'name')
prop = AdminConfig.getid('/Node:%s/Server:%s/JavaProcessDef:/JavaVirtualMachine:/Property:java.awt.headless/' % (nodeName, serverName))
if prop:
AdminConfig.modify(prop, [ ['value','true'] ])
else:
jvm = AdminConfig.getid('/Node:%s/Server:%s/JavaProcessDef:/JavaVirtualMachine:/' % (nodeName, serverName))
AdminConfig.create('Property', jvm, [ ['name', 'java.awt.headless'], ['value', 'true'] ], 'systemProperties')
Приведенный выше сценарий не только не поддерживается, но и просто нечитаем. Инструмент wsadmin
предназначен только для записи! Пишешь скрипт, а на следующий день не понимаешь, как он работает и даже что делает!
Не проще ли так?:
for node in list('Node'):
nodeName = node.name
for srv in node.list('Server'):
if srv.serverType == 'APPLICATION_SERVER':
jvm = srv.processDefinitions[0].jvmEntries[0]
jvm.createOrModify('Property', { 'name': 'java.awt.headless' }, { 'value': 'true' })
... можно было бы легко понять, что делает сценарий, не тратя минуты на попытки понять этот беспокойный API, если бы только сценарии WAS были более дружелюбными. Не говоря уже о простоте обслуживания.
Кто-нибудь когда-нибудь видел или пытался внедрить более удобный инструмент администрирования (или библиотеку wsadmin)?
Я спрашиваю, потому что на самом деле планирую разработать удобную библиотеку Jython, я просто хотел бы не изобретать велосипед.
Я видел множество ориентированных на задачи библиотек Jython. Некоторые из них доступны в новых версиях WAS, другие опубликованы на IBM developerWorks, некоторые библиотеки доступны в Интернете. Для меня это еще один API для изучения, и они полезны только для ограниченного набора задач. Я скорее ищу инструмент/библиотеку сценариев WAS общего назначения.
Изменить. Этот вопрос был частью исследования, предшествовавшего более крупному проекту автоматизации WebSphere. Библиотеки, о которой я спрашивал, в то время не существовало, поэтому я начал разрабатывать WDR. Вы можете найти его здесь: http://wdr.github.io/WDR/.
wsadminlib
это не совсем то, что я искал. Меня скорее заинтересовал инструмент, упрощающий создание сценариев WAS в целом. wsadminlib — это список рецептов для конкретных задач. 02.01.2013