]>
git.proxmox.com Git - proxmox-backup.git/log
Dietmar Maurer [Sat, 19 Dec 2020 14:13:38 +0000 (15:13 +0100)]
tape: update user docu
Dietmar Maurer [Sat, 19 Dec 2020 10:14:56 +0000 (11:14 +0100)]
tape: start user documentation
Dietmar Maurer [Fri, 18 Dec 2020 15:57:49 +0000 (16:57 +0100)]
cleanup: rename mtfsf into forward_space_count_files
Dietmar Maurer [Fri, 18 Dec 2020 14:32:12 +0000 (15:32 +0100)]
tape: add tape backup api
Dietmar Maurer [Fri, 18 Dec 2020 14:27:44 +0000 (15:27 +0100)]
tape: add PoolWriter
Dietmar Maurer [Fri, 18 Dec 2020 11:10:31 +0000 (12:10 +0100)]
tape: use SnapshotReader to create snapshot archive
Dietmar Maurer [Fri, 18 Dec 2020 11:07:22 +0000 (12:07 +0100)]
tape: fix write_media_set_label - move to correct position
Dominik Csapak [Thu, 17 Dec 2020 14:50:18 +0000 (15:50 +0100)]
tools/daemon: improve reload behaviour
it seems that sometimes, the child process signal gets handled
before the parent process signal. Systemd then ignores the
childs signal (finished reloading) and only after going into
reloading state because of the parent. this will never finish.
Instead, wait for the state to change to 'reloading' after sending
that signal in the parent, an only fork afterwards. This way
we ensure that systemd knows about the reloading before actually trying
to do it.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Tested-By: Fabian Ebner <f.ebner@proxmox.com>
Dietmar Maurer [Fri, 18 Dec 2020 07:14:24 +0000 (08:14 +0100)]
tape: MediaPool::with_config() - remove name parameter
Not required, because config already contains the pool name.
Dietmar Maurer [Fri, 18 Dec 2020 06:44:50 +0000 (07:44 +0100)]
tape: return current_file_number as u64
Dominik Csapak [Thu, 17 Dec 2020 14:33:31 +0000 (15:33 +0100)]
tools/process_locker: Decrement writer count in drop handler
of ProcessLockSharedGuard.
We use a counter to determine if we can unlock the file again, but
we never actually decremented the writer count, so we held the
lock forever.
This fixes the issue that we could not start a garbage collect after
a reload, as long as the old process is still running, even when that
process has no active backup anymore but another long running task
(e.g. file download, terminal, etc.).
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Fabian Grünbichler [Thu, 17 Dec 2020 14:27:45 +0000 (15:27 +0100)]
acl: rustfmt module
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Thu, 17 Dec 2020 14:27:44 +0000 (15:27 +0100)]
acl: reformat privileges
for better readability, and tell rustfmt to leave those definitions
alone.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Thu, 17 Dec 2020 14:27:43 +0000 (15:27 +0100)]
acl: add docs and adapt visibility
document all public things, add some doc links and make some
previously-public things only available for test cases or within the
crate:
previously public, now private:
- AclTreeNode::extract_user_roles (we have extract_roles())
- AclTreeNode::extract_group_roles (same)
- AclTreeNode::delete_group_role (exists on AclTree)
- AclTreeNode::delete_user_role (same)
- AclTreeNode::insert_group_role (same)
- AclTreeNode::insert_user_role (same)
- AclTree::write_config (we have save_config())
- AclTree::load (we have config()/cached_config())
previously public, now crate-internal:
- AclTree::from_raw (only used by tests)
- split_acl_path (used by some test binaries)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Dietmar Maurer [Thu, 17 Dec 2020 12:05:00 +0000 (13:05 +0100)]
tape: add helper to read snapshot contents
- lock the snapshot for reading
- use openat to open files
- provides an iterator over all chunks
Fabian Grünbichler [Thu, 17 Dec 2020 09:53:21 +0000 (10:53 +0100)]
KeyConfig: bail on wrong fingerprint
instead of just logging the error. this should never happen in practice
unless someone is messing with the keyfile, in which case, it's better
to abort.
update tests accordingly (wrong fingerprint should fail, no fingerprint
should get the expected one).
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Dietmar Maurer [Thu, 17 Dec 2020 07:28:47 +0000 (08:28 +0100)]
tape: add code to write backup snapshot files (without chunks) to tape
Dietmar Maurer [Thu, 17 Dec 2020 07:04:56 +0000 (08:04 +0100)]
tape: cleanup MediaCatalog
Fabian Grünbichler [Wed, 16 Dec 2020 13:41:11 +0000 (14:41 +0100)]
KeyConfig: always calculate fingerprint
and warn if stored and calculated fingerprint don't match.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Wed, 16 Dec 2020 13:41:10 +0000 (14:41 +0100)]
KeyConfig: add encrypt/decrypt test
the RSA key and the encryption key itself are hard-coded to avoid
stalling the test runs because of lack of entropy, they have no special
significance otherwise.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Wed, 16 Dec 2020 13:41:09 +0000 (14:41 +0100)]
docs: replace openssl command with client
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Wed, 16 Dec 2020 13:41:08 +0000 (14:41 +0100)]
client: add 'import-with-master-key' command
to import an encrypted encryption key using a master key.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Wed, 16 Dec 2020 13:41:07 +0000 (14:41 +0100)]
key: move RSA-encryption to KeyConfig
since that is what gets encrypted, and not a CryptConfig.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Wed, 16 Dec 2020 13:41:06 +0000 (14:41 +0100)]
fix #3197: skip fingerprint check when restoring key
when restoring an encrypted key, the original one is obviously not
available to check the fingerprint with.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Wed, 16 Dec 2020 13:41:05 +0000 (14:41 +0100)]
master key: store blob name in constant
since we will use it in more than one place.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Dietmar Maurer [Wed, 16 Dec 2020 12:27:53 +0000 (13:27 +0100)]
tape: remove MediaLabelInfo, use MediaId instead
The additional content_uuid was quite useless...
Thomas Lamprecht [Wed, 16 Dec 2020 12:13:31 +0000 (13:13 +0100)]
update pxar dependency to 0.6.2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Dietmar Maurer [Wed, 16 Dec 2020 11:43:51 +0000 (12:43 +0100)]
tape: improve docu
Dietmar Maurer [Wed, 16 Dec 2020 11:23:52 +0000 (12:23 +0100)]
tape: improve docu
Dietmar Maurer [Wed, 16 Dec 2020 11:08:34 +0000 (12:08 +0100)]
tape: add chunk archive reader/writer
Dietmar Maurer [Wed, 16 Dec 2020 09:45:58 +0000 (10:45 +0100)]
tape: cleanup MediaLocation type for direct use with API
Thomas Lamprecht [Wed, 16 Dec 2020 09:08:08 +0000 (10:08 +0100)]
docs: prune-sim: folluwp: add missing semicolon
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Dietmar Maurer [Wed, 16 Dec 2020 07:59:27 +0000 (08:59 +0100)]
tape: add magic number to identify media catalog files
Fabian Ebner [Mon, 14 Dec 2020 15:04:53 +0000 (15:04 +0000)]
prune sim: correctly keep track of already included backups
This needs to happen in a separate loop, because some time intervals are not
subsets of others, i.e. weeks and months. Previously, with a daily backup
schedule, having:
* a backup on Sun, 06 Dec 2020 kept by keep-daily
* a backup on Sun, 29 Nov 2020 kept by keep-weekly
would lead to the backup on Mon, 30 Nov 2020 to be selected for keep-monthly,
because the iteration did not yet reach the backup on Sun, 29 Nov 2020 that
would mark November as being covered.
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
Thomas Lamprecht [Tue, 15 Dec 2020 12:45:36 +0000 (13:45 +0100)]
followup: use arrow function for sorting
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Fabian Ebner [Tue, 15 Dec 2020 12:01:33 +0000 (13:01 +0100)]
prune sim: fix #3192: by fixing usage of sort()
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
Dietmar Maurer [Tue, 15 Dec 2020 12:13:44 +0000 (13:13 +0100)]
tape: add MediaCatalog implementation
Dietmar Maurer [Mon, 14 Dec 2020 16:37:16 +0000 (17:37 +0100)]
tape: rename DriveLabel to MediaLabel
Dietmar Maurer [Mon, 14 Dec 2020 16:29:57 +0000 (17:29 +0100)]
tape: improve file format docu
Dietmar Maurer [Mon, 14 Dec 2020 15:56:26 +0000 (16:56 +0100)]
tape: minor code cleanup
Dietmar Maurer [Mon, 14 Dec 2020 12:16:18 +0000 (13:16 +0100)]
tape: scan - print more debug info
Dietmar Maurer [Mon, 14 Dec 2020 11:55:49 +0000 (12:55 +0100)]
tape: implement scan command (useful for debug)
Dietmar Maurer [Mon, 14 Dec 2020 08:56:59 +0000 (09:56 +0100)]
tape: implement eod cli command (debug tool)
Dietmar Maurer [Mon, 14 Dec 2020 08:30:32 +0000 (09:30 +0100)]
tape: rename cli 'media media-destroy' toö 'media destroy'
Dietmar Maurer [Mon, 14 Dec 2020 07:58:40 +0000 (08:58 +0100)]
tape: implement destroy_media
Dietmar Maurer [Mon, 14 Dec 2020 06:55:57 +0000 (07:55 +0100)]
tape: add media api
Dietmar Maurer [Mon, 14 Dec 2020 06:14:24 +0000 (07:14 +0100)]
tape: make changer get_status async
Dietmar Maurer [Sun, 13 Dec 2020 08:31:02 +0000 (09:31 +0100)]
tape: split api type definitions for changers into extra file
Dietmar Maurer [Sun, 13 Dec 2020 08:22:08 +0000 (09:22 +0100)]
tape: rename CHANGER_ID_SCHEMA to CHANGER_NAME_SCHEMA
Dietmar Maurer [Sun, 13 Dec 2020 08:18:16 +0000 (09:18 +0100)]
tape: rename DRIVE_ID_SCHEMA to DRIVE_NAME_SCHEMA
Dietmar Maurer [Sat, 12 Dec 2020 08:58:47 +0000 (09:58 +0100)]
tape: correctly call Async handler in proxmox-tape
Dietmar Maurer [Sat, 12 Dec 2020 08:45:08 +0000 (09:45 +0100)]
tape: avoid executor blocking in changer api
Dietmar Maurer [Sat, 12 Dec 2020 08:20:04 +0000 (09:20 +0100)]
tape: avoid executor blocking in drive API
By using tokio::task::spawn_blocking().
Thomas Lamprecht [Fri, 11 Dec 2020 11:58:14 +0000 (12:58 +0100)]
bump version to 1.0.6-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Fri, 11 Dec 2020 13:18:37 +0000 (14:18 +0100)]
debian: just install whole images directory
fixes build for recently added tape icon (and includes it for real)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Dietmar Maurer [Fri, 11 Dec 2020 12:02:23 +0000 (13:02 +0100)]
tape: add svg icon
Dietmar Maurer [Fri, 11 Dec 2020 10:15:58 +0000 (11:15 +0100)]
tape: use WorkerTask for erase and rewind
Dietmar Maurer [Fri, 11 Dec 2020 09:42:29 +0000 (10:42 +0100)]
tape: split inventory api
inventory: sync, list labels with uuids,
update_inventory: WorkerTask, updates database
Dietmar Maurer [Fri, 11 Dec 2020 08:10:22 +0000 (09:10 +0100)]
tape: run label commands as WorkerTask (threads)
Dietmar Maurer [Fri, 11 Dec 2020 06:50:19 +0000 (07:50 +0100)]
tape: implement barcode-label-mdedia
Dietmar Maurer [Fri, 11 Dec 2020 06:39:28 +0000 (07:39 +0100)]
tape: implement inventory command
Dietmar Maurer [Fri, 11 Dec 2020 05:38:45 +0000 (06:38 +0100)]
depend on package mt-st
We do not use the mt utility directly, but the package also provides
an udev helper to correctly initialize tape drives (stinit). Also,
the mt utility is helpful for debugging tap issues.
Oguz Bektas [Thu, 10 Dec 2020 15:42:09 +0000 (16:42 +0100)]
control.in: fix indentation
Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
Dietmar Maurer [Thu, 10 Dec 2020 12:40:20 +0000 (13:40 +0100)]
fix build: add missing file
Dietmar Maurer [Thu, 10 Dec 2020 12:20:39 +0000 (13:20 +0100)]
tape: implement read-label command
Dietmar Maurer [Thu, 10 Dec 2020 11:30:27 +0000 (12:30 +0100)]
tape: implement label command
Dietmar Maurer [Thu, 10 Dec 2020 10:41:35 +0000 (11:41 +0100)]
tape: add media pool handling
Dietmar Maurer [Thu, 10 Dec 2020 10:08:29 +0000 (11:08 +0100)]
tape: add media pool cli
Dietmar Maurer [Thu, 10 Dec 2020 09:52:27 +0000 (10:52 +0100)]
tape: add media pool config api
Dietmar Maurer [Thu, 10 Dec 2020 09:09:12 +0000 (10:09 +0100)]
tape: correctly sort drive api subdir
Dietmar Maurer [Thu, 10 Dec 2020 08:09:06 +0000 (09:09 +0100)]
tape: implement option changer-drive-id
Dietmar Maurer [Thu, 10 Dec 2020 07:35:11 +0000 (08:35 +0100)]
tape: cli cleanup - avoid api redefinition
Dietmar Maurer [Thu, 10 Dec 2020 07:25:46 +0000 (08:25 +0100)]
tape: implement delete property for drive update command
Dietmar Maurer [Thu, 10 Dec 2020 07:04:55 +0000 (08:04 +0100)]
tape: cleanup load-slot api
Dietmar Maurer [Thu, 10 Dec 2020 06:58:45 +0000 (07:58 +0100)]
tape: cli cleanup - rename scana-for-* into scan
Dietmar Maurer [Thu, 10 Dec 2020 06:52:56 +0000 (07:52 +0100)]
tape: implement load-media command
Dietmar Maurer [Wed, 9 Dec 2020 16:50:48 +0000 (17:50 +0100)]
tape: implement eject
Dietmar Maurer [Wed, 9 Dec 2020 16:43:38 +0000 (17:43 +0100)]
tape: implement rewind
Dietmar Maurer [Wed, 9 Dec 2020 16:35:31 +0000 (17:35 +0100)]
tape: implement erase media
Dietmar Maurer [Wed, 9 Dec 2020 11:58:43 +0000 (12:58 +0100)]
tape: add command line interface proxmox-tape
Dietmar Maurer [Wed, 9 Dec 2020 11:55:54 +0000 (12:55 +0100)]
tape: do not remove changer while still used
Dietmar Maurer [Wed, 9 Dec 2020 11:55:10 +0000 (12:55 +0100)]
tape: add changer property to drive create api
Dietmar Maurer [Wed, 9 Dec 2020 11:02:55 +0000 (12:02 +0100)]
tape: set protected flag for configuration change api methods
Dietmar Maurer [Wed, 9 Dec 2020 10:59:50 +0000 (11:59 +0100)]
client: move connect_to_localhost into client module
Dietmar Maurer [Wed, 9 Dec 2020 09:16:01 +0000 (10:16 +0100)]
tape: add media state database
Dietmar Maurer [Wed, 9 Dec 2020 10:19:50 +0000 (11:19 +0100)]
update control file
Wolfgang Bumiller [Wed, 9 Dec 2020 09:54:38 +0000 (10:54 +0100)]
remove unused descriptions from api macros
these are now a hard error in the api macro
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Tue, 8 Dec 2020 14:42:50 +0000 (15:42 +0100)]
tape: expose basic tape/changer functionality at api2/tape/
Dietmar Maurer [Tue, 8 Dec 2020 10:24:38 +0000 (11:24 +0100)]
tape: check digest on config update
Dietmar Maurer [Tue, 8 Dec 2020 08:04:56 +0000 (09:04 +0100)]
tape: add changer configuration API
Dietmar Maurer [Mon, 7 Dec 2020 12:04:32 +0000 (13:04 +0100)]
tape: add tape drive configuration API
Dietmar Maurer [Mon, 7 Dec 2020 07:27:15 +0000 (08:27 +0100)]
tape: add tape device driver
Dietmar Maurer [Sun, 6 Dec 2020 11:09:55 +0000 (12:09 +0100)]
tape: add BlockeReader/BlockedWriter streams
This is the basic format used to write data to tapes.
Dietmar Maurer [Sun, 6 Dec 2020 09:26:24 +0000 (10:26 +0100)]
tape: add BlockHeader impl
Dietmar Maurer [Sun, 6 Dec 2020 08:41:16 +0000 (09:41 +0100)]
tape: add helpers to emulate tape read/write behavior
Dietmar Maurer [Sat, 5 Dec 2020 15:20:29 +0000 (16:20 +0100)]
fix bug #3189: fix change_password permission checks, run protected
Dietmar Maurer [Sat, 5 Dec 2020 13:50:16 +0000 (14:50 +0100)]
depend on mtx (tape changer control)
A very small package with no additional dependencies.
Dietmar Maurer [Sat, 5 Dec 2020 13:46:57 +0000 (14:46 +0100)]
tape: add tape changer support using 'mtx' command
Dietmar Maurer [Sat, 5 Dec 2020 11:53:08 +0000 (12:53 +0100)]
tape: add media invenotry
Dietmar Maurer [Sat, 5 Dec 2020 11:20:46 +0000 (12:20 +0100)]
tape: define useful constants