09-05-2013 05:34 AM
Hello
I am testing a script where I want a conditional registration line based upon the existance of an environment variable. The script below measures txload on one interface, but is supposed to measure txload on a second interface IF the environment variable 'if1' is added to the CLI. I have attempted to do this by adding [info exists if1] to the event register line for the second interface. When 'event manager environment if1 FastEthernet1/0/1' is added to the cli, the script does not monitor that interface.
What am I doing wrong?
Thanks
::cisco::eem::event_register_interface tag e2 name FastEthernet1/0/2 parameter txload entry_op ge entry_val 51 entry_type value exit_time 60 poll_interval 30
::cisco::eem::event_register_interface tag e1 name [info exists if1] parameter txload entry_op ge entry_val 51 entry_type value exit_time 60 poll_interval 30
::cisco::eem::trigger {
::cisco::eem::correlate event e1 or event e2
}
namespace import ::cisco::eem::*
namespace import ::cisco::lib::*
array set arr_einfo [event_reqinfo]
set interface $arr_einfo(name)
set parameter $arr_einfo(parameter)
set value $arr_einfo(value)
puts $interface
puts $parameter
puts $value
MPLS-ME3750#
*Mar 4 00:37:55.730: %HA_EM-6-LOG: ifevents.tcl: FastEthernet1/0/2
*Mar 4 00:37:55.730: %HA_EM-6-LOG: ifevents.tcl: txload
*Mar 4 00:37:55.730: %HA_EM-6-LOG: ifevents.tcl: 81
MPLS-ME3750#conf t
Enter configuration commands, one per line. End with CNTL/Z.
MPLS-ME3750(config)#event manager environment if1 FastEthernet1/0/1
*Mar 4 00:38:55.935: %HA_EM-6-LOG: ifevents.tcl: FastEthernet1/0/2
*Mar 4 00:38:55.935: %HA_EM-6-LOG: ifevents.tcl: txload
*Mar 4 00:38:55.935: %HA_EM-6-LOG: ifevents.tcl: 86
*Mar 4 00:39:56.031: %HA_EM-6-LOG: ifevents.tcl: FastEthernet1/0/2
*Mar 4 00:39:56.031: %HA_EM-6-LOG: ifevents.tcl: txload
*Mar 4 00:39:56.031: %HA_EM-6-LOG: ifevents.tcl: 91
*Mar 4 00:40:55.884: %HA_EM-6-LOG: ifevents.tcl: FastEthernet1/0/2
*Mar 4 00:40:55.884: %HA_EM-6-LOG: ifevents.tcl: txload
*Mar 4 00:40:55.884: %HA_EM-6-LOG: ifevents.tcl: 94
MPLS-ME3750#show event manager environment
No. Name Value
1 if2 FastEthernet1/0/2
2 if1 FastEthernet1/0/1
09-05-2013 07:33 AM
I have resolved this myself. I was only testing to see if the variable existed, but not doing anything with it, which you can do with an expression. Of course, the script needs to be de registered and then registered again
::cisco::eem::event_register_interface tag e2 name FastEthernet1/0/2 parameter txload entry_op ge entry_val 51 entry_type value exit_time 30 poll_interval 15
::cisco::eem::event_register_interface tag e1 name [expr {[info exists if1] ? $if1 : 0}] parameter txload entry_op ge entry_val 51 entry_type value exit_time 30 poll_interval 15
::cisco::eem::trigger {
::cisco::eem::correlate event e1 or event e2
}
namespace import ::cisco::eem::*
namespace import ::cisco::lib::*
array set arr_einfo [event_reqinfo]
set interface $arr_einfo(name)
set parameter $arr_einfo(parameter)
set value $arr_einfo(value)
puts $interface
puts $parameter
puts $value
MPLS-ME3750(config)#
MPLS-ME3750(config)# event manager policy ifevents.tcl
MPLS-ME3750(config)#
*Mar 4 02:41:21.965: %HA_EM-6-LOG: ifevents.tcl: FastEthernet1/0/2
*Mar 4 02:41:21.965: %HA_EM-6-LOG: ifevents.tcl: txload
*Mar 4 02:41:21.965: %HA_EM-6-LOG: ifevents.tcl: 72
MPLS-ME3750(config)#event manager environment if1 FastEthernet1/0/1
MPLS-ME3750(config)#
*Mar 4 02:42:22.388: %HA_EM-6-LOG: ifevents.tcl: FastEthernet1/0/2
*Mar 4 02:42:22.388: %HA_EM-6-LOG: ifevents.tcl: txload
*Mar 4 02:42:22.388: %HA_EM-6-LOG: ifevents.tcl: 79
MPLS-ME3750(config)#no event manager policy ifevents.tcl
MPLS-ME3750(config)# event manager policy ifevents.tcl
MPLS-ME3750(config)#
*Mar 4 02:43:10.111: %HA_EM-6-LOG: ifevents.tcl: FastEthernet1/0/1
*Mar 4 02:43:10.111: %HA_EM-6-LOG: ifevents.tcl: txload
*Mar 4 02:43:10.111: %HA_EM-6-LOG: ifevents.tcl: 83
*Mar 4 02:43:14.666: %HA_EM-6-LOG: ifevents.tcl: FastEthernet1/0/2
*Mar 4 02:43:14.666: %HA_EM-6-LOG: ifevents.tcl: txload
*Mar 4 02:43:14.666: %HA_EM-6-LOG: ifevents.tcl: 83
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide