aboutsummaryrefslogtreecommitdiffstats
path: root/check-health.rsc
diff options
context:
space:
mode:
Diffstat (limited to 'check-health.rsc')
-rw-r--r--check-health.rsc18
1 files changed, 9 insertions, 9 deletions
diff --git a/check-health.rsc b/check-health.rsc
index f02a249..4cb9940 100644
--- a/check-health.rsc
+++ b/check-health.rsc
@@ -8,11 +8,11 @@
# check for RouterOS health state
# https://rsc.eworm.de/doc/check-health.md
-:global GlobalFunctionsReady;
-:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
-
:local ExitOK false;
-:do {
+:onerror Err {
+ :global GlobalConfigReady; :global GlobalFunctionsReady;
+ :retry { :if ($GlobalConfigReady != true || $GlobalFunctionsReady != true) \
+ do={ :error ("Global config and/or functions not ready."); }; } delay=500ms max=50;
:local ScriptName [ :jobname ];
:global CheckHealthCPUUtilization;
@@ -89,10 +89,10 @@
:foreach Plugin in=$Plugins do={
:local PluginVal [ /system/script/get $Plugin ];
:if ([ $ValidateSyntax ($PluginVal->"source") ] = true) do={
- :do {
+ :onerror Err {
/system/script/run $Plugin;
- } on-error={
- $LogPrint error $ScriptName ("Plugin '" . $ScriptVal->"name" . "' failed to run.");
+ } do={
+ $LogPrint error $ScriptName ("Plugin '" . $ScriptVal->"name" . "' failed to run: " . $Err);
}
} else={
$LogPrint error $ScriptName ("Plugin '" . $ScriptVal->"name" . "' failed syntax validation, skipping.");
@@ -105,6 +105,6 @@
}
:set CheckHealthPlugins;
-} on-error={
- :global ExitError; $ExitError $ExitOK [ :jobname ];
+} do={
+ :global ExitError; $ExitError $ExitOK [ :jobname ] $Err;
}