mirror of
https://git.eworm.de/cgit/routeros-scripts
synced 2025-07-22 20:04:26 +02:00
capsman-download-packages: get info from log
Relying on older packages in local storage may be problematic due to
size constraints. Let's check the log for required packages.
(cherry picked from commit c4a5f8787a
)
This commit is contained in:
parent
0695c99318
commit
d21cd2271f
2 changed files with 22 additions and 12 deletions
|
@ -53,6 +53,25 @@ $WaitFullyConnected;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:if ($Updated = false && [ / system resource get uptime ] < 2m) do={
|
||||||
|
$LogPrintExit2 info $0 ("No packages downloaded, yet. Delaying for logs.") false;
|
||||||
|
:delay 2m;
|
||||||
|
}
|
||||||
|
|
||||||
|
:foreach Log in=[ / log find where topics=({"caps", "error"}) \
|
||||||
|
message~("upgrade status: failed, failed to download file '.*-" . $InstalledVersion . "-.*\\.npk', no such file") ] do={
|
||||||
|
:local Message [ / log get $Log message ];
|
||||||
|
:local Package [ :pick $Message \
|
||||||
|
([ :find $Message "'" ] + 1) \
|
||||||
|
[ :find $Message ("-" . $InstalledVersion . "-") ] ];
|
||||||
|
:local Arch [ :pick $Message \
|
||||||
|
([ :find $Message ("-" . $InstalledVersion . "-") ] + 2 + [ :len $InstalledVersion ]) \
|
||||||
|
[ :find $Message ".npk" ] ];
|
||||||
|
:if ([ $DownloadPackage $Package $InstalledVersion $Arch $PackagePath ] = true) do={
|
||||||
|
:set Updated true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
:if ($Updated = true) do={
|
:if ($Updated = true) do={
|
||||||
:if ([ :len [ / system script find where name="capsman-rolling-upgrade" ] ] > 0) do={
|
:if ([ :len [ / system script find where name="capsman-rolling-upgrade" ] ] > 0) do={
|
||||||
/ system script run capsman-rolling-upgrade;
|
/ system script run capsman-rolling-upgrade;
|
||||||
|
|
|
@ -26,18 +26,9 @@ Optionally add a scheduler to run after startup:
|
||||||
|
|
||||||
/ system scheduler add name=capsman-download-packages on-event="/ system script run capsman-download-packages;" start-time=startup;
|
/ system scheduler add name=capsman-download-packages on-event="/ system script run capsman-download-packages;" start-time=startup;
|
||||||
|
|
||||||
Only packages available in older version are downloaded. For initial setup
|
Packages available in local storage in older version are downloaded
|
||||||
place the required packages to CAPsMAN package path (see
|
unconditionally. The script tries to download missing packages by guessing
|
||||||
`/ caps-man manager`). The packages can be downloaded from device with
|
from system log.
|
||||||
function `$DownloadPackage`, use something like this to download latest
|
|
||||||
packages to directory `routeros`:
|
|
||||||
|
|
||||||
$DownloadPackage system "" arm routeros;
|
|
||||||
$DownloadPackage security "" arm routeros;
|
|
||||||
[...]
|
|
||||||
$DownloadPackage system "" mipsbe routeros;
|
|
||||||
$DownloadPackage security "" mipsbe routeros;
|
|
||||||
[...]
|
|
||||||
|
|
||||||
Usage and invocation
|
Usage and invocation
|
||||||
--------------------
|
--------------------
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue