aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Christian Hesse <mail@eworm.de>2019-02-14 20:49:05 +0100
committerGravatar Christian Hesse <mail@eworm.de>2019-02-14 20:49:05 +0100
commit74683b3fc8571a684c6a781e2325253eed4736ae (patch)
treec8032b395e48fa72ef6cd9415e41e228b16aea40
parentf127e3b7efe4c7d5dcd828218bbd44cbe04dcb47 (diff)
capsman-download-packages: split off capsman-rolling-upgrade
-rw-r--r--capsman-download-packages13
-rw-r--r--capsman-rolling-upgrade20
2 files changed, 25 insertions, 8 deletions
diff --git a/capsman-download-packages b/capsman-download-packages
index d11dae3..7462699 100644
--- a/capsman-download-packages
+++ b/capsman-download-packages
@@ -30,13 +30,10 @@
}
}
-:local RemoteCapCount [ /caps-man remote-cap print count-only ];
-:if ($Updated = true && $RemoteCapCount > 0) do={
- :local Delay (600 / $RemoteCapCount);
- :if ($Delay > 120) do={ :set Delay 120; }
- :foreach RemoteCap in=[ / caps-man remote-cap find where version!=$InstalledVersion ] do={
- :log debug ("Starting upgrade for CAP " . [ / caps-man remote-cap get $RemoteCap name ] . "...");
- / caps-man remote-cap upgrade $RemoteCap;
- :delay ($Delay . "s");
+:if ($Updated = true) do={
+ :if ([ / system script print count-only where name="capsman-rolling-upgrade" ] > 0) do={
+ / system script run capsman-rolling-upgrade;
+ } else={
+ / caps-man remote-cap upgrade [ find where version!=$InstalledVersion ];
}
}
diff --git a/capsman-rolling-upgrade b/capsman-rolling-upgrade
new file mode 100644
index 0000000..431ac02
--- /dev/null
+++ b/capsman-rolling-upgrade
@@ -0,0 +1,20 @@
+#!rsc
+# RouterOS script: capsman-rolling-upgrade
+# Copyright (c) 2018-2019 Christian Hesse <mail@eworm.de>
+# Michael Gisbers <michael@gisbers.de>
+#
+# upgrade CAPs one after another
+
+:local InstalledVersion [ / system package update get installed-version ];
+
+:local RemoteCapCount [ /caps-man remote-cap print count-only ];
+:if ($RemoteCapCount > 0) do={
+ :local Delay (600 / $RemoteCapCount);
+ :if ($Delay > 120) do={ :set Delay 120; }
+ :foreach RemoteCap in=[ / caps-man remote-cap find where version!=$InstalledVersion ] do={
+ :local RemoteCapName [ / caps-man remote-cap get $RemoteCap name ];
+ :log debug ("Starting upgrade for CAP " . $RemoteCapName . "...");
+ / caps-man remote-cap upgrade $RemoteCap;
+ :delay ($Delay . "s");
+ }
+}