使用 wsadmin Jython 修改名称 space 绑定
Modify name space bindings using wsadmin Jython
任务是使用 wsadmin (Jython) 修改名称空间绑定。
我有几个范围服务器的字符串绑定。我计划列出现有的绑定;添加/修改目标绑定。
我可以列出它们:
for ns in AdminConfig.list( 'NameSpaceBinding' ).splitlines() :
name = AdminConfig.showAttribute( ns, 'name' )
stringToBind = AdminConfig.showAttribute( ns, 'stringToBind' )
print '%s="%s"' % ( name, stringToBind )
我可以创建一个新的:
server1 = AdminConfig.list('Server')
print AdminConfig.create('StringNameSpaceBinding', server1, [['name', 'binding2'], ['nameInNameSpace', 'myBindings/myString'], ['stringToBind', "This is the String value"]])
AdminConfig.save()
- 如果已有绑定,如何修改?
- 如何删除绑定?
我想这可以用 AdminConfig.modify 和 AdminConfig.remove 来完成。
链接:
- 来自 IBM 的文档:Configuring namespace bindings using the wsadmin scripting tool
- 使用 jacl 修改绑定:Configuring namespace binding
我自己设法做到了。我没有使用 Jython 的经验,但它确实有效。脚本需要 4 个参数:作用域的目标服务器、绑定名称、绑定值和名称中的名称 space:
server = sys.argv[0]
bindingName = sys.argv[1]
bindingValue = sys.argv[2]
bindingNameSpace = sys.argv[3]
# Obtain the "simple" server name
def getServerName(s):
return AdminConfig.showAttribute(s, 'name')
# Add binding
def addBindingsToServer(s):
for ns in AdminConfig.list( 'NameSpaceBinding' ).splitlines() :
if bindingName == AdminConfig.showAttribute( ns, 'name' ):
print "Removing existing binding from Server %s" % getServerName(s)
AdminConfig.remove(ns)
# Create binding
print "Adding binding to Server %s" % getServerName(s)
print AdminConfig.create('StringNameSpaceBinding', s, [['name', bindingName], ['nameInNameSpace', bindingNameSpace], ['stringToBind', bindingValue]])
# Set server and call function
server = AdminConfig.getid('/Server:'+server+'/')
addBindingsToServer(server)
# Save changes
if (AdminConfig.hasChanges()):
AdminConfig.save()
任务是使用 wsadmin (Jython) 修改名称空间绑定。 我有几个范围服务器的字符串绑定。我计划列出现有的绑定;添加/修改目标绑定。
我可以列出它们:
for ns in AdminConfig.list( 'NameSpaceBinding' ).splitlines() :
name = AdminConfig.showAttribute( ns, 'name' )
stringToBind = AdminConfig.showAttribute( ns, 'stringToBind' )
print '%s="%s"' % ( name, stringToBind )
我可以创建一个新的:
server1 = AdminConfig.list('Server')
print AdminConfig.create('StringNameSpaceBinding', server1, [['name', 'binding2'], ['nameInNameSpace', 'myBindings/myString'], ['stringToBind', "This is the String value"]])
AdminConfig.save()
- 如果已有绑定,如何修改?
- 如何删除绑定?
我想这可以用 AdminConfig.modify 和 AdminConfig.remove 来完成。 链接:
- 来自 IBM 的文档:Configuring namespace bindings using the wsadmin scripting tool
- 使用 jacl 修改绑定:Configuring namespace binding
我自己设法做到了。我没有使用 Jython 的经验,但它确实有效。脚本需要 4 个参数:作用域的目标服务器、绑定名称、绑定值和名称中的名称 space:
server = sys.argv[0]
bindingName = sys.argv[1]
bindingValue = sys.argv[2]
bindingNameSpace = sys.argv[3]
# Obtain the "simple" server name
def getServerName(s):
return AdminConfig.showAttribute(s, 'name')
# Add binding
def addBindingsToServer(s):
for ns in AdminConfig.list( 'NameSpaceBinding' ).splitlines() :
if bindingName == AdminConfig.showAttribute( ns, 'name' ):
print "Removing existing binding from Server %s" % getServerName(s)
AdminConfig.remove(ns)
# Create binding
print "Adding binding to Server %s" % getServerName(s)
print AdminConfig.create('StringNameSpaceBinding', s, [['name', bindingName], ['nameInNameSpace', bindingNameSpace], ['stringToBind', bindingValue]])
# Set server and call function
server = AdminConfig.getid('/Server:'+server+'/')
addBindingsToServer(server)
# Save changes
if (AdminConfig.hasChanges()):
AdminConfig.save()