]>
git.proxmox.com Git - proxmox-backup.git/log
Dominik Csapak [Thu, 18 Feb 2021 14:40:30 +0000 (15:40 +0100)]
ui: tape/ChangerStatus: show the state of the drive
an optimize the columns for smaller layouts (1280 width)
we show either:
* Idle
* spinner + status (if no upid)
* spinner + rendered UPID (clickable, opens task viewer)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Feb 2021 14:40:28 +0000 (15:40 +0100)]
api2/tape/{backup, restore}, proxmox-tape: set device state
set the drive device state everywhere we lock it, so that we
know what it currently does
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Feb 2021 14:40:27 +0000 (15:40 +0100)]
api2/tape/changer: add drive state to changer status output
if we can find the drive in the config and it has a state
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Feb 2021 14:40:26 +0000 (15:40 +0100)]
api2/tape/drive: wrap some api calls in run_drive_blocking_task
those calls could also block, so we have to run them in a blocking
tokio task, as to not block the current thread
nice side effect is that we now also update the state for that
drive in those instances
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Feb 2021 14:40:25 +0000 (15:40 +0100)]
api2/tape/drive: use run_drive_blocking_task where possible
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Feb 2021 14:40:24 +0000 (15:40 +0100)]
api2/tape/drive: add wrapper for tokio::task::spawn_blocking
similar to the worker wrapper, lock, write status, run code, unset status
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Feb 2021 14:40:23 +0000 (15:40 +0100)]
api2/tape/drive: use 'run_drive_worker' where possible
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Feb 2021 14:40:22 +0000 (15:40 +0100)]
api2/tape/drive: add run_drive_worker wrapper
a wrapper for locking, starting the worker and writing the state
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Feb 2021 14:40:21 +0000 (15:40 +0100)]
tape/drive: add get/set status functions
simply writes into/reads from a file in /run, we will use this
for writing the upid (or potential other states) per drive
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Feb 2021 14:40:20 +0000 (15:40 +0100)]
tape/drive: add test_device_path_lock
this makes it possible to detect if the drive was locked in a
non-blocking manner
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dietmar Maurer [Fri, 19 Feb 2021 08:50:25 +0000 (09:50 +0100)]
cleanup: use serde(flatten) for VerificationJobStatus, improve code reuse
Dietmar Maurer [Fri, 19 Feb 2021 08:36:39 +0000 (09:36 +0100)]
cleanup: use serde(flatten) for SyncJobStatus, improve code reuse
Dietmar Maurer [Fri, 19 Feb 2021 08:14:31 +0000 (09:14 +0100)]
ui: cleanup - reuse existing code
Dietmar Maurer [Fri, 19 Feb 2021 08:08:00 +0000 (09:08 +0100)]
ui: tape/BackupJobs.js - render task scheduling status
Dietmar Maurer [Fri, 19 Feb 2021 08:02:13 +0000 (09:02 +0100)]
api: list tape backup jobs with scheduling status
Dietmar Maurer [Fri, 19 Feb 2021 07:58:50 +0000 (08:58 +0100)]
add helper to compute job scheduling state
Dietmar Maurer [Fri, 19 Feb 2021 07:23:41 +0000 (08:23 +0100)]
api: add new type JobScheduleStatus
Dietmar Maurer [Thu, 18 Feb 2021 11:48:54 +0000 (12:48 +0100)]
ui: start tape backup job GUI
Dietmar Maurer [Thu, 18 Feb 2021 11:06:49 +0000 (12:06 +0100)]
ui: tape/ChangerStatus.js - avoid update status in list_media
We do not use the media location, so there is no need to update
the online status in the list_media call. Besides, we already update
the online status when we query the changer/status.
Dietmar Maurer [Thu, 18 Feb 2021 10:08:13 +0000 (11:08 +0100)]
ui: tape/ChangerStatus.js - only update status for selected changer
To reduce load/wait time.
Dietmar Maurer [Thu, 18 Feb 2021 09:59:33 +0000 (10:59 +0100)]
tape: media_list API - allow to update online status for a single changer
Dietmar Maurer [Thu, 18 Feb 2021 09:10:51 +0000 (10:10 +0100)]
ui: tape/TapeInventory.js - avoid update changer status
We do not update changer status by default - only when pressing "Reload" button.
Dominik Csapak [Thu, 18 Feb 2021 08:26:44 +0000 (09:26 +0100)]
ui: tape/TapeInventory: set defaultValue for pool to ''
otherwise the grouping feature of the grid gets confused as it encounters
undefined values
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Feb 2021 08:18:09 +0000 (09:18 +0100)]
ui: tape/ChangerStatus: adapt load/unload to WorkerTask
those are now workertasks (behind a 'POST' request), so show the
progress with the upid
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Feb 2021 08:18:08 +0000 (09:18 +0100)]
ui: tape/ChangerStatus: rename 'slot' column to 'id'
slot is already in the title of the grid, and hide it by default for
drives (the user does not need it there)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 18 Feb 2021 08:18:07 +0000 (09:18 +0100)]
ui: tape/ChangerStatus: add Inventory column to drives/import-export
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dietmar Maurer [Thu, 18 Feb 2021 08:23:50 +0000 (09:23 +0100)]
ui: improve task description for loat/unload media
Wolfgang Bumiller [Thu, 18 Feb 2021 08:13:38 +0000 (09:13 +0100)]
update d/control
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Thu, 18 Feb 2021 08:04:51 +0000 (09:04 +0100)]
tape: use worker tasks for media load/unload
Dietmar Maurer [Thu, 18 Feb 2021 06:30:37 +0000 (07:30 +0100)]
ui: tape/TapeInventory.js - use grid grouping feature - group by pool
Stefan Reiter [Tue, 16 Feb 2021 17:06:57 +0000 (18:06 +0100)]
client: extract common functions to proxmox_client_tools module
...including common schemata, connect(), extract_*() and completion
functions.
For later use with proxmox-file-restore binary.
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
Wolfgang Bumiller [Wed, 17 Feb 2021 08:56:56 +0000 (09:56 +0100)]
bump pxar to 0.9.0
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Stefan Reiter [Tue, 9 Feb 2021 12:03:48 +0000 (13:03 +0100)]
asyncify pxar create_archive
...to take advantage of the aio::Encoder from the pxar create.
Rather straightforward conversion, but does require getting rid of
references in the Archiver struct, and thus has to be given the Mutex
for the catalog directly. The callback is boxed.
archive_dir_contents can call itself recursively, and thus needs to
return a boxed future.
Users are adjusted, namely PxarBackupStream is converted to use an
Abortable future instead of a thread so it supports async in its handler
function, and the pxar bin create_archive is converted to an async API
function. One test case is made to just use 'block_on'.
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dominik Csapak [Tue, 16 Feb 2021 17:06:55 +0000 (18:06 +0100)]
pxar/extract: add extract_sub_dir
to extract some subdirectory of a pxar into a given target
this will be used in the client
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
Dominik Csapak [Tue, 16 Feb 2021 17:06:54 +0000 (18:06 +0100)]
api2/admin/datastore: refactor create_zip into pxar/extract
we will reuse that code in the client, so we need to move it to
where we can access it from the client
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
[clippy fixes]
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
Dominik Csapak [Tue, 16 Feb 2021 17:06:53 +0000 (18:06 +0100)]
api2/admin/datastore: accept "/" as path for root
makes more sense than sending "root'"
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
Dominik Csapak [Tue, 16 Feb 2021 17:06:52 +0000 (18:06 +0100)]
api2/admin/datastore: refactor list_dir_content in catalog_reader
we will reuse that later in the client, so we need it somewhere
we can use from there
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
[add strongly typed ArchiveEntry and put api code into helpers.rs]
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
Stefan Reiter [Tue, 16 Feb 2021 17:07:02 +0000 (18:07 +0100)]
client: add VsockClient to connect to virtio-vsock VMs
Currently useful only for single file restore, but kept generic enough
to use any compatible API endpoint over a virtio-vsock[0,1] interface.
VsockClient is adapted and slimmed down from HttpClient.
A tower-compatible VsockConnector is implemented, using a wrapped
UnixStream as transfer. The UnixStream has to be wrapped in a custom
struct to implement 'Connection', Async{Read,Write} are simply forwarded
directly to the underlying stream.
[0] https://www.man7.org/linux/man-pages/man7/vsock.7.html
[1] https://wiki.qemu.org/Features/VirtioVsock
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
Stefan Reiter [Tue, 16 Feb 2021 17:07:01 +0000 (18:07 +0100)]
rest: implement tower service for UnixStream
This allows anything that can be represented as a UnixStream to be used
as transport for an API server (e.g. virtio sockets).
A tower service expects an IP address as it's peer, which we can't
reliably provide for unix socket based transports, so just fake one.
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
Dietmar Maurer [Wed, 17 Feb 2021 05:57:29 +0000 (06:57 +0100)]
tape: add regression test for compute_media_state
Dominik Csapak [Tue, 16 Feb 2021 11:48:12 +0000 (12:48 +0100)]
ui: tape/BackupOverview: insert the tapes between media-set and snapshot
but auto-expand them, so no additional click is necessary
this shows the user which tapes are involved for the media sets
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 16 Feb 2021 11:48:11 +0000 (12:48 +0100)]
ui: css: remove vertical align for pbs-tape-icon
and combine the unnecessary duplicate definition
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 16 Feb 2021 11:48:10 +0000 (12:48 +0100)]
ui: tape: improve tape-erase and add it to library view
refactor erase window, limit drives to changer if given
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dietmar Maurer [Tue, 16 Feb 2021 10:05:26 +0000 (11:05 +0100)]
tape: erase_media - automatically load media (with tape libraries).
Dominik Csapak [Tue, 16 Feb 2021 08:35:26 +0000 (09:35 +0100)]
ui: tape/BackupOverview: show mediaset loading error in msg box instead
if a catalog is missing (or the loading otherwise throws an error), show
the error message in a msg box instead of a mask. this way a user can
still navigate the tree
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 16 Feb 2021 08:35:25 +0000 (09:35 +0100)]
ui: tape/TapeInventory: add erase button
to erase the selected tape
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 16 Feb 2021 08:35:24 +0000 (09:35 +0100)]
api2/tape/drive: add optional label-text to erase
if given, erases the tape only iff the inserted tape contains that label
used to safeguard tape erasing from ui for standalone drives
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dietmar Maurer [Tue, 16 Feb 2021 09:14:45 +0000 (10:14 +0100)]
tape: add regression test for alloc_writable_media
Dominik Csapak [Mon, 15 Feb 2021 14:22:23 +0000 (15:22 +0100)]
ui: tape/TapeManagement: change Text of Backup/Tape Inventory
to 'Content' and 'Inventory' respectively
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Mon, 15 Feb 2021 14:22:22 +0000 (15:22 +0100)]
ui: tape/TapeInventory: add 'Add Tape' button
by adapting and reusing the 'LabelMedia' window
shows a short notice about inserting the correct tape in the drive
and now allows to select a drive
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Mon, 15 Feb 2021 14:22:21 +0000 (15:22 +0100)]
ui: tape/TapeInventory: change to regular store
listing the media can potentially hang (changer status), so do not
reload in the background, only on activate
also increase the timeout to 5 minutes and add a reload button
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Mon, 15 Feb 2021 11:18:20 +0000 (12:18 +0100)]
ui: tape/ChangerStatus: use whole drives grid for masking on unload
instead of just the tableview
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Mon, 15 Feb 2021 11:18:19 +0000 (12:18 +0100)]
ui: tape/ChangerStatus: increase timeout for api calls
since tape commands can take a while and we do not want to change
all of those to worker tasks, increase the timeout to 5 minutes
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dietmar Maurer [Mon, 15 Feb 2021 11:17:36 +0000 (12:17 +0100)]
tape: ui - avoid changer status query in backup content panel
Dietmar Maurer [Mon, 15 Feb 2021 10:09:30 +0000 (11:09 +0100)]
tape: implement API to run tape backup jobs
Dietmar Maurer [Mon, 15 Feb 2021 09:39:39 +0000 (10:39 +0100)]
cleanup: tape_backup_job.rs - do not use #[allow(non_camel_case_types)]
Dietmar Maurer [Mon, 15 Feb 2021 07:58:05 +0000 (08:58 +0100)]
tape: fix proxmox-tape pool config command
Dietmar Maurer [Mon, 15 Feb 2021 06:55:13 +0000 (07:55 +0100)]
proxmox-backup-proxy: schedule tape backup jobs
Dietmar Maurer [Mon, 15 Feb 2021 05:57:48 +0000 (06:57 +0100)]
tape: add tape-job.cfg manual page
Dietmar Maurer [Mon, 15 Feb 2021 05:35:45 +0000 (06:35 +0100)]
fix api sort order
Dietmar Maurer [Sun, 14 Feb 2021 09:32:33 +0000 (10:32 +0100)]
tape: add tape backup job configuration
Dietmar Maurer [Sun, 14 Feb 2021 09:33:11 +0000 (10:33 +0100)]
docs: update generated OnlineHelpInfo.js
Thomas Lamprecht [Fri, 12 Feb 2021 12:49:38 +0000 (13:49 +0100)]
docs/barcode: eslint auto-fixes
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Dietmar Maurer [Sat, 13 Feb 2021 09:52:19 +0000 (10:52 +0100)]
docs: update benchmark results
Dietmar Maurer [Sat, 13 Feb 2021 09:33:16 +0000 (10:33 +0100)]
fix build: install proxmox-tape man page
Although we do not install the binary.
Dietmar Maurer [Sat, 13 Feb 2021 09:23:02 +0000 (10:23 +0100)]
docs: fix target refs in user-management.rst
Dietmar Maurer [Sat, 13 Feb 2021 09:16:41 +0000 (10:16 +0100)]
docs: conv.py - add man pages to exclude_patterns
To avoid sphinx warnings.
Dietmar Maurer [Sat, 13 Feb 2021 08:48:21 +0000 (09:48 +0100)]
docs: add proxmox-backup service description
Dietmar Maurer [Sat, 13 Feb 2021 08:34:32 +0000 (09:34 +0100)]
docs: add services.rst to section sysadmin
Dietmar Maurer [Sat, 13 Feb 2021 07:54:23 +0000 (08:54 +0100)]
docs: split out output-format.rst
Dietmar Maurer [Sat, 13 Feb 2021 07:43:54 +0000 (08:43 +0100)]
docs: add short descriptions for main binaries.
Dietmar Maurer [Fri, 12 Feb 2021 17:00:01 +0000 (18:00 +0100)]
tape: generate proxmox-tape.1 manual page
Dietmar Maurer [Fri, 12 Feb 2021 16:45:55 +0000 (17:45 +0100)]
tape: add pmt and pmtx command to tape-backup.rst
Dietmar Maurer [Fri, 12 Feb 2021 12:34:19 +0000 (13:34 +0100)]
lto-barcode: fix page offset calibration
Dietmar Maurer [Fri, 12 Feb 2021 11:18:25 +0000 (12:18 +0100)]
Makefile: fix typo (s/madia-pool/media-pool/)
Dietmar Maurer [Fri, 12 Feb 2021 11:09:08 +0000 (12:09 +0100)]
tape: add manual page for tape.cfg
Dietmar Maurer [Fri, 12 Feb 2021 10:50:56 +0000 (11:50 +0100)]
tape: add manual page for media-pool.cfg
Dietmar Maurer [Fri, 12 Feb 2021 10:30:34 +0000 (11:30 +0100)]
tape: erase_media - automatically erase catalog and inventory
Dominik Csapak [Thu, 11 Feb 2021 15:02:19 +0000 (16:02 +0100)]
ui: tape/BackupOverview: skip tapes without media-set
there is no data on them (yet), even if they belong to a pool
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 11 Feb 2021 13:11:20 +0000 (14:11 +0100)]
ui: tape/TapeInventory: add 'Set Tape Location' button
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 11 Feb 2021 13:11:19 +0000 (14:11 +0100)]
api2/types/tape/media_location: fix deserialization of MediaLocation::Vault
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 11 Feb 2021 13:11:18 +0000 (14:11 +0100)]
api2/tape/media: add 'move' api call
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Thu, 11 Feb 2021 13:11:17 +0000 (14:11 +0100)]
proxmox-tape: change lookup_drive_name to extract_drive_name
in most uses, we want to remove the drive from the param afterwards
where we don't, we already overwrite it with the result of this function
this fixes some commands (like 'proxmox-tape read-label --drive foo')
that failed with:
parameter 'drive': duplicate parameter.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dietmar Maurer [Thu, 11 Feb 2021 13:20:16 +0000 (14:20 +0100)]
docs: add hint how to edit/modify the datastore.cfg file
Dietmar Maurer [Thu, 11 Feb 2021 13:06:44 +0000 (14:06 +0100)]
proxmox-backup-manger verify-job CLI
Add missing command line interface to manage verification jobs.
Dietmar Maurer [Thu, 11 Feb 2021 12:47:01 +0000 (13:47 +0100)]
docs: use type_text for config::acl::Role
The list of roles is simply too long, so we use type_text to generate
reasonable docs.
Dietmar Maurer [Thu, 11 Feb 2021 12:40:11 +0000 (13:40 +0100)]
docs: add manual page for verification.cfg
Dietmar Maurer [Thu, 11 Feb 2021 12:13:34 +0000 (13:13 +0100)]
docs: add manual page for acl.cfg
Dietmar Maurer [Thu, 11 Feb 2021 10:52:37 +0000 (11:52 +0100)]
docs: add manual page fro sysc.cfg
Dietmar Maurer [Thu, 11 Feb 2021 10:51:22 +0000 (11:51 +0100)]
docs: use new type_text option for calendar events
Dietmar Maurer [Thu, 11 Feb 2021 10:31:20 +0000 (11:31 +0100)]
fix proxmox_backup_manager remote list: s/userid/auth-id/
Dietmar Maurer [Thu, 11 Feb 2021 10:25:15 +0000 (11:25 +0100)]
docs: add manukal page for remote.cfg
Dietmar Maurer [Thu, 11 Feb 2021 09:49:16 +0000 (10:49 +0100)]
depend on proxmox 0.10.5
Dietmar Maurer [Wed, 10 Feb 2021 15:37:27 +0000 (16:37 +0100)]
docs: add user.cfg.5 manual page
Dietmar Maurer [Wed, 10 Feb 2021 10:28:56 +0000 (11:28 +0100)]
docs: add "Configuration Files" appendix
Dietmar Maurer [Wed, 10 Feb 2021 09:33:30 +0000 (10:33 +0100)]
docs: add datastore.cfg.5 man page
Dietmar Maurer [Wed, 10 Feb 2021 09:27:40 +0000 (10:27 +0100)]
docs: add utility binary to generate docs
Dietmar Maurer [Wed, 10 Feb 2021 09:39:45 +0000 (10:39 +0100)]
update debian/control
Wolfgang Bumiller [Wed, 3 Feb 2021 09:42:29 +0000 (10:42 +0100)]
tfa: derive WebauthnConfigUpdater via api macro
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Wed, 10 Feb 2021 09:24:36 +0000 (10:24 +0100)]
depend on proxmox 0.10.4