From bcd8993027e61d59277adc501183384192ff53bd Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Fri, 15 May 2015 18:46:12 +0200 Subject: [PATCH] (firmware) add upgrade action --- .../OPNsense/Core/Api/FirmwareController.php | 11 +++++++++-- .../mvc/app/views/OPNsense/Core/firmware.volt | 5 ++++- .../service/conf/actions.d/actions_firmware.conf | 5 +++-- 3 files changed, 16 insertions(+), 5 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 2e3ae86cb..7e0457beb 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/FirmwareController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/FirmwareController.php @@ -59,10 +59,12 @@ class FirmwareController extends ApiControllerBase $response["status_msg"] = "no updates found"; } elseif (array_key_exists("updates", $response) && $response["upgrade_packages"][0]["name"] == "pkg") { $response["status"] = "ok"; + $response["status_upgrade_action"] = "pkg"; $response["status_msg"] = "There is a mandatory update for the package manager. ". "Please install and check for updates again."; } elseif (array_key_exists("updates", $response)) { $response["status"] = "ok"; + $response["status_upgrade_action"] = "all"; $response["status_msg"] = sprintf("A total of %s update(s) are available.", $response["updates"]); } } else { @@ -81,9 +83,14 @@ class FirmwareController extends ApiControllerBase { $backend = new Backend(); $response =array(); - if ($this->request->isPost()) { + if ($this->request->hasPost("upgrade")) { $response['status'] = 'ok'; - $response['uuid'] = trim($backend->configdRun("firmware upgrade", true)); + if ($this->request->getPost("upgrade") == "pkg") { + $action = "firmware upgrade pkg"; + } else { + $action = "firmware upgrade all"; + } + $response['msg_uuid'] = trim($backend->configdRun($action, true)); } else { $response['status'] = 'failure'; } diff --git a/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt b/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt index 7b8b14765..8c6d0250e 100644 --- a/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt +++ b/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt @@ -48,6 +48,7 @@ POSSIBILITY OF SUCH DAMAGE. $("#checkupdate_progress").removeClass("fa fa-spinner fa-pulse"); if (data['status'] == "ok") { + $.upgrade_action = data['status_upgrade_action']; // unhide upgrade button $("#upgrade").attr("style",""); // show upgrade list @@ -80,7 +81,8 @@ POSSIBILITY OF SUCH DAMAGE. $('#maintabs li:eq(1) a').tab('show'); $('#updatestatus').html("{{ lang._('Starting Upgrade.. Please do not leave this page while upgrade is in progress.') }}"); $("#upgrade_progress").addClass("fa fa-spinner fa-pulse"); - ajaxCall('/api/core/firmware/upgrade',{},function() { + + ajaxCall('/api/core/firmware/upgrade',{upgrade:$.upgrade_action},function() { $("#upgrade_progress").removeClass("fa fa-spinner fa-pulse"); setTimeout(trackStatus, 1000) ; }); @@ -106,6 +108,7 @@ POSSIBILITY OF SUCH DAMAGE. type:BootstrapDialog.TYPE_INFO, title: "{{ lang._('Upgrade') }}", message: "{{ lang._('The upgrade is finished and your device is being rebooted at the moment, please wait.') }}", + closable: false, buttons: [{ label: "{{ lang._('Close') }}", cssClass: 'btn-success', diff --git a/src/opnsense/service/conf/actions.d/actions_firmware.conf b/src/opnsense/service/conf/actions.d/actions_firmware.conf index 36556b1d5..0fdaf5aed 100644 --- a/src/opnsense/service/conf/actions.d/actions_firmware.conf +++ b/src/opnsense/service/conf/actions.d/actions_firmware.conf @@ -6,9 +6,10 @@ message:retrieve package status [upgrade] command: /usr/sbin/daemon -f /usr/local/opnsense/scripts/pkg_upgrade.sh -parameters: +parameters:%s type:script -message:perform upgrade +message:perform upgrade %s + [upgrade_status] command:cat /tmp/pkg_upgrade.progress 2>&1