Welcome, guest | Sign In | My Account | Store | Cart
# 
# Set PMI Request metrics on.
# 
#####################################################################
# Patrick Finnegan 21/10/2005.  V1. 
#####################################################################
#####################################################################
# Get current PMI details. 
####################################################################
proc getPMI { } {

   puts "\n getPMI \n "

   global AdminConfig 

   set PMIRequestMetricsI [ $AdminConfig list PMIRequestMetrics ]

   # get current PMI settings.

   set msg "Current PMI Settings are:\n"

   set enable      [ $AdminConfig showAttribute $PMIRequestMetricsI enable     ]
   set enableARM   [ $AdminConfig showAttribute $PMIRequestMetricsI enableARM  ]
   set traceLevel  [ $AdminConfig showAttribute $PMIRequestMetricsI traceLevel ]
   set filtersList [ split [ $AdminConfig showAttribute $PMIRequestMetricsI filters ] ]
   
   puts [ format "%-5s %s"  " " $msg  ]
       
   puts [ format "%-10s %-20s %-40s"  " " "PMI Enabled:" $enable      ]
   puts [ format "%-10s %-20s %-40s"  " " enableARM      $enableARM   ]
   puts [ format "%-10s %-20s %-40s"  " " traceLevel     $traceLevel  ]

   # filter list is not properly quoted 
   # strip trailing bracket off last element. 
   
   set lastElement [ string trim [ lindex $filtersList end  ] \} ]
   set filtersList [ lreplace $filtersList end end $lastElement ] 

   foreach i $filtersList {

      #puts [ format "\n%-15s %-20s %-40s"  " " "filter is" $i ]

      set type         [ $AdminConfig showAttribute $i type         ]
      set enableF      [ $AdminConfig showAttribute $i enable       ]
      set filterValues [ split [ $AdminConfig showAttribute $i filterValues ] ]

      puts  [ format "\n%-10s %-20s %-40s"  " "  "Filter Type"    $type    ]
      puts  [ format "%-10s %-20s %-40s"    " "  "Filter Setting" $enableF ]

      puts  [ format "%-15s %-20s"    " "  "Filter Details" ] 

      # filterValues list is not properly quoted 
      # strip trailing bracket off last element. 

      set lastElement  [ string trim [ lindex $filterValues end ] \} ]
      
      set filterValues [ lreplace $filterValues end end $lastElement ] 

      foreach i $filterValues {

	 set value   [ $AdminConfig showAttribute $i value  ]
	 set enableV [ $AdminConfig showAttribute $i enable ]

	 puts [ format "%-20s %-10s %-10s" " "    value   $value   ]
	 puts [ format "%-20s %-10s %-10s"   " "  enable  $enableV ] 

      }

   }

}
####################################################################
# Set New PMI Parms. 
# Switch on PMI and add new URIs to URI list.
####################################################################
proc setPMI { uriList } {

   puts "\n setPMI \n "

   global AdminConfig 

   # modify request metrics. 

   set PMIRequestMetricsI [ $AdminConfig list PMIRequestMetrics ]

   set enable      [ list enable     true   ]
   set enableARM   [ list enableARM  false  ]
   set traceLevel  [ list traceLevel HOPS   ]

   set attrs       [ list $enable $enableARM $traceLevel ] 

   puts "\n Modify PMIRequestMetrics with attributes $attrs \n"
   $AdminConfig modify $PMIRequestMetricsI $attrs 

   # modify URI filter

   set filtersList [ split [ $AdminConfig showAttribute $PMIRequestMetricsI filters ] ]
   
   # filter list is not properly quoted 
   # strip trailing bracket off last element. 
   
   set lastElement [ string trim [ lindex $filtersList end  ] \} ]
   set filtersList [ lreplace $filtersList end end $lastElement ] 

   #get uri filter id. 

   foreach filterId $filtersList {

      set type [ $AdminConfig showAttribute $filterId type ]
 
      if { [ string match $type "URI" ] == 1 } {

	  #enable URI filter 

          set enable [ list enable true ]

	  set attrs  [ list $enable     ]

          puts "\n Modify PMIRMFilter URI with $attrs \n"
          $AdminConfig modify $filterId $attrs 

	  #set new filter values

          set filterValues [ split [ $AdminConfig showAttribute $filterId filterValues ] ]

          # filter value list is not properly quoted
          # strip trailing bracket. 

	  set lastElement  [ string trim [ lindex $filterValues end ] \} ]
	  
	  set filterValues [ lreplace $filterValues end end $lastElement ] 

          # check whether any of the new URIs already exist in the filter value list
          # if so delete from the update list.

          foreach i $filterValues {

              set value [ $AdminConfig showAttribute $i value  ]

	      catch { lsearch -glob $uriList $value } r

	      if { $r == -1 } {

		  set continue true 

	      } else {

		  set uriList [ lreplace $uriList $r $r ]

	      }

          }

	  foreach i $uriList {

	     set value  [ list value $i    ]
	     set enable [ list enable true ]

	     set attrList [ list $value $enable ] 

             puts "\n Create PMIRMFilterValue with attributes $attrList \n"
             $AdminConfig create PMIRMFilterValue $filterId $attrList

          }
	      
      }

   }

}
####################################################################
# Main Control.
####################################################################

# Assume one cell, one deployment manager node and one application node. 

set cellId [ lindex [ $AdminConfig list Cell ] 0 ]
set nodes  [ $AdminConfig list Node ]

# delete the manager node from the list.

set manIndex   [ lsearch -glob $nodes *Manager* ]
set nodeId     [ lindex [ lreplace $nodes $manIndex $manIndex ] 0 ]

# get name attribute for cell and application node

set cellName [ $AdminConfig showAttribute $cellId name ]
set nodeName [ $AdminConfig showAttribute $nodeId name ]

# set URI list.

lappend uriList /contextRoot1 
lappend uriList /contextRoot2 
lappend uriList /contextroot3 
lappend uriList /contextroot4 
lappend uriList /contextroot5 

####################################################################
# setPMIOn  
####################################################################

if { [ catch { getPMI } r ] == 0 } {

     if { [ catch { setPMI $uriList } r ] == 0 } {

	puts "\n************************************"
	puts "Performance monitoring set successfully" 
	puts "************************************\n"

	puts "\n###### Admin Config Save ######\n"
	$AdminConfig save

     } else {

	puts "\n************************************"
        puts "\nFailed to apply Performance Monitoring settings\n"
        puts $r 
        puts "************************************\n"

     }

} else {
	puts "\n************************************"
        puts "\nFailed to apply Performance Monitoring settings\n"
        puts $r 
        puts "************************************\n"
}

History