Index by: file name |
procedure name |
procedure call |
annotation
installClusterMember_proc.tcl
(annotations | original source)
# Install a new application.
####################################################################
# Patrick Finnegan 20/02/2007. V1.
####################################################################
proc installClusterMember { propertiesFile } {
global AdminConfig
global AdminTask
# display procedure arguments.
set procName [ lindex [ info level 0 ] 0 ]
putsLog "## proc - $procName"
foreach i [ info args $procName ] {
upvar 0 $i ilocal
set propertiesArray($i) $ilocal
}
putsLog "procedure arguments are................."
foreach { a b } [ array get propertiesArray ] {
putsLog [ format "%-35s %s" "$a" "$b" ]
}
# get and display the existing applications.
putsLog "existing Clusters are:............"
if { [ catch { $AdminConfig list ServerCluster } r ] == 0 } {
set ClusterList $r
if { $ClusterList == {} } {
putsLog "no existing clusters"
} else {
foreach i $ClusterList {
set ClusterName [ $AdminConfig showAttribute $i name ]
putsLog [ format "%-5s %s" " " $ClusterName ]
}
}
} else {
return -code error $r
}
# call the hashMapList proc which returns a sorted list from the Property object loaded from the properties file.
putsLog "new Cluster member properties are:............"
if { [ catch { hashMapList $propertiesFile } r ] == 0 } {
set propertiesList $r
foreach a $propertiesList {
putsLog [ format "%-5s %-40s %-s" " " [ lindex $a 0 ] [ lindex $a 1 ] ]
}
} else {
return -code error $r
}
# call the hashMap proc which returns a Property object populated with property file values.
if { [ catch { hashMap $propertiesFile } r ] == 0 } {
set PropertyI $r
} else {
return -code error $r
}
# The cluster must exist.
set memberClusterName [ $PropertyI getProperty clusterMember.clusterName ]
if { [ catch { $AdminConfig getid /ServerCluster:$memberClusterName/ } r ] == 0 } {
if { $r == "" } {
putsLog "ERROR: Cluster does not exist: $memberClusterName"
return -code error $r
} else {
set clusterId $r
}
}
# The node must exist.
set nodeName [ $PropertyI getProperty clusterMember.nodeName ]
if { [ catch { $AdminConfig getid /Node:$nodeName/ } r ] == 0 } {
if { $r == "" } {
putsLog "ERROR: Node does not exist: $nodeName"
return -code error $r
} else {
set nodeId $r
}
}
# The server template must exist.
set serverName [ $PropertyI getProperty clusterMember.memberTemplate ]
if { [ catch { $AdminConfig getid /Server:$serverName/ } r ] == 0 } {
if { $r == "" } {
putsLog "ERROR: Server Template does not exist: $serverName"
return -code error $r
} else {
set serverId $r
}
}
# get any existing members of the cluster.
if { [ catch { $AdminConfig showAttribute $clusterId members } r ] == 0 } {
if { $r == "{}" } {
putsLog "no existing members"
} else {
putsLog "existing cluster members are........... "
foreach i [ lindex $r 0 ] {
putsLog [ format "%-5s %s" " " [ $AdminConfig showAttribute $i memberName ] ]
}
}
}
# The new member must not already exist.
set memberName [ $PropertyI getProperty clusterMember.memberName ]
if { [ catch { $AdminConfig getid /ClusterMember:$memberName/ } r ] == 0 } {
if { $r != {} } {
putsLog "ERROR: Cluster member already exists: $memberName"
return -code error $r
}
}
# set the cluster member properties.
set attrList [ setClusterMemberProperties $PropertyI ]
# get the cell parent. Assume single cell.
set cellId [ $AdminConfig list Cell ]
# create a new cluster member using an existing JVM as a template.
puts " attrList = $attrList"
if { [ catch { $AdminConfig createClusterMember $clusterId $nodeId $attrList $serverId } r ] == 0 } {
putsLog "************************************"
putsLog "Cluster Member created successfully: $memberName"
putsLog $r
putsLog "************************************"
} else {
putsLog "************************************"
putsLog "ERROR: problem creating ClusterMember: $memberName"
putsLog $r
putsLog "************************************"
return -code error $r
}
}
######################################
# set Cluster attributes.
######################################
proc setClusterMemberProperties { PropertyI } {
global AdminConfig
set procName [ lindex [ info level 0 ] 0 ]
putsLog "## proc - $procName"
foreach i [ info args $procName ] {
upvar 0 $i ilocal
set propertiesArray($i) $ilocal
}
putsLog "procedure arguments are................."
foreach { a b } [ array get propertiesArray ] {
putsLog [ format "%-35s %s" "$a" "$b" ]
}
set memberName [ list memberName [ $PropertyI getProperty clusterMember.memberName ] ]
set weight [ list weight [ $PropertyI getProperty clusterMember.weight ] ]
set attrList [ list $memberName $weight ]
return $attrList
}
Index by: file name |
procedure name |
procedure call |
annotation
File generated 2007-08-07 at 13:42.