Commit graph

353 commits

Author SHA1 Message Date
Christian Hesse a46fd48187 global-functions: $ScriptLock: remove ticket in a loop
This was not required with RouterOS v6, but for any reason removing a
ticket may fail with RouterOS v7 in very rare cases. So remove in a
loop...
2021-12-09 22:48:30 +01:00
Christian Hesse b423e6ed0f global-functions: $ScriptLock: cleanup in dedicated function 2021-12-09 22:48:30 +01:00
Christian Hesse cdcab4599a global-functions: $ScriptLock: initialize earlier 2021-12-09 12:52:03 +01:00
Christian Hesse 9c87b5a222 global-functions: $ScriptLock: initialize empty array on cleanup 2021-12-09 12:52:03 +01:00
Christian Hesse a98965d727 global-functions: give a hint on RouterOS v7 2021-12-07 23:01:01 +01:00
Christian Hesse 1f5cc39b3c global-config: load overlay automatically 2021-12-07 21:58:03 +01:00
Christian Hesse dab04fd63e README: changes for RouterOS v7 2021-12-07 11:11:19 +01:00
Christian Hesse 5b786e10c8 global-functions: $DeviceInfo: add current firmware
(I would like to show a note if the upgrade is pending... But did not
find a way to get that information. Is there?)
2021-11-22 09:57:57 +01:00
Christian Hesse 2625cc09a5 check-health: support hard lower limit for voltage
... to detect slow decrease of voltage, for example with UPS.
2021-11-16 22:21:37 +01:00
Christian Hesse d87c50cf68 check-health: indicate voltage increase or decrease 2021-11-16 22:21:37 +01:00
Christian Hesse 185fe2c730 reintroduce global-wait 2021-11-16 22:21:37 +01:00
Christian Hesse 3b997d3087 global-functions: drop deprecated function $LogPrintExit
... which has been replaced by $LogPrintExit2 some time ago.
2021-11-16 22:21:22 +01:00
Christian Hesse 8fc88c73f8 shorten modules directory name (global-functions.d -> mod) 2021-11-15 22:18:10 +01:00
Christian Hesse f484e45b6a bridge-port-to-default -> global-functions.d/bridge-port-to 2021-11-15 22:18:10 +01:00
Christian Hesse b6215ba958 add global-functions.d/bridge-port-vlan 2021-11-12 16:09:35 +01:00
Christian Hesse 99a95d310e global-functions: $NotificationFunctions->"email": check for valid settings
No need to queue mails if 'address' and 'from' are not specified...
2021-10-01 20:39:59 +02:00
Christian Hesse f780b205a9 global-functions: $DeviceInfo: do not fail on non-RouterBoard with ROS 7.x 2021-10-01 09:00:36 +02:00
Christian Hesse 9295d06fe2 global-functions.d/inspectvar: add $InspectVar...
to inspect variables. This is useful for variables with (nested) arrays,
for example inspecting $NetwatchNotify (from netwatch-notify):

[admin@Mikrotik] > $InspectVar $NetwatchNotify
-type-> array
  -key-> quad-one
    -type-> array
      -key-> count
        -type-> num
        -value-> 0
      -key-> notified
        -type-> bool
        -value-> false
      -key-> parent
        -type-> nothing
      -key-> resolve-failed
        -type-> nothing
      -key-> since
        -type-> nothing
  -key-> example.com
    -type-> array
      -key-> count
        -type-> num
        -value-> 0
      -key-> notified
        -type-> bool
        -value-> false
      -key-> parent
        -type-> str
        -value-> quad-one
      -key-> resolve-failed
        -type-> nothing
      -key-> since
        -type-> nothing
2021-09-21 21:26:13 +02:00
Christian Hesse ce78d7d9e9 global-functions: notify about move of $IPCalc and $ScriptRunOnce to modules
Just install with...

$ScriptInstallUpdate global-functions.d/ipcalc

... and/or...

$ScriptInstallUpdate global-functions.d/scriptrunonce

... and use the functions as before.
2021-09-21 21:26:13 +02:00
Christian Hesse 012db05a93 global-functions: move $ScriptRunOnce to optional module 2021-09-21 21:26:13 +02:00
Christian Hesse 8b05d25487 global-functions: move $IPCalc to optional module 2021-09-21 21:26:13 +02:00
Christian Hesse 70f9c7926b global-functions*: syntax for ROS 7.x
Strings with escape sequence have to be enclosed in parentheses. Looks
like RouterOS 7.x is stricter here...
2021-09-08 14:33:02 +02:00
Christian Hesse 150c228197 global-functions: $CertificateAvailable: drop version check 2021-09-02 08:55:34 +02:00
Christian Hesse 832e899cda global-functions: $RequiredRouterOS: allow to use without warning 2021-09-01 14:05:55 +02:00
Christian Hesse ae8e22941e global-functions: $ScriptLock: handle array by index
This should mitigate race conditions while rewriting the array.
2021-08-31 21:40:42 +02:00
Christian Hesse d356d6f57c global-functions: $ScriptLock: do not store but calculate job count
This should mitigate some more race conditions.
2021-08-31 21:40:42 +02:00
Christian Hesse 4269bc9548 global-functions: $ScriptLock: check for successful removal of ticket
The script is already locked, so there is no second script to remove a
ticket at the same time. However a new script can add a new ticket and
overwrite the removal... Thus check for successful removal anyway.
2021-07-25 23:19:54 +02:00
Ben Harris 9fba3dd8df global-functions: $ScriptLock: fix off-by-one check...
... for stale job tickets

Signed-off-by: Christian Hesse <mail@eworm.de>
2021-07-15 10:17:25 +02:00
Christian Hesse 483506b189 global-functions: introduce $ScriptRunOnce 2021-07-10 23:18:04 +02:00
Christian Hesse d1ef710093 global-functions: $ScriptInstallUpdate: add error handling for changelog 2021-07-09 22:04:15 +02:00
Christian Hesse dc7fc0d385 finally remove old scripts 2021-07-09 12:46:03 +02:00
Christian Hesse b864db1e38 global-functions: $ScriptInstallUpdate: add error handling for migration 2021-07-09 12:46:03 +02:00
Christian Hesse f694e1e54d global-functions: $ScriptInstallUpdate: drop unused variable
This was a left-over from re-run message.
2021-07-09 12:46:03 +02:00
Christian Hesse 81cba72bec global-functions: $ScriptInstallUpdate: drop the migration pattern 2021-07-09 12:46:03 +02:00
Christian Hesse bccb7c3452 netwatch-notify: implement pre-down hook 2021-07-09 12:46:03 +02:00
Christian Hesse 4192d30d7e global-functions: $ScriptLock: drop variable, just return 2021-07-09 10:40:13 +02:00
Christian Hesse a4e548eb80 global-functions: $ScriptLock: make ticket management more reliable 2021-07-08 21:03:31 +02:00
Michael Gisbers d5edcbd3b6 check-routeros-update: allow update for cap
If CAPsMAN is running on a device with just 16MB flash downloading the
packages is not possible (or at least lost at reboot). So allow a CAP to
update with opt-in.
2021-07-01 22:56:18 +02:00
Christian Hesse aad91d90ea global-functions: $ScriptLock: use hex string for ticket
Does not matter what the ticket looks like, but using hex string it is
not converted to number.
2021-07-01 22:37:03 +02:00
Christian Hesse 0b4c1861cf global-functions: $ScriptLock: use a limit on lock...
... to make sure it does not lock forever.
2021-07-01 22:37:03 +02:00
Christian Hesse 7de3457f44 global-functions: $ScriptLock: allow to wait for lock 2021-06-30 21:28:27 +02:00
Christian Hesse 5d30886e59 global-functions: $ScriptLock: rework with tickets
Getting the order right is not easy... We use a global variable to store
"tickets" in an array. Based on that scripts know their order.
2021-06-30 21:28:27 +02:00
Christian Hesse b2d0ed1240 global-functions: $ScriptLock: check if script is running 2021-06-30 21:18:38 +02:00
Christian Hesse e13e3cfe34 global-functions: $ScriptLock: check if script exists 2021-06-30 21:16:17 +02:00
Christian Hesse 301ad4b3e5 global-functions: $ScriptLock: allow to return...
... with true instead of breaking with error.
2021-06-30 11:13:50 +02:00
Christian Hesse 89f8dc7120 global-functions: $LogPrintExit2: allow origin-specific debug
Add something like this in global-config-overlay:

:global PrintDebugOverride {
  "dhcp-to-dns"=true;
}
2021-06-30 11:12:12 +02:00
Christian Hesse 679917390b global-functions: $GetRandomNumber: use $HexToNum 2021-06-28 21:33:13 +02:00
Christian Hesse cfc400b3d5 global-functions: $GetRandom20CharHex: do not remove otp...
... as it is instantly invalid anyway.
2021-06-28 21:33:13 +02:00
Christian Hesse 855399b2bc global-functions: $RandomDelay: allow to specify unit in second argument 2021-06-24 22:28:08 +02:00
Christian Hesse 1a404195d5 hotspot-to-wpa: add optional cleanup script 2021-06-23 15:15:16 +02:00