Index by: file name |
procedure name |
procedure call |
annotation
saveChanges_proc.tcl
(annotations | original source)
####################################################################
# Save Admin changes
####################################################################
proc saveChanges { } {
global AdminConfig
global AdminControl
set procName [ lindex [ info level 0 ] 0 ]
putsLog "## proc - $procName"
foreach i [ info args $procName ] {
upvar 0 $i ilocal
set propertiesArray($i) $ilocal
}
putsLog "properties are.................."
foreach { a b } [ array get propertiesArray ] {
putsLog [ format "%-35s %s" "$a" "$b" ]
}
# save changes to repository
if { [ catch { $AdminConfig save } r ] == 0 } {
putsLog "Changes saved to repository."
} else {
putsLog "ERROR: failed to save changes"
putsLog $r
return -code error $r
}
# modified script to cater for operations in an unmanaged process(no DM) i.e
# environment with no node agent. Sync not required.
if { [ $AdminConfig list NodeAgent ] == {} } {
return
} else {
# sync changes to nodes
# get a list of configured nodes
set cellId [ $AdminConfig list Cell ]
set nodeList [ $AdminConfig list Node $cellId ]
putsLog "configured nodes are ......................"
foreach nodeId $nodeList {
set name [ $AdminConfig showAttribute $nodeId name ]
putsLog $name
lappend nameList $name
}
# all the nodes may not be running.
# get a list of running nodes.
foreach nodeName $nameList {
set nodeAgentMbean [ $AdminControl queryNames type=NodeAgent,node=$nodeName,* ]
if { $nodeAgentMbean == {} } {
lappend stoppedNodeList $nodeName
} else {
lappend startedNodeList $nodeName
}
}
putsLog "running nodes are ...................."
if { [ info exist startedNodeList ] == 0 } {
putsLog "ERROR: no started nodes"
putsLog "ERROR: at least one node must be started for sync"
return -code error $r
} else {
foreach i $startedNodeList { putsLog $i }
}
putsLog "stopped nodes are ...................."
if { [ info exist stoppedNodeList ] == 0 } {
putsLog "no stopped nodes"
} else {
foreach i $stoppedNodeList { putsLog $i }
}
# only started nodes can be synced.
putsLog "syncing nodes ...................."
foreach nodeName $startedNodeList {
set nodeSyncId [ $AdminControl completeObjectName type=NodeSync,node=$nodeName,* ]
if { [ catch { $AdminControl invoke $nodeSyncId sync } r ] == 0 } {
putsLog "$nodeName sync successfull"
putsLog $r
} else {
putsLog "ERROR: $nodeName sync failed"
return -code error $r
}
}
}
}
Index by: file name |
procedure name |
procedure call |
annotation
File generated 2007-08-07 at 13:42.