diff options
author | Christian Hesse <mail@eworm.de> | 2022-01-14 16:54:30 +0100 |
---|---|---|
committer | Christian Hesse <mail@eworm.de> | 2022-01-14 16:54:30 +0100 |
commit | db4afe28f06b5bc32cfe6f02b95f174888b3b6cc (patch) | |
tree | 0e568bee9fee737798196b2c212b1f52f9c698fa /ospf-to-leds | |
parent | 1089b7e7f9a6638c7783538f464916d16b3a6e87 (diff) | |
parent | 5135a413329ed401ae62ef6b4d05fe09fc0df2f7 (diff) |
Merge branch 'routeros-v7' into next
Diffstat (limited to 'ospf-to-leds')
-rw-r--r-- | ospf-to-leds | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/ospf-to-leds b/ospf-to-leds index 448cc6b..39501c9 100644 --- a/ospf-to-leds +++ b/ospf-to-leds @@ -18,12 +18,18 @@ :local LED ([ $ParseKeyValueStore ($InstanceVal->"comment") ]->"leds"); :local LEDType [ / system leds get [ find where leds=$LED ] type ]; - :if ($InstanceVal->"state" = "running" && $LEDType = "off") do={ - $LogPrintExit2 info $0 ("OSPF instance " . $InstanceVal->"name" . " is running, led on!") false; + :local NeighborCount 0; + :foreach Area in=[ / routing ospf area find where instance=($InstanceVal->"name") ] do={ + :local AreaName [ / routing ospf area get $Area name ]; + :set NeighborCount ($NeighborCount + [ :len [ / routing ospf neighbor find where area=$AreaName ] ]); + } + + :if ($NeighborCount > 0 && $LEDType = "off") do={ + $LogPrintExit2 info $0 ("OSPF instance " . $InstanceVal->"name" . " has " . $NeighborCount . " neighbors, led on!") false; / system leds set type=on [ find where leds=$LED ]; } - :if ($InstanceVal->"state" = "down" && $LEDType = "on") do={ - $LogPrintExit2 info $0 ("OSPF instance " . $InstanceVal->"name" . " is down, led off!") false; + :if ($NeighborCount = 0 && $LEDType = "on") do={ + $LogPrintExit2 info $0 ("OSPF instance " . $InstanceVal->"name" . " has no neighbors, led off!") false; / system leds set type=off [ find where leds=$LED ]; } } |