Wolfgang Bumiller
0351f23ba4
client: introduce --keyfd parameter
...
This is a more convenient way to pass along the key when
creating encrypted backups of unprivileged containers in PVE
where the unprivileged user namespace cannot access
`/etc/pve/priv`.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-07-08 13:56:38 +02:00
Wolfgang Bumiller
05389a0109
more xdg cleanup and encryption parameter improvements
...
Have a single common function to get the BaseDirectories
instance and a wrapper for `find()` and `place()` which
wrap the error with some context.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-07-08 10:57:28 +02:00
Wolfgang Bumiller
b65390ebc9
client: xdg usage: place() vs find()
...
place() is used when creating a file, as it will create
intermediate directories, only use it when actually placing
a new file.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-07-08 10:57:28 +02:00
Dietmar Maurer
3bad3e6e52
src/client/backup_writer.rs - upload_stream: add crypt_mode
2020-07-08 10:43:28 +02:00
Wolfgang Bumiller
24be37e3f6
client: fix schema to include --crypt-mode parameter
...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-07-08 10:09:15 +02:00
Wolfgang Bumiller
af3a0ae7b1
remove CryptMode::sign_only special method
...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-07-08 09:19:53 +02:00
Wolfgang Bumiller
f28d9088ed
introduce a CryptMode enum
...
This also replaces the recently introduced --encryption
parameter on the client with a --crypt-mode parameter.
This can be "none", "encrypt" or "sign-only".
Note that this introduces various changes in the API types
which previously did not take the above distinction into
account properly:
Both `BackupContent` and the manifest's `FileInfo`:
lose `encryption: Option<bool>`
gain `crypt_mode: Option<CryptMode>`
Within the backup manifest itself, the "crypt-mode" property
will always be set.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-07-07 15:24:19 +02:00
Wolfgang Bumiller
96ee857752
client: add --encryption boolen parameter
...
This can be used to explicitly disable encryption even if a
default key file exists in ~/.config.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-07-06 14:36:04 +02:00
Wolfgang Bumiller
887018bb79
client: use default encryption key if it is available
...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-07-06 14:36:04 +02:00
Wolfgang Bumiller
9696f5193b
client: move key management into separate module
...
and use api macro for methods and Kdf type
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-07-06 14:36:04 +02:00
Dietmar Maurer
9de69cdb1a
src/bin/proxmox_backup_client/catalog.rs: split out catalog code
2020-07-03 16:45:47 +02:00
Dietmar Maurer
e9764238df
make ReadChunk not require mutable self.
...
That way we can reduce lock contentions because we lock for much shorter
times.
2020-07-03 07:37:29 +02:00
Dietmar Maurer
cc7995ac40
src/bin/proxmox_backup_client/task.rs: split out task command
2020-07-02 18:04:29 +02:00
Dietmar Maurer
43abba4b4f
src/bin/proxmox_backup_client/mount.rs: split out mount code
2020-07-02 17:49:59 +02:00
Dietmar Maurer
caea8d611f
proxmox-backup-client: add benchmark command
...
This is just a start, We need to add more useful things here...
2020-07-02 14:01:57 +02:00
Dietmar Maurer
b957aa81bd
update backup api for incremental backup
...
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
2020-06-26 07:17:08 +02:00
Dietmar Maurer
355c055e81
src/bin/proxmox-backup-manager.rs: implement verify
2020-06-24 13:35:21 +02:00
Wolfgang Bumiller
a6f8728339
update to pxar 0.1.9, update ReadAt implementations
...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-06-24 11:57:12 +02:00
Dietmar Maurer
d6d3b353be
cleanup: implement FromStr for BackupGroup
2020-06-23 08:16:56 +02:00
Dietmar Maurer
a67f7d0a07
cleanup: implement FromStr for BackupDir
2020-06-23 08:09:52 +02:00
Dietmar Maurer
c8137518fe
src/bin/proxmox_backup_manager/disk.rs: add renderer for wearout
...
So that we display the same value as the GUI.
2020-06-23 07:44:09 +02:00
Dominik Csapak
1c090810f5
api2/admin/datastore/snapshos: show encrypted and size info per file
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-06-19 07:39:56 +02:00
Dominik Csapak
e181d2f6da
add encrypted info to Manifest
...
we want to save if a file of a backup is encrypted, so that we can
* show that info on the gui
* can later decide if we need to decrypt the backup
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-06-19 07:35:39 +02:00
Dietmar Maurer
1aef491e24
src/bin/proxmox_backup_manager/disk.rs: add cli to create mounted disks
2020-06-17 08:07:54 +02:00
Wolfgang Bumiller
8ecd7c9c21
move api dump binaries back to src/bin for package building
...
they're required for docs
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-06-16 14:48:01 +02:00
Wolfgang Bumiller
d19c96d507
move test binaries to examples/
...
These aren't installed and are only used for manual testing,
so there's no reason to force them to be built all the time.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-06-16 13:32:24 +02:00
Dietmar Maurer
929a13b357
src/api2/node/disks/zfs.rs: add zpool api
2020-06-16 13:25:53 +02:00
Dietmar Maurer
ac7513e368
src/tools.rs: add setup_safe_path_env()
2020-06-15 10:38:30 +02:00
Wolfgang Bumiller
3d571d5509
some internal combinator-influenced api cleanup
...
The download methods used to take the destination by value
and return them again, since this was required when using
combinators before we had `async fn`.
But this is just an ugly left-over now.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-06-12 11:46:42 +02:00
Wolfgang Bumiller
8e6e18b77c
client: make dump_image async, use async chunk reader
...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-06-12 11:40:18 +02:00
Wolfgang Bumiller
4d16badf6f
add an AsyncReadChunk trait
...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-06-12 11:38:21 +02:00
Dominik Csapak
5d85847f91
client: only start catalog upload if we have one
...
else we start a dynamic writer and never close it, leading to a backup error
this fixes an issue with backing up vm templates
(and possibly vms without disks)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-06-12 10:38:25 +02:00
Dominik Csapak
e693818afc
refactor time functions to tools
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-06-10 13:31:10 +02:00
Wolfgang Bumiller
5444fa940b
turn pxar::flags into bitflags, pxar::Flags
...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-06-10 11:05:53 +02:00
Wolfgang Bumiller
fc6047fcb1
pxar: don't skip list+found by default
...
This used to be default-off and was accidentally set to
on-by-default with the pxar crate update.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-06-10 08:53:10 +02:00
Wolfgang Bumiller
239e49f927
pxar: create .pxarexclude-cli file
...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-06-09 13:17:59 +02:00
Dominik Csapak
33070956af
let disk_usage return StorageStatus and use it for datastores/nodes
...
disk_usage returned the same values as defined in StorageStatus,
so simply use that
with that we can replace the logic of the datastore status with that
function and also use it for root disk usage of the nodes
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-06-09 12:05:39 +02:00
Wolfgang Bumiller
c443f58b09
switch to external pxar and fuse crates
...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-06-08 13:56:58 +02:00
Dietmar Maurer
dfb31de8f0
proxmox_backup_manager disk list: display gpt column
2020-06-08 07:35:44 +02:00
Dietmar Maurer
707974fdb3
src/api2/node/disks.rs: implement initgpt API
2020-06-07 10:30:34 +02:00
Dietmar Maurer
9069debcd8
src/api2/types.rs: define BLOCKDEVICE_NAME_SCHEMA
2020-06-07 07:20:25 +02:00
Dietmar Maurer
8e40aa63c1
src/bin/proxmox-backup-manager.rs: add disk subcommand
2020-06-06 15:40:28 +02:00
Thomas Lamprecht
a720894ff0
rrd: fix off-by-one in save interval calculation
...
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-06-04 10:30:47 +02:00
Dietmar Maurer
5c264c8d80
src/tools/disks.rs: add/use get_partition_type_info
2020-06-04 07:48:22 +02:00
Dietmar Maurer
c48aa39f3b
src/bin/proxmox-backup-client.rs: implement quite flag
2020-06-03 10:11:37 +02:00
Thomas Lamprecht
2d32fe2c04
client restore: don't add server file ending if already specified
...
If one executes a client command like
# proxmox-backup-client files <snapshot> --repository ...
the files shown have already the '.fidx' or '.blob' file ending, so
if a user would just copy paste that one the client would always add
.blob, and the server would not find that file.
So avoid adding file endings if it is already a known OK one.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-06-03 07:03:55 +02:00
Thomas Lamprecht
dc155e9bd7
client restore: factor out archive/type parsing
...
will be extended in a next patch.
Also drop a dead else branch, can never get hit as we always add
.blob as fallback
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-06-03 07:03:12 +02:00
Thomas Lamprecht
add5861e8d
typo fixes all over the place
...
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-30 16:39:08 +02:00
Dietmar Maurer
b2387eaa45
avoid compiler warnings
2020-05-30 14:05:33 +02:00
Dietmar Maurer
7cc3473a4e
src/client/backup_specification.rs: split code into extra file
2020-05-30 10:54:38 +02:00
Dominik Csapak
c67b1fa72f
syncjob: change worker type for sync jobs
...
'sync' is used for manually pulling a remote datastore
changing it for a scheduled sync to 'syncjob' so that we can
differentiate between both types of syncs
this also adds a seperate task description for it
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-29 11:28:04 +02:00
Dietmar Maurer
934f5bb8ac
src/bin/proxmox-backup-proxy.rs: cleanup, move code to src/tools/disks.rs
...
And simplify find_mounted_device by using stat.st_dev
2020-05-29 11:13:36 +02:00
Dietmar Maurer
013fa7bbcb
rrd: reduce io by saving data only once a minute
2020-05-29 09:16:13 +02:00
Dietmar Maurer
a8d7033cb2
src/bin/proxmox-backup-proxy.rs: add test if last prune job is still running
2020-05-29 08:06:48 +02:00
Dietmar Maurer
04ad7bc436
src/bin/proxmox-backup-proxy.rs: test if last sync job is still running
2020-05-29 08:06:48 +02:00
Dietmar Maurer
dc58194ebe
src/bin/proxmox-backup-proxy.rs: use correct id to lookup sync jobs
2020-05-29 07:50:59 +02:00
Dietmar Maurer
c94e1f655e
rrd stats: improve io delay stats
2020-05-28 19:12:13 +02:00
Dietmar Maurer
91e5bb49f5
src/bin/proxmox-backup-proxy.rs: simplify code
...
and gather all stats for the root disk
2020-05-28 12:30:54 +02:00
Dietmar Maurer
25c550bc28
src/bin/proxmox-backup-proxy.rs: gather zpool io stats
2020-05-28 10:09:13 +02:00
Dominik Csapak
f5056656b2
use the sync id for the scheduled sync worker task
...
this way, multiple sync jobs with the same local store, can get scheduled
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-28 06:26:03 +02:00
Dominik Csapak
8c87743642
fix 'remove_vanished' cli arg again
...
since the target side wants this to be a boolean and
serde interprets a None Value as 'null' we have to only
add this when it is really set via cli
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-28 06:25:30 +02:00
Dominik Csapak
40dc103103
fix cli pull api call
...
there is no 'delete' parameter, only 'remove-vanished', so fix that
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-26 12:39:19 +02:00
Dietmar Maurer
8c03041a2c
src/bin/proxmox-backup-proxy.rs: gather block device stats on datastore
2020-05-26 11:20:59 +02:00
Dietmar Maurer
309ef20d6d
src/bin/proxmox-backup-proxy.rs: simplify code
2020-05-25 16:20:32 +02:00
Dietmar Maurer
d0833a70f7
src/bin/proxmox-backup-proxy.rs: gather datastore usage stats
2020-05-25 16:20:32 +02:00
Dietmar Maurer
2c66a590c0
src/bin/proxmox-backup-proxy.rs: gather iowait stats
2020-05-25 11:54:15 +02:00
Dietmar Maurer
485841da2c
src/bin/proxmox-backup-proxy.rs: gather loadavg stats
2020-05-25 11:40:20 +02:00
Dietmar Maurer
dd15c0aa3b
src/bin/proxmox-backup-proxy.rs: gather root disk stats
2020-05-25 11:10:07 +02:00
Dietmar Maurer
c25c9d8dd1
src/bin/proxmox-backup-proxy.rs: gather swap usage stats
2020-05-25 10:25:58 +02:00
Dietmar Maurer
4f9513996c
src/bin/proxmox-backup-proxy.rs: use block_in_place for rrd update
2020-05-25 08:30:59 +02:00
Dietmar Maurer
8f0cec2642
src/bin/proxmox-backup-proxy.rs: gather netin/netout stats
2020-05-24 19:02:35 +02:00
Dietmar Maurer
4fb05fde17
src/rrd/rrd.rs: restructure whole code
2020-05-24 16:51:28 +02:00
Dietmar Maurer
a4a3f7ca5e
rrd: pack multiple rrd values into th estat list
2020-05-23 14:03:44 +02:00
Dietmar Maurer
eaeda365e0
start gathering stats using new rrd module
2020-05-23 10:43:08 +02:00
Dietmar Maurer
07ad6470ca
src/client/pull.rs: split out pull related code
2020-05-22 08:04:20 +02:00
Dietmar Maurer
a6160cdfeb
src/bin/proxmox-backup-proxy.rs: schedule sync jobs
2020-05-22 07:50:59 +02:00
Dietmar Maurer
a3016d6583
proxmox-backup-manager: add sync-job cli
2020-05-21 11:44:45 +02:00
Dietmar Maurer
b29d046e89
proxmox-backup-manager: split out cert.rs
2020-05-21 11:22:20 +02:00
Dietmar Maurer
380bd7df97
proxmox-backup-manager: split out datastore.rs
2020-05-21 11:14:34 +02:00
Dietmar Maurer
ea6f404e55
proxmox-backup-manager: split out dns.rs
2020-05-21 11:10:58 +02:00
Dietmar Maurer
a35a211d9e
proxmox-backup-manager: split out network.rs
2020-05-21 11:08:38 +02:00
Dietmar Maurer
53e14507c1
proxmox-backup-manager: split out acl.rs
2020-05-21 10:56:46 +02:00
Dietmar Maurer
6fa39e53e0
proxmox-backup-manager: split out users.rs
2020-05-21 10:53:06 +02:00
Dietmar Maurer
a220a4564a
roxmox-backup-manager: start splitting command into several files
2020-05-21 10:46:07 +02:00
Dietmar Maurer
c681885227
src/bin/proxmox-backup-manager.rs: format output of show commands
2020-05-20 16:47:37 +02:00
Dominik Csapak
ce55db66d6
proxmox-backup-manager: add show command for remote and datastore
...
to show the data for a single item
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-20 16:33:07 +02:00
Dietmar Maurer
25829a879b
src/bin/proxmox-backup-proxy.rs: schedule prune jobs
2020-05-20 13:00:53 +02:00
Dietmar Maurer
dd7a7eae8f
src/bin/proxmox-backup-manager.rs: add completion helper for gc-schedule
2020-05-20 09:42:51 +02:00
Dietmar Maurer
8545480a31
src/bin/proxmox-backup-proxy.rs: add simple task scheduler for garbage collection
2020-05-20 08:59:45 +02:00
Dietmar Maurer
e8d1da6a15
depend on proxmox 0.1.31 - use Value to store result metadata
2020-05-18 09:57:35 +02:00
Dietmar Maurer
65dab0266c
proxmox-backup-manager: add completion helper for port list
2020-05-08 17:28:04 +02:00
Dietmar Maurer
525008f7ad
proxmox-backup-manager - network list: render ports/slaves
...
And render interface name as first comumn.
2020-05-08 16:07:23 +02:00
Dietmar Maurer
86a5d56c4e
proxmox-backup-manager: add network create command
2020-05-08 09:55:56 +02:00
Dietmar Maurer
7b22acd0c2
src/config/network.rs: make it compatible with pve
...
and depend on proxmox 0.1.26
2020-05-07 09:28:25 +02:00
Dietmar Maurer
74f7240b8d
src/bin/proxmox-backup-client.rs: add human readable date to prune list
2020-05-05 07:33:58 +02:00
Dietmar Maurer
db1e061dcb
src/bin/proxmox-backup-client.rs: correctly format prune result list.
2020-05-05 06:45:37 +02:00
Dietmar Maurer
b080583ba8
src/bin/proxmox-backup-manager.rs: improve user list output
2020-05-01 16:22:50 +02:00
Dominik Csapak
f9e3b1104e
change index to templates using handlebars
...
using a handlebars instance in ApiConfig, to cache the templates
as long as possible, this is currently ok, as the index template
can only change when the whole package changes
if we split this in the future, we have to trigger a reload of
the daemon on gui package upgrade (so that the template gets reloaded)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-29 17:05:53 +02:00
Dietmar Maurer
bc0d03885c
use proxmox 0.1.25, use new EnumEntry feature
2020-04-29 13:01:24 +02:00
Dietmar Maurer
14627d671a
src/bin/proxmox-backup-manager.rs: add dns sub command
...
Also improved the DNS api, added a --delete option.
2020-04-26 08:23:23 +02:00