aboutsummaryrefslogtreecommitdiffstats
path: root/check-lte-firmware-upgrade
diff options
context:
space:
mode:
Diffstat (limited to 'check-lte-firmware-upgrade')
-rw-r--r--check-lte-firmware-upgrade34
1 files changed, 34 insertions, 0 deletions
diff --git a/check-lte-firmware-upgrade b/check-lte-firmware-upgrade
new file mode 100644
index 0000000..c99f5d7
--- /dev/null
+++ b/check-lte-firmware-upgrade
@@ -0,0 +1,34 @@
+#!rsc
+# RouterOS script: check-lte-firmware-upgrade
+# Copyright (c) 2018-2019 Christian Hesse <mail@eworm.de>
+#
+# check for LTE firmware upgrade, send notification e-mails
+
+:global "identity";
+:global "sent-lte-firmware-upgrade-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 ];
+ # strip the extra line break (TODO: remove when fixed upstream)
+ :set ($firmware->"latest") [ :pick ($firmware->"latest") 0 [ :find ($firmware->"latest") "\n" ] ];
+
+ :if ($"sent-lte-firmware-upgrade-notification" = ($firmware->"latest")) do={
+ :log debug ("Already sent the LTE firmware upgrade notification for version " . \
+ ($firmware->"latest") . ".");
+ } else={
+ :if (($firmware->"installed") != ($firmware->"latest")) do={
+ $SendNotification ("LTE firmware upgrade notification") \
+ ("A new firmware version " . ($firmware->"latest") . " is available for " . \
+ "LTE interface " . $intname . " on " . $identity . ".");
+ :set "sent-lte-firmware-upgrade-notification" ($firmware->"latest");
+ }
+ }
+ } on-error={
+ :log debug ("Could not get latest LTE firmware version for interface " . \
+ $intname . ".");
+ }
+}