From 1d713525c10dd026a8b62e248e124255af751f2f Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Wed, 17 Nov 2021 12:46:05 +0100 Subject: [PATCH] firmware: add new flag for update-based reboot #5358 Keep old flag in place to not break any API consumers for a while. --- .../OPNsense/Core/Api/FirmwareController.php | 2 +- .../mvc/app/views/OPNsense/Core/firmware.volt | 3 ++- src/opnsense/scripts/firmware/check.sh | 25 +++++++++++-------- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/FirmwareController.php b/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/FirmwareController.php index 74e51b1c2..f41d48e21 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/FirmwareController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/FirmwareController.php @@ -287,7 +287,7 @@ class FirmwareController extends ApiControllerBase $this->formatBytes($active_size) ); } - if ($response['upgrade_needs_reboot'] == 1) { + if ($response['needs_reboot'] == 1) { $response['status_msg'] = sprintf( '%s %s', $response['status_msg'], diff --git a/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt b/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt index ebde3b278..6e1edbbe9 100644 --- a/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt +++ b/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt @@ -56,6 +56,7 @@ let show_log = ''; $.upgrade_needs_reboot = data['upgrade_needs_reboot']; + $.needs_reboot = data['needs_reboot']; // show upgrade list $('#upgrade').show(); @@ -220,7 +221,7 @@ function upgrade_ui(major) { let reboot_msg = ""; - if ( $.upgrade_needs_reboot == "1" || major === true) { + if (major === true || $.needs_reboot == "1") { reboot_msg = "{{ lang._('The firewall will reboot directly after this firmware update.') }}"; if (major === true) { reboot_msg = "{{ lang._('The firewall will download all firmware sets and reboot multiple times for this upgrade. All operating system files and packages will be reinstalled as a consequence. This may take several minutes to complete.') }}"; diff --git a/src/opnsense/scripts/firmware/check.sh b/src/opnsense/scripts/firmware/check.sh index 2de310b45..27630cabc 100755 --- a/src/opnsense/scripts/firmware/check.sh +++ b/src/opnsense/scripts/firmware/check.sh @@ -47,20 +47,21 @@ CUSTOMPKG=${1} rm -f ${JSONFILE} : > ${LOCKFILE} -base_to_reboot="" +base_to_reboot= connection="error" -download_size="" +download_size= force_all= itemcount=0 -kernel_to_reboot="" +kernel_to_reboot= last_check="unknown" linecount=0 -packages_downgraded="" -packages_new="" -packages_upgraded="" +needs_reboot="0" +packages_downgraded= +packages_new= +packages_upgraded= product_repo="OPNsense" repository="error" -sets_upgraded="" +sets_upgraded= upgrade_needs_reboot="0" product_suffix="-$(pluginctl -g system.firmware.type)" @@ -308,7 +309,8 @@ else packages_upgraded=${packages_upgraded}"\"repository\":\"${product_repo}\"," packages_upgraded=${packages_upgraded}"\"current_version\":\"${base_to_delete}\"," packages_upgraded=${packages_upgraded}"\"new_version\":\"${base_to_reboot}\"}" - upgrade_needs_reboot="1" + upgrade_needs_reboot="1" # XXX remove faulty value in 22.1.x + needs_reboot="1" fi fi @@ -330,7 +332,8 @@ else packages_upgraded=${packages_upgraded}"\"repository\":\"${product_repo}\"," packages_upgraded=${packages_upgraded}"\"current_version\":\"${kernel_to_delete}\"," packages_upgraded=${packages_upgraded}"\"new_version\":\"${kernel_to_reboot}\"}" - upgrade_needs_reboot="1" + upgrade_needs_reboot="1" # XXX remove faulty value in 22.1.x + needs_reboot="1" fi fi fi @@ -340,7 +343,8 @@ packages_is_size="$(opnsense-update -SRp)" if [ -n "${packages_is_size}" ]; then upgrade_major_version=$(opnsense-update -vR) upgrade_major_message=$(sed -e 's/"/\\&/g' -e "s/%%UPGRADE_RELEASE%%/${upgrade_major_version}/g" /usr/local/opnsense/data/firmware/upgrade.html 2> /dev/null | tr '\n' ' ') - upgrade_needs_reboot="1" + upgrade_needs_reboot="1" # provided for API convenience only + sets_upgraded="{\"name\":\"packages\",\"size\":\"${packages_is_size}\",\"current_version\":\"${product_version}\",\"new_version\":\"${upgrade_major_version}\",\"repository\":\"${product_repo}\"}" kernel_to_delete="$(opnsense-version -v kernel)" @@ -368,6 +372,7 @@ cat > ${JSONFILE} << EOF "downgrade_packages":[${packages_downgraded}], "download_size":"${download_size}", "last_check":"${last_check}", + "needs_reboot":"${needs_reboot}", "new_packages":[${packages_new}], "os_version":"${os_version}", "product_id":"${product_id}",