]> git.proxmox.com Git - proxmox-backup.git/log
proxmox-backup.git
3 years agoapi2/status: use the TaskListInfoIterator here
Dominik Csapak [Mon, 28 Sep 2020 13:32:10 +0000 (15:32 +0200)]
api2/status: use the TaskListInfoIterator here

this means that limiting with epoch now works correctly
also change the api type to i64, since that is what the starttime is
saved as

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
3 years agoapi2/node/tasks: use TaskListInfoIterator instead of read_task_list
Dominik Csapak [Mon, 28 Sep 2020 13:32:09 +0000 (15:32 +0200)]
api2/node/tasks: use TaskListInfoIterator instead of read_task_list

this makes the filtering/limiting much nicer and readable

since we now have potentially an 'infinite' amount of tasks we iterate over,
and cannot now beforehand how many there are, we return the total count
as always 1 higher then requested iff we are not at the end (this is
the case when the amount of entries is smaller than the requested limit)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
3 years agoserver/worker_task: add TaskListInfoIterator
Dominik Csapak [Mon, 28 Sep 2020 13:32:08 +0000 (15:32 +0200)]
server/worker_task: add TaskListInfoIterator

this is an iterator that reads/parses/updates the task list as
necessary and returns the tasks in descending order (newest first)

it does this by using our logrotate iterator and using a vecdeque

we can use this to iterate over all tasks, even if they are in the
archive and even if the archive is logrotated but only read
as much as we need

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
3 years agoserver/worker_task: write older tasks into archive file
Dominik Csapak [Mon, 28 Sep 2020 13:32:07 +0000 (15:32 +0200)]
server/worker_task: write older tasks into archive file

instead of removing tasks beyond the 1000 that are in the index
write them into an archive file by appending them at the end
this way we can later still read them

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
3 years agoserver/worker_task: split task list file into two
Dominik Csapak [Mon, 28 Sep 2020 13:32:06 +0000 (15:32 +0200)]
server/worker_task: split task list file into two

one for only the active tasks and one for up to 1000 finished tasks

factor out the parsing of a task file (we will later need this again)
and use iterator combinators for easier code

we now sort the tasks ascending (this will become important in a later patch)
but reverse (for now) it to keep compatibility

this code also omits the converting into an intermittent hash
since it cannot really happen that we have duplicate tasks in this list
(since the call is locked by an flock, and it is the only place where we
write into the lists)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
3 years agoserver/worker_task: refactor locking of the task list
Dominik Csapak [Mon, 28 Sep 2020 13:32:05 +0000 (15:32 +0200)]
server/worker_task: refactor locking of the task list

also add the functionality of having a 'shared' (read) lock for the list
we will need this later

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
3 years agotools: add logrotate module
Dominik Csapak [Mon, 28 Sep 2020 13:32:04 +0000 (15:32 +0200)]
tools: add logrotate module

this is a helper to rotate and iterate over log files
there is an iterator for open filehandles as well as
only the filename

also it has the possibilty to rotate them
for compression, zstd is used

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
3 years agoproxmox_backup_client key: allow to generate paperkey for master key
Dietmar Maurer [Tue, 29 Sep 2020 06:19:33 +0000 (08:19 +0200)]
proxmox_backup_client key: allow to generate paperkey for master key

3 years agoproxmox_backup_client key: add new paper-key command
Dietmar Maurer [Mon, 28 Sep 2020 15:40:12 +0000 (17:40 +0200)]
proxmox_backup_client key: add new paper-key command

3 years agoparallel_handler: clippy: 'while_let_loop'
Wolfgang Bumiller [Mon, 28 Sep 2020 07:53:43 +0000 (09:53 +0200)]
parallel_handler: clippy: 'while_let_loop'

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
3 years agoparallel_handler: explicit Arc::clone
Wolfgang Bumiller [Mon, 28 Sep 2020 07:44:37 +0000 (09:44 +0200)]
parallel_handler: explicit Arc::clone

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
3 years agoparallel_handler: formatting cleanup, doc comment typo fixup
Wolfgang Bumiller [Mon, 28 Sep 2020 07:43:03 +0000 (09:43 +0200)]
parallel_handler: formatting cleanup, doc comment typo fixup

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
3 years agodepend on proxmox 0.4.2
Dietmar Maurer [Mon, 28 Sep 2020 08:50:44 +0000 (10:50 +0200)]
depend on proxmox 0.4.2

3 years agoserver/worker_task: factor out task list rendering
Dominik Csapak [Fri, 25 Sep 2020 14:13:19 +0000 (16:13 +0200)]
server/worker_task: factor out task list rendering

we will need this later again

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
3 years agoapi2/node/tasks: move userfilter to function signature
Dominik Csapak [Fri, 25 Sep 2020 14:13:17 +0000 (16:13 +0200)]
api2/node/tasks: move userfilter to function signature

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
3 years agosrc/tools/parallel_handler.rs: remove unnecessary Sync bound
Dietmar Maurer [Sat, 26 Sep 2020 14:13:44 +0000 (16:13 +0200)]
src/tools/parallel_handler.rs: remove unnecessary Sync bound

3 years agosrc/bin/proxmox_backup_client/benchmark.rs: avoid compiler warning
Dietmar Maurer [Sat, 26 Sep 2020 14:13:19 +0000 (16:13 +0200)]
src/bin/proxmox_backup_client/benchmark.rs: avoid compiler warning

3 years agosrc/backup/verify.rs: use ParallelHandler to verify chunks
Dietmar Maurer [Sat, 26 Sep 2020 09:14:37 +0000 (11:14 +0200)]
src/backup/verify.rs: use ParallelHandler to verify chunks

3 years agosrc/backup/verify.rs: cleanup use clause
Dietmar Maurer [Sat, 26 Sep 2020 08:23:44 +0000 (10:23 +0200)]
src/backup/verify.rs: cleanup use clause

3 years agosrc/client/pull.rs: simplify code
Dietmar Maurer [Sat, 26 Sep 2020 08:09:51 +0000 (10:09 +0200)]
src/client/pull.rs: simplify code

3 years agosrc/tools/parallel_handler.rs: remove static lifetime bound from handler_fn
Dietmar Maurer [Sat, 26 Sep 2020 07:22:50 +0000 (09:22 +0200)]
src/tools/parallel_handler.rs: remove static lifetime bound from handler_fn

3 years agosrc/tools/parallel_handler.rs: join all threads in drop handler
Dietmar Maurer [Sat, 26 Sep 2020 06:26:14 +0000 (08:26 +0200)]
src/tools/parallel_handler.rs: join all threads in drop handler

3 years agosrc/tools/parallel_handler.rs: remove unnecessary Sync trait bound
Dietmar Maurer [Sat, 26 Sep 2020 05:37:46 +0000 (07:37 +0200)]
src/tools/parallel_handler.rs: remove unnecessary Sync trait bound

4 years agoui: some more eslint auto-fixes
Thomas Lamprecht [Fri, 25 Sep 2020 16:40:03 +0000 (18:40 +0200)]
ui: some more eslint auto-fixes

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agoui: some more eslint auto-fixes
Thomas Lamprecht [Fri, 25 Sep 2020 16:36:58 +0000 (18:36 +0200)]
ui: some more eslint auto-fixes

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agoui: some more eslint auto-fixes
Thomas Lamprecht [Fri, 25 Sep 2020 16:34:54 +0000 (18:34 +0200)]
ui: some more eslint auto-fixes

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agoui: some eslint auto-fixes
Thomas Lamprecht [Fri, 25 Sep 2020 16:29:42 +0000 (18:29 +0200)]
ui: some eslint auto-fixes

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agobump version to 0.8.21-1 v0.8.21
Dietmar Maurer [Fri, 25 Sep 2020 11:20:35 +0000 (13:20 +0200)]
bump version to 0.8.21-1

4 years agodebian/control: update
Dietmar Maurer [Fri, 25 Sep 2020 11:17:49 +0000 (13:17 +0200)]
debian/control: update

4 years agosrc/client/pull.rs: use new ParallelHandler
Dietmar Maurer [Fri, 25 Sep 2020 10:14:59 +0000 (12:14 +0200)]
src/client/pull.rs: use new ParallelHandler

4 years agosrc/tools/parallel_handler.rs: execute closure inside a thread pool
Dietmar Maurer [Fri, 25 Sep 2020 10:13:06 +0000 (12:13 +0200)]
src/tools/parallel_handler.rs: execute closure inside a thread pool

4 years agodepend on crossbeam-channel
Dietmar Maurer [Fri, 25 Sep 2020 10:11:52 +0000 (12:11 +0200)]
depend on crossbeam-channel

4 years agodocs: html: show "Proxmox Backup" in navi for small devices
Thomas Lamprecht [Thu, 24 Sep 2020 17:59:28 +0000 (19:59 +0200)]
docs: html: show "Proxmox Backup" in navi for small devices

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agodocs: html: improve css for small displays
Thomas Lamprecht [Thu, 24 Sep 2020 17:56:27 +0000 (19:56 +0200)]
docs: html: improve css for small displays

fixed-width navi/toc links were not switched in color for small width
displays, and thus they were barely readable as the background
switches to dark for small widths.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agodocs: buildsys: add more dependencies to html target
Thomas Lamprecht [Thu, 24 Sep 2020 17:45:23 +0000 (19:45 +0200)]
docs: buildsys: add more dependencies to html target

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agodocs: conf: fix conf for new alabaster theme version
Thomas Lamprecht [Thu, 24 Sep 2020 17:44:50 +0000 (19:44 +0200)]
docs: conf: fix conf for new alabaster theme version

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agodocs: html: adapt custom css
Thomas Lamprecht [Thu, 24 Sep 2020 17:43:57 +0000 (19:43 +0200)]
docs: html: adapt custom css

highlighting the current chapter and some other small formatting
improvements

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agodocs: index: hide todo list toctree and genindex
Thomas Lamprecht [Thu, 24 Sep 2020 17:42:26 +0000 (19:42 +0200)]
docs: index: hide todo list toctree and genindex

I do not found another way to disable inclusion in the sidebar...

The genindex information is alredy provided through glossary

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agodocs: html: adapt sidebar in index page
Thomas Lamprecht [Thu, 24 Sep 2020 17:40:28 +0000 (19:40 +0200)]
docs: html: adapt sidebar in index page

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agouse jobstate mechanism for verify/garbage_collection schedules
Dominik Csapak [Thu, 24 Sep 2020 14:13:54 +0000 (16:13 +0200)]
use jobstate mechanism for verify/garbage_collection schedules

also changes:
* correct comment about reset (replace 'sync' with 'action')
* check schedule change correctly (only when it is actually changed)

with this changes, we can drop the 'lookup_last_worker' method

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
4 years agoproxy: fix error handling in prune scheduling
Dominik Csapak [Thu, 24 Sep 2020 14:13:53 +0000 (16:13 +0200)]
proxy: fix error handling in prune scheduling

we rely on the jobstate handling to write the error of the worker
into its state file, but we used '?' here in a block which does not
return the error to the block, but to the function/closure instead

so if a prune job failed because of such an '?', we did not write
into the statefile and got a wrong state there

instead use our try_block! macro that wraps the code in a closure

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
4 years agobump version to 0.8.20-1
Dietmar Maurer [Thu, 24 Sep 2020 11:17:06 +0000 (13:17 +0200)]
bump version to 0.8.20-1

4 years agosrc/client/pull.rs: decode, verify and write in a separate threads
Dietmar Maurer [Thu, 24 Sep 2020 10:58:53 +0000 (12:58 +0200)]
src/client/pull.rs: decode, verify and write in a separate threads

To maximize throughput.

4 years agosrc/backup/data_blob.rs: add is_encrypted helper
Dietmar Maurer [Thu, 24 Sep 2020 10:36:04 +0000 (12:36 +0200)]
src/backup/data_blob.rs: add is_encrypted helper

4 years agoremove DummyCatalogWriter
Wolfgang Bumiller [Tue, 22 Sep 2020 06:59:54 +0000 (08:59 +0200)]
remove DummyCatalogWriter

we're using an `Option` instead now

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
4 years agobenchmark: use compressable data to get more realistic result
Dietmar Maurer [Thu, 24 Sep 2020 06:55:48 +0000 (08:55 +0200)]
benchmark: use compressable data to get more realistic result

And add a benchmatrk to test chunk verify speed (decompress+sha256).

4 years agosrc/backup/data_blob.rs: improve decompress speed
Dietmar Maurer [Thu, 24 Sep 2020 06:52:35 +0000 (08:52 +0200)]
src/backup/data_blob.rs: improve decompress speed

4 years agodocs: add onlineHelp to some panels
Oguz Bektas [Mon, 21 Sep 2020 11:25:48 +0000 (13:25 +0200)]
docs: add onlineHelp to some panels

name sections according to the title or content and add
the respective onlineHelp to the following panels:
- datastore
- user management
- ACL
- backup remote

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
Reviewed-By: Dominik Csapak <d.csapak@proxmox.com>
Tested-By: Dominik Csapak <d.csapak@proxmox.com>
4 years agobump version to 0.8.19-1 v0.8.19
Dietmar Maurer [Tue, 22 Sep 2020 11:30:52 +0000 (13:30 +0200)]
bump version to 0.8.19-1

4 years agosrc/api2/reader.rs: use std::fs::read instead of tokio::fs::read
Dietmar Maurer [Tue, 22 Sep 2020 11:27:23 +0000 (13:27 +0200)]
src/api2/reader.rs: use std::fs::read instead of tokio::fs::read

Because it is about 10%& faster this way.

4 years agobump version to 0.8.18-1
Dietmar Maurer [Tue, 22 Sep 2020 10:39:47 +0000 (12:39 +0200)]
bump version to 0.8.18-1

4 years agosrc/client/pull.rs: avoid duplicate downloads using in memory HashSet
Dietmar Maurer [Tue, 22 Sep 2020 10:34:06 +0000 (12:34 +0200)]
src/client/pull.rs: avoid duplicate downloads using in memory HashSet

4 years agosrc/client/pull.rs: allow up to 20 concurrent download streams
Dietmar Maurer [Tue, 22 Sep 2020 07:52:14 +0000 (09:52 +0200)]
src/client/pull.rs: allow up to 20 concurrent download streams

4 years agoremote_chunk_reader.rs: use Arc for cache_hint to make clone faster
Dietmar Maurer [Tue, 22 Sep 2020 07:51:19 +0000 (09:51 +0200)]
remote_chunk_reader.rs: use Arc for cache_hint to make clone faster

4 years agodocs: add version and date to HTML index
Thomas Lamprecht [Mon, 21 Sep 2020 16:25:58 +0000 (18:25 +0200)]
docs: add version and date to HTML index

Similar to the PDF output or the Proxmox VE docs.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agobump version to 0.8.17-1 v0.8.17
Dietmar Maurer [Mon, 21 Sep 2020 12:09:20 +0000 (14:09 +0200)]
bump version to 0.8.17-1

4 years agosrc/client/pull.rs: remove temporary manifest
Dietmar Maurer [Mon, 21 Sep 2020 12:03:01 +0000 (14:03 +0200)]
src/client/pull.rs: remove temporary manifest

4 years agosrc/client/pull.rs: open temporary manifest with truncate(true)
Dietmar Maurer [Mon, 21 Sep 2020 11:53:35 +0000 (13:53 +0200)]
src/client/pull.rs: open temporary manifest with truncate(true)

To delete any data if the file already exists.

4 years agobump proxmox version to 0.4.1
Dietmar Maurer [Mon, 21 Sep 2020 11:51:33 +0000 (13:51 +0200)]
bump proxmox version to 0.4.1

4 years agofix #3017: check array boundaries before using
Dominik Csapak [Mon, 21 Sep 2020 07:12:32 +0000 (09:12 +0200)]
fix #3017: check array boundaries before using

else we panic here

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
4 years agodebian/control: update
Dietmar Maurer [Sat, 19 Sep 2020 14:22:56 +0000 (16:22 +0200)]
debian/control: update

4 years agosrc/backup/chunk_store.rs: disable debug output
Dietmar Maurer [Sat, 19 Sep 2020 13:26:21 +0000 (15:26 +0200)]
src/backup/chunk_store.rs: disable debug output

4 years agosrc/backup/datastore.rs - open_with_path: use Path instead of str
Dietmar Maurer [Sat, 19 Sep 2020 08:01:57 +0000 (10:01 +0200)]
src/backup/datastore.rs - open_with_path: use Path instead of str

4 years agosrc/backup/datastore.rs: new method open_with_path
Dietmar Maurer [Sat, 19 Sep 2020 07:55:21 +0000 (09:55 +0200)]
src/backup/datastore.rs: new method open_with_path

To make testing easier.

4 years agodepend on proxmox 0.4.0
Dietmar Maurer [Sat, 19 Sep 2020 04:40:44 +0000 (06:40 +0200)]
depend on proxmox 0.4.0

4 years agodatastore/prune schedules: use JobState for tracking of schedules
Dominik Csapak [Fri, 18 Sep 2020 14:03:52 +0000 (16:03 +0200)]
datastore/prune schedules: use JobState for tracking of schedules

like the sync jobs, so that if an admin configures a schedule it
really starts the next time that time is reached not immediately

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
4 years agoAdmin Guide: Add some more detailed info throughout
Dylan Whyte [Fri, 18 Sep 2020 13:32:02 +0000 (15:32 +0200)]
Admin Guide: Add some more detailed info throughout

- Mention config files for: datastores, users, acl,
  remotes, syncjobs
- Expand a little bit on SMART and smartmontools package
- Explain acl config
- Include line in network stating why a bond would be set up
- Note the use of ifupdown2 for network config, and the potential
  need to install it on other systems
- Add note to PVE integration, specifying where to refer to for VM and
  CT backups

Signed-off-by: Dylan Whyte <d.whyte@proxmox.com>
4 years agoSmall formatting fix up
Dylan Whyte [Fri, 18 Sep 2020 13:32:00 +0000 (15:32 +0200)]
Small formatting fix up

- Fix permission image.
- Change alt text for ZFS
- Change note block to match the others

Signed-off-by: Dylan Whyte <d.whyte@proxmox.com>
4 years agofix #3015: allow user self-service
Fabian Grünbichler [Fri, 18 Sep 2020 13:01:06 +0000 (15:01 +0200)]
fix #3015: allow user self-service

listing, updating or deleting a user is now possible for the user
itself, in addition to higher-privileged users that have appropriate
privileges on '/access/users'.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
4 years agorole api: fix description
Fabian Grünbichler [Fri, 18 Sep 2020 12:55:00 +0000 (14:55 +0200)]
role api: fix description

wrongly copy-pasted at some point

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
4 years agoadd verification scheduling to proxmox-backup-proxy
Hannes Laimer [Fri, 18 Sep 2020 09:00:52 +0000 (11:00 +0200)]
add verification scheduling to proxmox-backup-proxy

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
4 years agoui: add verify-schedule field to edit datastore form
Hannes Laimer [Fri, 18 Sep 2020 09:00:51 +0000 (11:00 +0200)]
ui: add verify-schedule field to edit datastore form

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
4 years agoapi2: make verify_schedule deletable
Hannes Laimer [Fri, 18 Sep 2020 09:00:50 +0000 (11:00 +0200)]
api2: make verify_schedule deletable

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
4 years agoapi2: add optional verify-schdule field to create/update datastore endpoint
Hannes Laimer [Fri, 18 Sep 2020 09:00:49 +0000 (11:00 +0200)]
api2: add optional verify-schdule field to create/update datastore endpoint

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
4 years agoadd verify_schedule field to DataStoreConfig
Hannes Laimer [Fri, 18 Sep 2020 09:00:48 +0000 (11:00 +0200)]
add verify_schedule field to DataStoreConfig

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
4 years agoapi2: add VERIFY_SCHEDULE_SCHEMA
Hannes Laimer [Fri, 18 Sep 2020 09:00:47 +0000 (11:00 +0200)]
api2: add VERIFY_SCHEDULE_SCHEMA

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
4 years agofix #3014: allow DataStoreAdmins to list DS config
Fabian Grünbichler [Fri, 18 Sep 2020 09:45:11 +0000 (11:45 +0200)]
fix #3014: allow DataStoreAdmins to list DS config

filtered by those they are privileged enough to read individually. this
allows such users to configure prune/GC schedules via the GUI (the API
already allowed it previously).

permission-wise, a user with this privilege can already:
- list all stores they have access to (returns just name/comment)
- read the config of each store they have access to individually
(returns full config of that datastore + digest of whole config)

but combines them to
- read configs of all datastores they have access to (returns full
config of those datastores + digest of whole config)

user that have AUDIT on just /datastore without propagate can now no
longer read all configurations (but this could be added it back, it just
seems to make little sense to me).

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
4 years agodepend on pxar 0.6.1
Dietmar Maurer [Fri, 18 Sep 2020 10:02:17 +0000 (12:02 +0200)]
depend on pxar 0.6.1

4 years agomove compute_file_csum to src/tools.rs
Dietmar Maurer [Thu, 17 Sep 2020 08:27:04 +0000 (10:27 +0200)]
move compute_file_csum to src/tools.rs

4 years agodepend on proxmox 0.3.9
Dietmar Maurer [Thu, 17 Sep 2020 06:45:19 +0000 (08:45 +0200)]
depend on proxmox 0.3.9

4 years agofix #2942: implement lacp bond mode and bond_xmit_hash_policy
Dominik Csapak [Wed, 16 Sep 2020 12:12:30 +0000 (14:12 +0200)]
fix #2942: implement lacp bond mode and bond_xmit_hash_policy

this was not yet implemented, should be compatible with pve and the gui

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
4 years agoapi2/network: add bond-primary parameter
Dominik Csapak [Wed, 16 Sep 2020 12:12:29 +0000 (14:12 +0200)]
api2/network: add bond-primary parameter

needed for 'active-backup' bond mode

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
4 years agoapi2/pull: make pull worker abortable
Dominik Csapak [Tue, 15 Sep 2020 09:15:01 +0000 (11:15 +0200)]
api2/pull: make pull worker abortable

by selecting between the pull_future and the abort future

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
4 years agofix #2870: renew tickets in HttpClient
Dominik Csapak [Tue, 15 Sep 2020 09:15:00 +0000 (11:15 +0200)]
fix #2870: renew tickets in HttpClient

by packing the auth into a RwLock and starting a background
future that renews the ticket every 15 minutes

we still use the BroadcastFuture for the first ticket and only
if that is finished we start the scheduled future

we have to store an abort handle for the renewal future and abort it when
the http client is dropped, so we do not request new tickets forever

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
4 years agoalways allow retrieving (censored) subscription info
Fabian Grünbichler [Wed, 16 Sep 2020 09:51:13 +0000 (11:51 +0200)]
always allow retrieving (censored) subscription info

like we do for PVE. this is visible on the dashboard, and caused 403 on
each update which bothers me when looking at the dev console.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
4 years agofix #2957: allow Sys.Audit access to node RRD
Fabian Grünbichler [Wed, 16 Sep 2020 09:51:12 +0000 (11:51 +0200)]
fix #2957: allow Sys.Audit access to node RRD

this is the same privilege needed to query the node status.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
4 years agodocs: fix epilogs fixme comment
Thomas Lamprecht [Wed, 16 Sep 2020 14:36:20 +0000 (16:36 +0200)]
docs: fix epilogs fixme comment

restructured text comment syntax, i.e., everything it cannot parse is
a comment, is a real PITA!

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agosrc/backup/data_blob.rs: expose verify_crc again
Dietmar Maurer [Wed, 16 Sep 2020 08:43:42 +0000 (10:43 +0200)]
src/backup/data_blob.rs: expose verify_crc again

4 years agoSnapshotVerifyState: use enum for state
Stefan Reiter [Tue, 15 Sep 2020 08:19:23 +0000 (10:19 +0200)]
SnapshotVerifyState: use enum for state

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
4 years agobackup: check all referenced chunks actually exist
Stefan Reiter [Mon, 14 Sep 2020 08:50:19 +0000 (10:50 +0200)]
backup: check all referenced chunks actually exist

A client can omit uploading chunks in the "known_chunks" list, those
then also won't be written on the server side. Check all those chunks
mentioned in the index but not uploaded for existance and report an
error if they don't exist instead of marking a potentially broken backup
as "successful".

This is only important if the base snapshot references corrupted chunks,
but has not been negatively verified. Also, it is important to only
verify this at the end, *after* all index writers are closed, since only
then can it be guaranteed that no GC will sweep referenced chunks away.

If a chunk is found missing, also mark the previous backup with a
verification failure, since we know the missing chunk has to referenced
in it (only way it could have been inserted to known_chunks with
checked=false). This has the benefit of automatically doing a
full-upload backup if the user attempts to retry after seeing the new
error, instead of requiring a manual verify or forget.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
4 years agobackup: check verify state of previous backup before allowing reuse
Stefan Reiter [Mon, 14 Sep 2020 08:50:18 +0000 (10:50 +0200)]
backup: check verify state of previous backup before allowing reuse

Do not allow clients to reuse chunks from the previous backup if it has
a failed validation result. This would result in a new "successful"
backup that potentially references broken chunks.

If the previous backup has not been verified, assume it is fine and
continue on.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
4 years agorename BackupDir::new_with_group to BackupDir::with_group
Dietmar Maurer [Tue, 15 Sep 2020 07:40:03 +0000 (09:40 +0200)]
rename BackupDir::new_with_group to BackupDir::with_group

4 years agosrc/backup/backup_info.rs: new BackupDir::with_rfc3339
Dietmar Maurer [Tue, 15 Sep 2020 07:34:46 +0000 (09:34 +0200)]
src/backup/backup_info.rs: new BackupDir::with_rfc3339

4 years agodebian/control: update
Dietmar Maurer [Tue, 15 Sep 2020 07:33:38 +0000 (09:33 +0200)]
debian/control: update

4 years agoavoid chrono dependency, depend on proxmox 0.3.8
Dietmar Maurer [Sat, 12 Sep 2020 13:10:47 +0000 (15:10 +0200)]
avoid chrono dependency, depend on proxmox 0.3.8

- remove chrono dependency

- depend on proxmox 0.3.8

- remove epoch_now, epoch_now_u64 and epoch_now_f64

- remove tm_editor (moved to proxmox crate)

- use new helpers from proxmox 0.3.8
  * epoch_i64 and epoch_f64
  * parse_rfc3339
  * epoch_to_rfc3339_utc
  * strftime_local

- BackupDir changes:
  * store epoch and rfc3339 string instead of DateTime
  * backup_time_to_string now return a Result
  * remove unnecessary TryFrom<(BackupGroup, i64)> for BackupDir

- DynamicIndexHeader: change ctime to i64

- FixedIndexHeader: change ctime to i64

4 years agowww/OnlineHelpInfo.js: update for syncjobs
Dietmar Maurer [Sat, 12 Sep 2020 13:10:08 +0000 (15:10 +0200)]
www/OnlineHelpInfo.js: update for syncjobs

4 years agodebian/control: update hyper dependency
Dietmar Maurer [Fri, 11 Sep 2020 14:03:38 +0000 (16:03 +0200)]
debian/control: update hyper dependency

4 years agobump version to 0.8.16-1 v0.8.16
Dietmar Maurer [Fri, 11 Sep 2020 13:55:37 +0000 (15:55 +0200)]
bump version to 0.8.16-1

4 years agoBackupDir: make constructor fallible
Fabian Grünbichler [Fri, 11 Sep 2020 12:34:38 +0000 (14:34 +0200)]
BackupDir: make constructor fallible

since converting from i64 epoch timestamp to DateTime is not always
possible. previously, passing invalid backup-time from client to server
(or vice-versa) panicked the corresponding tokio task. now we get proper
error messages including the invalid timestamp.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
4 years agohandle invalid mtime when formating entries
Fabian Grünbichler [Fri, 11 Sep 2020 12:34:37 +0000 (14:34 +0200)]
handle invalid mtime when formating entries

otherwise operations like catalog shell panic when viewing pxar archives
containing such entries, e.g. with mtime very far ahead into the future.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>