]>
git.proxmox.com Git - proxmox-backup.git/log
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
Dietmar Maurer [Sat, 5 Dec 2020 10:59:38 +0000 (11:59 +0100)]
tape: add media pool config
Dietmar Maurer [Sat, 5 Dec 2020 09:54:38 +0000 (10:54 +0100)]
tape: add tape read trait
Dietmar Maurer [Sat, 5 Dec 2020 09:51:34 +0000 (10:51 +0100)]
tape: add tape write trait
Dietmar Maurer [Sat, 5 Dec 2020 09:45:08 +0000 (10:45 +0100)]
tape: add file format definitions
Dietmar Maurer [Fri, 4 Dec 2020 15:00:16 +0000 (16:00 +0100)]
commit missing file: tape api type definitions
Dietmar Maurer [Fri, 4 Dec 2020 14:42:32 +0000 (15:42 +0100)]
tape support: add drive configuration
Dietmar Maurer [Fri, 4 Dec 2020 11:50:08 +0000 (12:50 +0100)]
start experimental tape management GUI
You need to set the environment TEST_TAPE_GUI=1 to enable this.
The current GUI is only a placeholder.
Dominik Csapak [Wed, 2 Dec 2020 14:55:19 +0000 (15:55 +0100)]
backup/datastore: move manifest locking to /run
this fixes the issue that on some filesystems, you cannot recursively
remove a directory when you hold a lock on a file inside (e.g. nfs/cifs)
it is not really backwards compatible (so during an upgrade, there
could be two daemons have the lock), but since the locking was
broken before (see previous patch) it should not really matter
(also it seems very unlikely that someone will trigger this)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Wed, 2 Dec 2020 13:19:56 +0000 (14:19 +0100)]
backup/datastore: really lock manifest on delete
'lock_manifest' returns a Result<File, Error> so we always got the result,
even when we did not get the lock, but we acted like we had.
bubble the locking error up
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 1 Dec 2020 14:01:48 +0000 (15:01 +0100)]
client/pull: log how many groups to pull were found
if no groups were found, the task log was very confusing as it
contained no real information why nothing was synced, e.g.:
Starting datastore sync job 'remote:datastore:local-datastore:s-
79412799 -e6ee'
Sync datastore 'local-datastore' from 'remote/datastore'
sync job 'remote:datastore:local-datastore:s-
79412799 -e6ee' end
TASK OK
this patch simply logs how many groups were found and are about to be synced:
Starting datastore sync job 'remote:datastore:local-datastore:s-
79412799 -e6ee'
Sync datastore 'local-datastore' from 'remote/datastore'
found 0 groups to sync
sync job 'remote:datastore:local-datastore:s-
79412799 -e6ee' end
TASK OK
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dietmar Maurer [Tue, 1 Dec 2020 09:28:06 +0000 (10:28 +0100)]
docs: add more thoughts about chunk size
Dietmar Maurer [Tue, 1 Dec 2020 07:47:15 +0000 (08:47 +0100)]
doc: add some thoughts about large chunk sizes
Dietmar Maurer [Tue, 1 Dec 2020 05:34:33 +0000 (06:34 +0100)]
cleanup: use extra file for StoreProgress
Dietmar Maurer [Tue, 1 Dec 2020 05:29:11 +0000 (06:29 +0100)]
cleanup: remove unnecessary StoreProgress clone()
Fabian Grünbichler [Mon, 30 Nov 2020 15:27:21 +0000 (16:27 +0100)]
verify: use same progress as pull
percentage of verified groups, interpolating based on snapshot count
within the group. in most cases, this will also be closer to 'real'
progress since added snapshots (those which will be verified) in active
backup groups will be roughly evenly distributed, while number of total
snapshots per group will be heavily skewed towards those groups which
have existed the longest, even though most of those old snapshots will
only be re-verified very infrequently.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Mon, 30 Nov 2020 15:27:20 +0000 (16:27 +0100)]
progress: add format variants
for iterating over a single group, or iterating just on the group level
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Mon, 30 Nov 2020 15:27:19 +0000 (16:27 +0100)]
pull: factor out interpolated progress
and add group/snapshot count info.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Mon, 30 Nov 2020 15:27:18 +0000 (16:27 +0100)]
remove BackupGroup::list_groups
BackupInfo::list_backup_groups is identical code-wise, and makes more
sense as entry point for listing groups.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Mon, 30 Nov 2020 15:22:20 +0000 (16:22 +0100)]
gc: don't limit index listing to same filesystem
WalkDir does not follow symlinks by default anyway, and this behaviour
is not documented anywhere. e.g., if a sysadmin mounts 'extra storage'
for some backup group or type (not knowing that only metadata is stored
in those directories), GC will ignore all the indices contained within
and happily garbage collect their chunks..
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Mon, 30 Nov 2020 15:22:19 +0000 (16:22 +0100)]
gc: remove duplicate variable
list_images already returns absolute paths, we don't need to prepend
anything.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Mon, 30 Nov 2020 15:22:18 +0000 (16:22 +0100)]
gc: log index files found outside of expected scheme
for safety reason, GC finds and marks all index files below the
datastore base path. as a result of regular operations, only index files
within the expected scheme of <TYPE>/<ID>/<TIMESTAMP> should exist.
add a small check + warning if the index list contains index files out
side of this expected scheme, so that an admin with shell access can
investigate.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Mon, 30 Nov 2020 15:22:17 +0000 (16:22 +0100)]
gc: shorten progress messages
we have messages starting the phases anyway, and limit the number of
progress updates so that context remains available at all times.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Wolfgang Bumiller [Mon, 30 Nov 2020 13:28:02 +0000 (14:28 +0100)]
d/control bump
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 30 Nov 2020 13:13:21 +0000 (14:13 +0100)]
file logger: remove test.log after test as well
and a doc formatting fixup
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 30 Nov 2020 13:08:57 +0000 (14:08 +0100)]
derive PartialEq for Userid
the manual implementation is equivalent
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 30 Nov 2020 13:03:43 +0000 (14:03 +0100)]
tiny clippy hint
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 30 Nov 2020 12:56:58 +0000 (13:56 +0100)]
don't enforce Vec and String in tools::join
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 30 Nov 2020 12:56:21 +0000 (13:56 +0100)]
minor cleanup
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 30 Nov 2020 12:53:49 +0000 (13:53 +0100)]
tools avoid unnecessary copying of parameters/properties
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 30 Nov 2020 12:44:46 +0000 (13:44 +0100)]
minor cleanups
whitespace, formatting and superfluous lifetime annotations
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 30 Nov 2020 10:10:32 +0000 (11:10 +0100)]
network helpers: fix fd leak in get_network_interfaces
This one always leaked.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 30 Nov 2020 09:58:26 +0000 (10:58 +0100)]
use fd_change_cloexec helper
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 30 Nov 2020 09:49:43 +0000 (10:49 +0100)]
minor cleanup
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 30 Nov 2020 09:49:18 +0000 (10:49 +0100)]
pxar: stricter file descriptor guards
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 30 Nov 2020 09:48:34 +0000 (10:48 +0100)]
client: use tools::pipe instead of nix
nix::unistd::pipe returns unguarded RawFds which should be
avoided
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 30 Nov 2020 08:53:59 +0000 (09:53 +0100)]
changes for proxmox 0.8
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 30 Nov 2020 10:25:26 +0000 (11:25 +0100)]
bump proxmox dep to 0.8.0
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dominik Csapak [Thu, 26 Nov 2020 08:27:31 +0000 (09:27 +0100)]
ui: fix usage of findRecord
findRecord does not match exactly, but only at the beginning and
case insensitive, by default. Change all calls to be case sensitive
and an exactmatch (we never want the default behaviour afaics).
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Thomas Lamprecht [Wed, 25 Nov 2020 14:29:54 +0000 (15:29 +0100)]
bump version to 1.0.5-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Fabian Grünbichler [Wed, 25 Nov 2020 13:28:51 +0000 (14:28 +0100)]
restore: print to STDERR
else restoring to STDOUT is broken..
Reported-by: Dominic Jäger <d.jaeger@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Dietmar Maurer [Wed, 25 Nov 2020 09:35:51 +0000 (10:35 +0100)]
control: update versions
Dietmar Maurer [Wed, 25 Nov 2020 05:38:16 +0000 (06:38 +0100)]
bump version to 1.0.4-1
Dietmar Maurer [Wed, 25 Nov 2020 07:02:34 +0000 (08:02 +0100)]
docs: fix renamed commands
Dietmar Maurer [Wed, 25 Nov 2020 06:06:55 +0000 (07:06 +0100)]
cli: rename command "upload-log" to "snapshot upload-log"
Dietmar Maurer [Wed, 25 Nov 2020 05:51:23 +0000 (06:51 +0100)]
cli: rename command "forget" to "snapshot forget"
Dietmar Maurer [Wed, 25 Nov 2020 05:47:18 +0000 (06:47 +0100)]
cli: rename command "files" to "snapshot files"
Dietmar Maurer [Wed, 25 Nov 2020 06:56:37 +0000 (07:56 +0100)]
fingerprint: add new() method
Fabian Grünbichler [Tue, 24 Nov 2020 13:05:19 +0000 (14:05 +0100)]
fingerprint: add bytes() accessor
needed for libproxmox-backup-qemu0
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Thomas Lamprecht [Tue, 24 Nov 2020 23:21:04 +0000 (00:21 +0100)]
ui: fix broken gettext use
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Dietmar Maurer [Tue, 24 Nov 2020 12:01:06 +0000 (13:01 +0100)]
cli: use new alias feature for "snapshots"
Now maps to "snapshot list".
Dominik Csapak [Tue, 24 Nov 2020 09:09:29 +0000 (10:09 +0100)]
client: add 'snapshot notes show/update' command
to show and update snapshot notes from the cli
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Thomas Lamprecht [Tue, 24 Nov 2020 07:56:18 +0000 (08:56 +0100)]
bump version to 1.0.3-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Fabian Grünbichler [Fri, 20 Nov 2020 16:38:43 +0000 (17:38 +0100)]
gui: add snapshot/file fingerprint tooltip
display short key ID, like backend's Display trait.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Fri, 20 Nov 2020 16:38:42 +0000 (17:38 +0100)]
list_snapshots: return manifest fingerprint
for display in clients.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Fri, 20 Nov 2020 16:38:41 +0000 (17:38 +0100)]
refactor BackupInfo -> SnapshotListItem helper
before adding more fields to the tuple, let's just create the struct
inside the match arms to improve readability.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Fri, 20 Nov 2020 16:38:40 +0000 (17:38 +0100)]
expose previous backup time in backup env
and use this information to add more information to client backup log
and guide the download manifest decision.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Thomas Lamprecht [Tue, 24 Nov 2020 07:32:09 +0000 (08:32 +0100)]
bump version to 1.0.2-1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Fabian Grünbichler [Mon, 23 Nov 2020 09:57:16 +0000 (10:57 +0100)]
verification: fix message in notification mail
the errors Vec can contain failed groups as well (e.g., if a group has
no or an invalid owner).
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Mon, 23 Nov 2020 09:57:15 +0000 (10:57 +0100)]
verification job: log failed dirs
else users have to manually search through a potentially very long task
log to find the entries that are different.. this is the same summary
printed at the end of a manual verify task.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Dietmar Maurer [Tue, 24 Nov 2020 07:03:00 +0000 (08:03 +0100)]
cleanup: remove dead code
Fabian Grünbichler [Fri, 20 Nov 2020 16:38:38 +0000 (17:38 +0100)]
paperkey: refactor common code
from formatting functions to main function, and pass along the key data
lines instead of the full string.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Fri, 20 Nov 2020 16:38:37 +0000 (17:38 +0100)]
client: check fingerprint after downloading manifest
this is stricter than the check that happened on manifest load, as it
also fails if the manifest is signed but we don't have a key available.
add some additional output at the start of a backup to indicate whether
a previous manifest is available to base the backup on.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Fabian Grünbichler [Fri, 20 Nov 2020 16:38:36 +0000 (17:38 +0100)]
manifest: check fingerprint when loading with key
otherwise loading will run into the signature mismatch which is
technically true, but not the complete picture in this case.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>