[pve-devel] [PATCH http/common/manager/wt/proxmox-backup/pmg] Tasklog download button

Daniel Tschlatscher d.tschlatscher at proxmox.com
Tue Apr 26 14:35:35 CEST 2022


This patch series' aim is to add a download button in the tasklog-
viewer GUI so that users may access all parts of the tasklog more
easily (The tasklog-viewer only displays 50 lines at a time).

For this change in the GUI (proxmox-widget-toolkit) there were revised
implementations for all backends (PVE, PMG and PBS) needed.
The change was implemented by setting the URL parameter 'limit' for
the .../log call and streaming a file in this case. (Before this
call returned 0 lines).

I also revised a few different parts in the code which had redundant
implementations for "downloading" a file locally from a string.
For this I added a function in the proxmox-widget-toolkit Utils class
which all occurences (that I found) now call.

During the implementation of the file stream download I found a bug
concerning chromium browsers because of which downloads "randomly"
fail.
The problem was, that when implementing the download through an html a
tag and setting its property "download" to anything (even undefined)
with a self-signed certificate (not imported) will fail after the
SSL connection is reset.
In my testing this was the case after about 5 seconds. This problem is
especially pronounced in the PMG as there are less background calls in
contrast to the PVE. However, the PBS does not seem to suffer this
error at all, because the SSL handshake timeout seems to not run out.
 
Without the 'download' attribute you can't set the filename though.
The file will only have a proper name if the server adds the correct
'content-disposition' header. A few calls to the 'downloadAsFile'
function set the filename anyway, because in most cases the browser
frontend is making enough polling calls so that the SSL handshake
does not have to be executed for the download. (That is also why it
probably did not come up before)
This problem does not apply in Firefox as far as I could tell. 

Daniel Tschlatscher (1):
  fix #3971: tasklog download in the backup server backend

 Cargo.toml               |   2 +-
 src/api2/node/tasks.rs   | 154 +++++++++++++++++++++++++--------------
 www/Subscription.js      |  14 +---
 www/datastore/Content.js |   7 +-
 4 files changed, 105 insertions(+), 72 deletions(-)

Daniel Tschlatscher (1):
  fix #3971: Make tasklog downloadable

 src/PVE/APIServer/AnyEvent.pm | 3 +++
 1 file changed, 3 insertions(+)

Daniel Tschlatscher (1):
  fix #3971: Create log file stream for download

 src/PVE/Tools.pm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

Daniel Tschlatscher (1):
  fix #3971: Revised task log API call when parameter 'limit' is 0

 PVE/API2/Tasks.pm                 | 13 ++++++++++---
 www/manager6/node/Subscription.js | 20 ++++----------------
 2 files changed, 14 insertions(+), 19 deletions(-)

Daniel Tschlatscher (1):
  fix #3971: Download button in TaskViewer for PMG

 src/PMG/API2/Tasks.pm | 34 +++++++++++-----------------------
 1 file changed, 11 insertions(+), 23 deletions(-)

Daniel Tschlatscher (1):
  fix #3971: Download button in the TaskViewer

 src/Utils.js              | 18 ++++++++++++++++++
 src/window/FileBrowser.js | 12 +++---------
 src/window/TaskViewer.js  | 16 ++++++++++++++--
 3 files changed, 35 insertions(+), 11 deletions(-)

Daniel Tschlatscher (1):
  Replaced the system-report file download implementation

 js/Subscription.js | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)
-- 
2.30.2






More information about the pve-devel mailing list