2018-12-14 22:04:18 +00:00
|
|
|
#!rsc
|
|
|
|
# RouterOS script: check-lte-firmware-update
|
2019-01-01 20:19:19 +00:00
|
|
|
# Copyright (c) 2018-2019 Christian Hesse <mail@eworm.de>
|
2018-12-14 22:04:18 +00:00
|
|
|
#
|
|
|
|
# check for LTE firmware update, send notification e-mails
|
|
|
|
|
|
|
|
:global "identity";
|
|
|
|
:global "sent-lte-firmware-update-notification";
|
|
|
|
|
|
|
|
:global SendNotification;
|
|
|
|
|
|
|
|
:foreach interface in=[ / interface lte find ] do={
|
|
|
|
:local intname [ / interface lte get $interface name ];
|
|
|
|
:do {
|
|
|
|
:local firmware [ / interface lte firmware-upgrade $interface once as-value ];
|
2018-12-14 22:34:59 +00:00
|
|
|
# strip the extra line break (TODO: remove when fixed upstream)
|
|
|
|
:set ($firmware->"latest") [ :pick ($firmware->"latest") 0 [ :find ($firmware->"latest") "\n" ] ];
|
2018-12-14 22:04:18 +00:00
|
|
|
|
|
|
|
:if ($"sent-lte-firmware-update-notification" = ($firmware->"latest")) do={
|
|
|
|
:log debug ("Already sent the LTE firmware update notification for version " . \
|
|
|
|
($firmware->"latest") . ".");
|
|
|
|
} else={
|
|
|
|
:if (($firmware->"installed") != ($firmware->"latest")) do={
|
|
|
|
$SendNotification ("LTE firmware update notification") \
|
|
|
|
("A new firmware version " . ($firmware->"latest") . " is available for " . \
|
|
|
|
"LTE interface " . $intname . " on " . $identity . ".");
|
|
|
|
:set "sent-lte-firmware-update-notification" ($firmware->"latest");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} on-error={
|
|
|
|
:log debug ("Could not get latest LTE firmware version for interface " . \
|
|
|
|
$intname . ".");
|
|
|
|
}
|
|
|
|
}
|