Last active
March 26, 2024 12:54
-
-
Save tonusoo/2f95c1d377bf658dcf5c8b7c9dba5f57 to your computer and use it in GitHub Desktop.
j-nsp mailing list thread: https://www.mail-archive.com/juniper-nsp@puck.nether.net/msg29614.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
version 1.0; | |
ns junos = "http://xml.juniper.net/junos/*/junos"; | |
ns xnm = "http://xml.juniper.net/xnm/1.1/xnm"; | |
ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0"; | |
ns dyn = "http://exslt.org/dynamic"; | |
ns snmp extension = "http://exslt.org/functions"; | |
template find-alarm($alarm_severity) { | |
var $con = jcs:open(); | |
var $system_alarms = jcs:execute($con, "get-system-alarm-information"); | |
var $chassis_alarms = jcs:execute($con, "get-alarm-information"); | |
/* | |
* jnxRedAlarmState and jnxYellowAlarmState from JUNIPER-ALARM-MIB | |
* return an integer 1(other), 2(off) or 3(on). | |
*/ | |
if (not(($system_alarms | $chassis_alarms)/alarm-summary)) { | |
expr jcs:syslog("external.error", $script _ ": ", "mgd or RPC error"); | |
<snmp-value> "1"; | |
} | |
else if (($system_alarms | $chassis_alarms)/alarm-detail/alarm-class == $alarm_severity) { | |
<snmp-value> "3"; | |
} | |
else { | |
<snmp-value> "2"; | |
} | |
} | |
template find-alarm-count( $alarm_severity ) { | |
var $con = jcs:open(); | |
var $system_alarms = jcs:execute($con, "get-system-alarm-information"); | |
var $chassis_alarms = jcs:execute($con, "get-alarm-information"); | |
if (not(($system_alarms | $chassis_alarms)/alarm-summary)) { | |
expr jcs:syslog("external.error", $script _ ": ", "mgd or RPC error"); | |
<snmp-value> "999"; | |
} | |
else { | |
var $alarm_count = count(($system_alarms | $chassis_alarms)/alarm-detail[alarm-class == $alarm_severity]); | |
<snmp-value> $alarm_count; | |
} | |
} | |
match / { | |
var $snmp-action = snmp-script-input/snmp-action; | |
var $snmp-oid = snmp-script-input/snmp-oid; | |
/* expr jcs:syslog("external.notice", $script _ ": ", "snmp-action = ", $snmp-action, " snmp-oid = ", $snmp-oid); */ | |
if ($snmp-action == "get") { | |
if($snmp-oid == ".1.3.6.1.4.1.2636.3.4.2.2.1.0") { | |
<snmp-script-results> { | |
<snmp-oid> $snmp-oid; | |
<snmp-type> "Integer32"; | |
call find-alarm($alarm_severity = "Minor"); | |
} | |
} | |
else if($snmp-oid == ".1.3.6.1.4.1.2636.3.4.2.3.1.0") { | |
<snmp-script-results> { | |
<snmp-oid> $snmp-oid; | |
<snmp-type> "Integer32"; | |
call find-alarm($alarm_severity = "Major"); | |
} | |
} | |
else if($snmp-oid == ".1.3.6.1.4.1.2636.3.4.2.2.2.0") { | |
<snmp-script-results> { | |
<snmp-oid> $snmp-oid; | |
<snmp-type> "Gauge32"; | |
call find-alarm-count($alarm_severity = "Minor"); | |
} | |
} | |
else if($snmp-oid == ".1.3.6.1.4.1.2636.3.4.2.3.2.0") { | |
<snmp-script-results> { | |
<snmp-oid> $snmp-oid; | |
<snmp-type> "Gauge32"; | |
call find-alarm-count($alarm_severity = "Major"); | |
} | |
} | |
} | |
else if ($snmp-action == "get-next") { | |
if($snmp-oid == ".1.3.6.1.4.1.2636.3.4.2.2.1") { | |
<snmp-script-results> { | |
<snmp-oid> $snmp-oid _ ".0"; | |
<snmp-type> "Integer32"; | |
call find-alarm($alarm_severity = "Minor"); | |
} | |
} | |
else if($snmp-oid == ".1.3.6.1.4.1.2636.3.4.2.3.1") { | |
<snmp-script-results> { | |
<snmp-oid> $snmp-oid _ ".0"; | |
<snmp-type> "Integer32"; | |
call find-alarm($alarm_severity = "Major"); | |
} | |
} | |
else if($snmp-oid == ".1.3.6.1.4.1.2636.3.4.2.2.2") { | |
<snmp-script-results> { | |
<snmp-oid> $snmp-oid _ ".0"; | |
<snmp-type> "Gauge32"; | |
call find-alarm-count($alarm_severity = "Minor"); | |
} | |
} | |
else if($snmp-oid == ".1.3.6.1.4.1.2636.3.4.2.3.2") { | |
<snmp-script-results> { | |
<snmp-oid> $snmp-oid _ ".0"; | |
<snmp-type> "Gauge32"; | |
call find-alarm-count($alarm_severity = "Major"); | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment