From dc626d506d43c34bad5434f4889aee3577795fb1 Mon Sep 17 00:00:00 2001 From: Paul Spooren Date: Mon, 9 Aug 2021 08:45:58 -1000 Subject: [PATCH] luci-app-attendedsysupgrade: add timeout and catch If the upgrade server API does not respond, show an error message. Fix #5222 While at it, minimal code linting Signed-off-by: Paul Spooren (cherry picked from commit ff24b78c807a52a0f9afb62ba0aba1085d9ad045) --- .../view/attendedsysupgrade/overview.js | 32 ++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/applications/luci-app-attendedsysupgrade/htdocs/luci-static/resources/view/attendedsysupgrade/overview.js b/applications/luci-app-attendedsysupgrade/htdocs/luci-static/resources/view/attendedsysupgrade/overview.js index 3ee99684da..802868ad0d 100644 --- a/applications/luci-app-attendedsysupgrade/htdocs/luci-static/resources/view/attendedsysupgrade/overview.js +++ b/applications/luci-app-attendedsysupgrade/htdocs/luci-static/resources/view/attendedsysupgrade/overview.js @@ -66,13 +66,13 @@ function install_sysupgrade(url, keep, sha256) { ]); } else { displayStatus('warning spinning', E('p', _('Installing the sysupgrade. Do not unpower device!'))); - L.resolveDefault(callUpgradeStart(keep), {}).then(response => { - if (keep) { - ui.awaitReconnect(window.location.host); - } else { - ui.awaitReconnect('192.168.1.1', 'openwrt.lan'); - } - }); + L.resolveDefault(callUpgradeStart(keep), {}).then(response => { + if (keep) { + ui.awaitReconnect(window.location.host); + } else { + ui.awaitReconnect('192.168.1.1', 'openwrt.lan'); + } + }); } }); }); @@ -228,7 +228,9 @@ function check_sysupgrade(server_url, current_version, target, board_name, packa var advanced_mode = uci.get_first('attendedsysupgrade', 'client', 'advanced_mode') || 0; var candidates = []; - fetch(server_url + "/api/latest") + request.get(server_url + "/api/latest", { + timeout: 8000 + }) .then(response => response.json()) .then(response => { if (current_version == "SNAPSHOT") { @@ -320,6 +322,20 @@ function check_sysupgrade(server_url, current_version, target, board_name, packa ]) ]); } + }) + .catch(error => { + ui.showModal(_('Error connecting to upgrade server'), [ + E('p', {}, _('Could not reach API at "%s". Please try again later.'.format(server_url))), + E('pre', {}, error), + E('div', { + 'class': 'right' + }, [ + E('div', { + 'class': 'btn', + 'click': ui.hideModal + }, _('Close')) + ]) + ]); }); } -- 2.30.2