Index by: file name | procedure name | procedure call | annotation
modifyServer_proc.tcl (annotations | original source)

####################################################################
# Modify Server. 
# Modify the attributes of an existing server.
####################################################################

namespace eval modifyServer {

    proc modifyServer { propertiesFile } {

       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 "properties are.................."

       foreach { a b } [ array get propertiesArray ] {

	   putsLog [ format "%-35s %s" "$a" "$b" ]

       }

       # 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 

       }

       # call the hashMapList proc which extracts the java hashmap into a tcl list. 

       putsLog "new server properties are:............" 

       if { [ catch { hashMapList $propertiesFile } r ] == 0 } {
	 
	   set propertiesList $r 

	   foreach a $propertiesList {

	       putsLog [ format "%-50s %-s" "[ lindex $a 0 ]" "[ lindex $a 1 ]" ] 

	   }

       } else {

	   return -code error $r 

       }

       # get the server id.  Check for a null return. 
      
       variable serverName [ $PropertyI getProperty serverName ] 

       if { [ catch { $AdminConfig getid /Server:$serverName/ } r ] == 0 } {
	      
	   if { $r == {} } {

	       putsLog "ERROR: Server $serverName does not exist"
	   
	       return -code error $r 
	   
	   } else {
	   
	       set serverId $r 

	   }

       } else {

	 return -code error $r 

       }

       #  set Transaction Service Properties. 
       #  name value pair is attribute name and value. 

       foreach a $propertiesList {

	   # the first list element contains the property name. 
	   # the first segment of the property name is the type. 
	   # the second segment of the property name is the attribute. 

	   set propertyName [ lindex $a 0 ]

	   #puts "property name is $propertyName"

	   set lengthFirstName  [ string first "." $propertyName ]
	   set firstName        [ string range $propertyName 0 [ expr { $lengthFirstName - 1 } ] ] 
	   set secondName       [ string range $propertyName   [ expr { $lengthFirstName + 1 } ] end ] 

	   # Build the attribute lists  

	   switch -exact -- $firstName {

		  errorstreamredirect {

		      lappend errorstreamredirectList     [ list $secondName [ lindex $a 1 ] ]

		  }

		  HTTPTransport {

		      lappend HTTPTransportList           [ list $secondName [ lindex $a 1 ] ] 

		  }

		  JavaVirtualMachine {

		      lappend JavaVirtualMachineList      [ list $secondName [ lindex $a 1 ] ] 

		  }

		  MonitoringPolicy {

		      lappend MonitoringPolicyList        [ list $secondName [ lindex $a 1 ] ] 

		  }

		  outputStreamRedirect {

		      lappend outputStreamRedirectlist    [ list $secondName [ lindex $a 1 ] ]

		  }

		  SessionManager {

		      lappend SessionManagerList          [ list $secondName [ lindex $a 1 ] ]

		  }

		  ThreadPool {

		      lappend ThreadPoolList              [ list $secondName [ lindex $a 1 ] ]

		  }

		  TransactionService {

		      lappend TransactionList             [ list $secondName [ lindex $a 1 ] ]

		  }
		  
		  TuningParams {

		      lappend TuningParamsList             [ list $secondName [ lindex $a 1 ] ]

		  }

		  WebContainer {

		      lappend WebContainerList            [ list $secondName [ lindex $a 1 ] ]

		  } 

	      }

       }

       # 17/04/2007 
       # make the proc more flexible by only setting attributes that exist in the properties file.    
       # check if each list variable exists. 

       ##  set transaction properties. 

       if { [ info exist TransactionList ] == 1 } { 

	   if { [ catch { setTransProps $serverId $TransactionList } r ] != 0 } {
		   return -code error $r
	   }

       }

       ##  set Web Container Properties. 

       if { [ info exist WebContainerList ] == 1 } { 

	   if { [ catch { setWebProps $serverId $WebContainerList } r ] != 0 } {
		   return -code error $r
	   }

       }

       ##  set Log File Properties. 

       if { [ info exist outputStreamRedirectlist ] == 1 } { 

	   if { [ catch { setLogProps $serverId $outputStreamRedirectlist $errorstreamredirectList } r ] != 0 } {
		   return -code error $r
	   }

       }

       #  set JVM Properties. 

       if { [ info exist JavaVirtualMachineList ] == 1 } { 

	   if { [ catch { setJVMProps $serverId $JavaVirtualMachineList } r ] != 0 } {
		   return -code error $r
	   }

       }

       #  set ThreadPool Properties. 

       if { [ info exist ThreadPoolList ] == 1 } { 

	   if { [ catch { setThreadpoolProps $serverId $ThreadPoolList } r ] != 0 } {
		   return -code error $r
	   }

       }

       #  set Session Manager Properties. 

       if { [ info exist SessionManagerList ] == 1 } { 

	   if { [ catch { setSessionManagerProps $serverId $SessionManagerList  } r ] != 0 } {
		   return -code error $r
	   }

       }

       #  set TuningParams list. 

       if { [ info exist TuningParamsList ] == 1 } { 

	   if { [ catch { setTuningParamsProps $serverId $TuningParamsList  } r ] != 0 } {
		   return -code error $r
	   }

       }

       #  set MonitoringPolicy Properties. 

       if { [ info exist MonitoringPolicyList ] == 1 } { 

	   if { [ catch { setMonitoringPolicyProps $serverId $MonitoringPolicyList } r ] != 0 } {
		   return -code error $r
	   }

       }

    }
####################################################################
# Set transaction service properties.
####################################################################
    proc setTransProps {serverId TransactionAttr } {

       variable serverName 
       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 "properties are.................."

       foreach { a b } [ array get propertiesArray ] {

	   putsLog [ format "%-35s %s" "$a" "$b" ]

       }

       # get Transaction Service id 

       set TransactionServiceId [ $AdminConfig list TransactionService $serverId ]

       if { [ catch { $AdminConfig modify $TransactionServiceId $TransactionAttr } r ] == 0 } {
	    putsLog "************************************"
	    putsLog "$serverName transaction properties created successfully."
	    putsLog "************************************"
       } else {
	       putsLog "\nfailed to create transaction properties for $serverName\n"
	       putsLog $r 
	       putsLog "************************************"
	       return -code error $r
       }
    }
####################################################################
# Set web container properties.
####################################################################
    proc setWebProps {serverId WebContainerList } {

       variable serverName 
       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 "properties are.................."

       foreach { a b } [ array get propertiesArray ] {

	   putsLog [ format "%-35s %s" "$a" "$b" ]

       }

       # get Web Container id 

       set WebContainerId [ $AdminConfig list WebContainer $serverId ]

       if { [ catch { $AdminConfig modify $WebContainerId $WebContainerList } r ] == 0 } {
	    putsLog "************************************"
	    putsLog "$serverName - WebContainer properties created successfully."
	    putsLog "************************************"
       } else {
	       putsLog "\nfailed to create WebContainer properties for $serverName\n"
	       putsLog $r 
	       putsLog "************************************"
	       return -code error $r
       }
    }
####################################################################
# Set logging properties.
####################################################################
    proc setLogProps { serverId outputStreamRedirectlist errorstreamredirectList } {

       global AdminConfig 
       variable serverName 

       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" ]

       }
       # get output log id 

       set outputLogId [ $AdminConfig showAttribute $serverId outputStreamRedirect ]
       
       if { [ catch { $AdminConfig modify $outputLogId $outputStreamRedirectlist } r ] == 0 } {
	    putsLog  "************************************"
	    putsLog  "$serverName - Server output log properties created successfully."
	    putsLog  "************************************"
       } else {
	       putsLog "\nfailed to create Server output log properties for $serverName\n"
	       putsLog $r 
	       putsLog "************************************"
	       return -code error $r
       }

       # get error log id 

       set errorLogId [ $AdminConfig showAttribute $serverId errorStreamRedirect ]

       if { [ catch { $AdminConfig modify $errorLogId $errorstreamredirectList } r ] == 0 } {
	    putsLog "************************************"
	    putsLog "$serverName - Server error log properties created successfully."
	    putsLog "************************************"
       } else {
	       putsLog "\nfailed to create Server error log properties for $serverName\n"
	       putsLog $r 
	       putsLog "************************************"
	       return -code error $r
       }

    }
####################################################################
# Set JVM Properties.
####################################################################
    proc setJVMProps { serverId JavaVirtualMachineList } {

       global AdminConfig 
       variable serverName 

       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" ]

       }

       # get JVM id 

       set jvmId [ $AdminConfig list JavaVirtualMachine $serverId ]

       foreach i $JavaVirtualMachineList {

	  if { [ lsearch $i "*systemProperties*" ] != -1 } {

	      set fullName  [ lindex $i 0 ]
	      set stubIndex [ string first "." $fullName ]  
	      set name      [ string range $fullName [ incr stubIndex ] end ] 
	      
	      set value [ lindex $i 1 ] 

	      lappend systemPropertiesList [ list $name $value ]

	  }	

       }

       # extract the remaining systemProperties from the JVM properties list create attributes list. 

       foreach i $JavaVirtualMachineList {

	  if { [ lsearch $i "*systemProperties*" ] == -1 } {

	      lappend otherAttributes [ list [ lindex $i 0 ] [ lindex $i 1 ] ]

	  }	

       }
     
       lappend $otherAttributes [ list systemProperties $systemPropertiesList  ]

       set attrList $otherAttributes 

       if { [ catch { $AdminConfig modify $jvmId $attrList } r ] == 0 } {
	    putsLog "************************************"
	    putsLog "$serverName - JVM properties created successfully."
	    putsLog "************************************"
       } else {
	       putsLog "\nfailed to create Server JVM properties for $serverName\n"
	       putsLog "************************************"
	       return -code error $r
       }

    }
####################################################################
# Set Threadpool Properties.
####################################################################
    proc setThreadpoolProps { serverId ThreadPoolList } {

       global AdminConfig 
       variable serverName 

       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 ThreadPool id 

       set threadPoolList [ $AdminConfig list ThreadPool $serverId ]

       foreach i $threadPoolList {

	   if { [ $AdminConfig showAttribute $i name ] == "WebContainer" } {

	       set threadPoolId $i

	   }

       }

       # modify the ThreadPool id 

       if { [ catch { $AdminConfig modify $threadPoolId $ThreadPoolList } r ] == 0 } {
	    putsLog  "************************************"
	    putsLog "$serverName - Threadpool properties created successfully."
	    putsLog "************************************"
       } else {
	       putsLog "\nfailed to create Threadpool properties for $serverName\n"
	       putsLog $r 
	       putsLog "************************************"
	       return -code error $r
       }

    }
####################################################################
# Set Session Manager Properties.
####################################################################
    proc setSessionManagerProps { serverId SessionManagerList } {

       global AdminConfig 
       variable serverName 

       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 the Webcontainer id

       set WebContainerId [ $AdminConfig list WebContainer $serverId ]

       # get the Session Manager id

       set sessionManagerId [ $AdminConfig list SessionManager $WebContainerId]

       if { [ catch { $AdminConfig modify $sessionManagerId $SessionManagerList } r ] == 0 } {
	    putsLog "************************************"
	    putsLog "$serverName - Session Manager properties created successfully."
	    putsLog "************************************"
       } else {
	       putsLog "failed to create Session Manager properties for $serverName"
	       putsLog $r 
	       putsLog "************************************"
	       return -code error $r
       }

    }
####################################################################
# Set Tuning Parameters.
####################################################################
    proc setTuningParamsProps { serverId TuningParamsList } {

       global AdminConfig 
       variable serverName 

       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 the Webcontainer id

       set WebContainerId [ $AdminConfig list WebContainer $serverId ]

       # get the Session Manager id

       set sessionManagerId [ $AdminConfig list SessionManager $WebContainerId]

       # get the Tuning Params id.

       set tuningParamsId [ $AdminConfig showAttribute $sessionManagerId tuningParams ]

       if { [ catch { $AdminConfig modify $tuningParamsId $TuningParamsList } r ] == 0 } {
	    putsLog "************************************"
	    putsLog "$serverName - Tuning Params properties created successfully."
	    putsLog "************************************"
       } else {
	       putsLog "failed to create Tuning Params properties for $serverName"
	       putsLog $r 
	       putsLog "************************************"
	       return -code error $r
       }

    }
#####################################################################
# Set Monitoring Policy Properties.
#####################################################################
    proc setMonitoringPolicyProps { serverId MonitoringPolicyList } {

       global AdminConfig 
       variable serverName 

       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 processDefId [ lindex [ $AdminConfig showAttribute $serverId processDefinitions ] 0 ]
       set processDefId [ lindex [ $AdminConfig showAttribute $serverId processDefinition ] 0 ]

       set monPolicyId  [$AdminConfig showAttribute $processDefId monitoringPolicy ]

       if { [ catch { $AdminConfig modify $monPolicyId $MonitoringPolicyList } r ] == 0 } {
	    putsLog "************************************"
	    putsLog "$serverName - MonitoringPolicy properties created successfully."
	    putsLog "************************************"
       } else {
	       putsLog "failed to create MonitoringPolicy properties for $serverName"
	       putsLog $r 
	       putsLog "************************************"
	       return -code error $r
       }

    }

}

Index by: file name | procedure name | procedure call | annotation
File generated 2007-08-07 at 13:42.