diff options
author | Christian Hesse <mail@eworm.de> | 2021-09-29 15:12:46 +0200 |
---|---|---|
committer | Christian Hesse <mail@eworm.de> | 2022-01-14 09:20:09 +0100 |
commit | 7e5652e0c5f45f6c606a60be5eabd57df785d50d (patch) | |
tree | c7aa63e80c2a665ebcc34fb8549f5b16264a575e | |
parent | 768afd84c6f0644f899db450691a050e01c2a272 (diff) |
ospf-to-leds: get state from count of neighborsrouteros-7.x-1
The state property is gone in RouterOS v7...
-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 ]; } } |