#
# addapp1.jacl
#
#
# The purpose of this example is to demonstrate the setting of various
# port numbers kept in the serverindex.xml file.
#
# This is a bi-modal script: it can be included in the wsadmin
# command invocation like this:
#
# wsadmin -f addapp1.jacl dmgrnode nodeManager 9809 8879 7989 5560 5561 7272 7273 7277
#
# or the script can be sourced from the wsadmin command line:
# wsadmin> source addapp1.jacl
# wsadmin> addapp1.jacl dmgrnode nodeManager 9809 8879 7989 5560 5561 7272 7273 7277
#
# The script expects 9 parameters:
# nodename
# node agent name
# BOOTSTRAP_ADDRESS
# SOAP_CONNECTOR_ADDRESS
# DRS_CLIENT_ADDRESS
# JMSSERVER_QUEUED_ADDRESS
# JMSSERVER_DIRECT_ADDRESS
# NODE_DISCOVERY_ADDRESS
# CELL_MULTICAST_DISCOVERY_ADDRESS
# CELL_DISCOVERY_ADDRESS
#
# This example demonstrates these wsadmin features:
#
# - The use of the AdminConfig object to locate configuration objects
# - The use of the AdminConfig object to modify configuration objects
#
#
proc addapp1 {nodeName NAnodeName bootstrap soap drs jmsQueued jmsDirect nodediscovery cellmultdiscovery celldiscovery} {
#
# set up globals
#
global AdminConfig
#
# Get the config id for the node
#
puts "addapp1: getting the config id for the node"
set node [$AdminConfig getid /Node:$nodeName/]
if {[llength $node] == 0} {
puts "addapp1: could not find a Node object called $nodeName"
return
}
#
# Get the config id for the deployment manager
#
puts "addapp1: getting the config id for the deployment manager"
set dmgr [$AdminConfig getid /Node:$nodeName/Server:dmgr/]
if {[llength $dmgr] == 0} {
puts "addapp1: could not find the deployment manager server"
return
}
#
# Get the config id for the node agent
#
puts "addapp1: getting the config id for the node agent"
set na_server [$AdminConfig getid /Node:$NAnodeName/Server:nodeagent/]
if {[llength $na_server] == 0} {
puts "addapp1: could not find the node agent server"
}
#
# Set the BOOTSTRAP_ADDRESS port
#
# This is an attribute on the NameServer object inside the Server.
# To modify this endpoint, you need to get the id of the NameServer
# and invoke modify:
#
puts "addapp1: setting the BOOTSTRAP_ADDRESS port to $bootstrap"
set ns [$AdminConfig list NameServer $dmgr]
set port_attr [list port $bootstrap]
set host_attr [list host $nodeName]
set boot_attrs [list BOOTSTRAP_ADDRESS [list $port_attr $host_attr]]
set attrs [list $boot_attrs]
$AdminConfig modify $ns $attrs
#
# set the SOAP_CONNECTOR_ADDRESS port
#
# This is an attribute on the SOAPConnector object inside the Server.
# To modify this endpoint, you need to get the id of the SOAPConnector
# and invoke modify:
#
puts "addapp1: setting the SOAP_CONNECTOR_ADDRESS port to $soap"
set soapC [$AdminConfig list SOAPConnector $dmgr]
set port_attr [list port $soap]
set host_attr [list host $nodeName]
set soap_attrs [list SOAP_CONNECTOR_ADDRESS [list $port_attr $host_attr]]
set attrs [list $soap_attrs]
$AdminConfig modify $soapC $attrs
#
# set the DRS_CLIENT_ADDRESS port
#
# This is an attribute on the SystemMessageServer object inside the Server.
# To modify this endpoint, you need to get the id of the SystemMessageServer
# and invoke modify:
#
puts "addapp1: setting the DRS_CLIENT_ADDRESS port to $drs"
set sms [$AdminConfig list SystemMessageServer $dmgr]
if {[llength $sms] == 0} {
puts "addapp1: skipping DRS_CLIENT_ADDRESS because SystemMessageServer not found"
} else {
set port_attr [list port $drs]
set host_attr [list host $nodeName]
set drs_attrs [list DRS_CLIENT_ADDRESS [list $port_attr $host_attr]]
set attrs [list $drs_attrs]
$AdminConfig modify $sms $attrs
}
#
# set the JMSSERVER_QUEUED_ADDRESS and JMSSERVER_DIRECT_ADDRESS ports
#
# These are attributes on the JMSServer object inside the Server.
# To modify these endpoints, you need to get the id of the JMSServer
# and invoke modify:
#
puts "addapp1: setting the JMSSERVER_QUEUED_ADDRESS port to $jmsQueued and the JMSSERVER_DIRECT_ADDRESS port to $jmsDirect"
set jms [$AdminConfig list JMSServer $dmgr]
if {[llength $jms] == 0} {
puts "addapp1: skipping JMS addresses because JMSServer not found"
} else {
set port_attr [list port $jmsQueued]
set host_attr [list host $nodeName]
set jmsq_attrs [list JMSSERVER_QUEUED_ADDRESS [list $port_attr $host_attr]]
set attrs [list $jmsq_attrs]
$AdminConfig modify $jms $attrs
set port_attr [list port $jmsDirect]
set host_attr [list host $nodeName]
set jmsd_attrs [list JMSSERVER_DIRECT_ADDRESS [list $port_attr $host_attr]]
set attrs [list $jmsd_attrs]
$AdminConfig modify $jms $attrs
}
#
# set the NODE_DISCOVERY_ADDRESS port
#
# This is an attribute on the NodeAgent object inside the node agent Server.
# To modify this endpoint, you need to get the id of the NodeAgent
# and invoke modify:
#
if {[llength $na_server] == 0} {
puts "addapp1: skipping NODE_DISCOVERY_ADDRESS because node agent not found."
} else {
puts "addapp1: setting the NODE_DISCOVERY_ADDRESS port to $nodediscovery"
set na [$AdminConfig list NodeAgent $na_server]
set port_attr [list port $nodediscovery]
set host_attr [list host $NAnodeName]
set nd_attrs [list NODE_DISCOVERY_ADDRESS [list $port_attr $host_attr]]
set attrs [list $nd_attrs]
$AdminConfig modify $na $attrs
}
#
# set the CELL_MULTICAST_DISCOVERY_ADDRESS and CELL_DISCOVERY_ADDRESS ports
#
# These are attributes on the CellManager object inside the Server.
# To modify these endpoints, you need to get the id of the CellManager
# and invoke modify:
#
puts "addapp1: setting the CELL_MULTICAST_DISCOVERY_ADDRESS port to $cellmultdiscovery and the CELL_DISCOVERY_ADDRESS port to $celldiscovery"
set cm [$AdminConfig list CellManager $dmgr]
set port_attr [list port $cellmultdiscovery]
set host_attr [list host $nodeName]
set cmda_attrs [list CELL_MULTICAST_DISCOVERY_ADDRESS [list $port_attr $host_attr]]
set attrs [list $cmda_attrs]
$AdminConfig modify $cm $attrs
set port_attr [list port $celldiscovery]
set host_attr [list host $nodeName]
set cda_attrs [list CELL_DISCOVERY_ADDRESS [list $port_attr $host_attr]]
set attrs [list $cda_attrs]
$AdminConfig modify $cm $attrs
#
# save the changes
#
puts "addapp1: saving the configuration"
$AdminConfig save
}
#
# Main
#
if { !($argc == 10) } {
puts "addapp1: this script requires 10 parameters: "
puts " 1) the name of the Deployment Manager node"
puts " 2) the name of the Node Agent node"
puts " 3) the value of BOOTSTRAP_ADDRESS "
puts " 4) the value of SOAP_CONNECTOR_ADDRESS "
puts " 5) the value of DRS_CLIENT_ADDRESS "
puts " 6) the value of JMSSERVER_QUEUED_ADDRESS"
puts " 7) the value of JMSSERVER_DIRECT_ADDRESS "
puts " 8) the value of NODE_DISCOVERY_ADDRESS "
puts " 9) the value of CELL_MULTICAST_DISCOVERY_ADDRESS "
puts " 10) the value of CELL_DISCOVERY_ADDRESS"
puts ""
puts "e.g.: addapp1 dmgrnode othernode 9809 8879 7989 5560 5561 7272 7273 7277"
} else {
set nodeName [lindex $argv 0]
set NAnodeName [lindex $argv 1]
set bootstrap [lindex $argv 2]
set soap [lindex $argv 3]
set drs [lindex $argv 4]
set jmsQueued [lindex $argv 5]
set jmsDirect [lindex $argv 6]
set nodediscovery [lindex $argv 7]
set cellmultdiscovery [lindex $argv 8]
set celldiscovery [lindex $argv 9]
addapp1 $nodeName $NAnodeName $bootstrap $soap $drs $jmsQueued $jmsDirect $nodediscovery $cellmultdiscovery $celldiscovery
}