我正在开发大量用于管理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')
Run Code Online (Sandbox Code Playgroud)
以上脚本不仅无法维护,而且难以理解.该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' …Run Code Online (Sandbox Code Playgroud)