]>
git.proxmox.com Git - proxmox-backup.git/log
Dietmar Maurer [Wed, 17 Jun 2020 06:07:42 +0000 (08:07 +0200)]
avoid compiler warning
Dietmar Maurer [Wed, 17 Jun 2020 05:47:11 +0000 (07:47 +0200)]
src/tools/disks/zfs.rs: cleanup parse_pool_header
Dietmar Maurer [Wed, 17 Jun 2020 05:38:19 +0000 (07:38 +0200)]
src/tools/disks/zfs.rs: add more parser tests
Dietmar Maurer [Wed, 17 Jun 2020 05:14:26 +0000 (07:14 +0200)]
src/tools/disks/zfs.rs: add comment
Dietmar Maurer [Wed, 17 Jun 2020 05:00:54 +0000 (07:00 +0200)]
src/tools/disks/zfs.rs: make zfs list parser private
Dietmar Maurer [Tue, 16 Jun 2020 16:14:35 +0000 (18:14 +0200)]
src/tools/disks/zfs.rs: add regression tests for parse_zfs_list
Dietmar Maurer [Tue, 16 Jun 2020 15:51:17 +0000 (17:51 +0200)]
src/tools/disks/zfs.rs: simplify code
Wolfgang Bumiller [Tue, 16 Jun 2020 12:41:28 +0000 (14:41 +0200)]
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>
Dominik Csapak [Tue, 16 Jun 2020 09:13:34 +0000 (11:13 +0200)]
ui: add DiskList and DirectoryList
this also contains an adapted CreateDirectory window
for now this is mostly copied, since refactoring was not that
straightforward (changed parameters, etc.)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dietmar Maurer [Tue, 16 Jun 2020 11:35:21 +0000 (13:35 +0200)]
src/api2/node/disks.rs: expose directory api
Wolfgang Bumiller [Tue, 16 Jun 2020 11:32:23 +0000 (13:32 +0200)]
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>
Dietmar Maurer [Tue, 16 Jun 2020 11:24:22 +0000 (13:24 +0200)]
src/api2/node/disks/zfs.rs: add zpool api
Dietmar Maurer [Tue, 16 Jun 2020 11:21:26 +0000 (13:21 +0200)]
src/tools/disks/zfs.rs: cleanup (rename usage properties)
And allow to parse zpool list output without -v flag.
Dietmar Maurer [Tue, 16 Jun 2020 09:47:10 +0000 (11:47 +0200)]
src/tools/disks/zfs.rs: parse more infos (dedup, fragmentation, health)
Dietmar Maurer [Tue, 16 Jun 2020 07:46:06 +0000 (09:46 +0200)]
avoid compiler warnings
Dietmar Maurer [Tue, 16 Jun 2020 05:53:23 +0000 (07:53 +0200)]
use new run_command helper
Wolfgang Bumiller [Tue, 16 Jun 2020 09:25:54 +0000 (11:25 +0200)]
catalog: don't panic on invalid file mtimes
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 16 Jun 2020 09:25:31 +0000 (11:25 +0200)]
fix file timestamps in catalog
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 16 Jun 2020 09:04:56 +0000 (11:04 +0200)]
pxar: fix missing subdirectories in catalogs
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 16 Jun 2020 08:54:54 +0000 (10:54 +0200)]
reuse some extractor code in catalog shell
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 16 Jun 2020 08:33:14 +0000 (10:33 +0200)]
use O_EXCL when creating files during extraction
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 16 Jun 2020 08:32:13 +0000 (10:32 +0200)]
pxar: make extractor state more reusable
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 16 Jun 2020 07:50:29 +0000 (09:50 +0200)]
AsyncReadChunk: require Send
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 15 Jun 2020 08:37:03 +0000 (10:37 +0200)]
require pxar 0.1.7
fixes some hardlink reading issues in random-accessor
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Mon, 15 Jun 2020 08:38:30 +0000 (10:38 +0200)]
src/tools.rs: add setup_safe_path_env()
Dietmar Maurer [Mon, 15 Jun 2020 08:00:55 +0000 (10:00 +0200)]
src/api2/node/disks/directory.rs: implement add-datastore feature
Wolfgang Bumiller [Mon, 15 Jun 2020 07:19:35 +0000 (09:19 +0200)]
dynamic index: make it hard to mess up endianess
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 12 Jun 2020 12:57:58 +0000 (14:57 +0200)]
remove unnecessary .into
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dominik Csapak [Fri, 12 Jun 2020 11:34:07 +0000 (13:34 +0200)]
ui: Dashboard: implement subscription panel
and make it nicer
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dominik Csapak [Fri, 12 Jun 2020 11:34:06 +0000 (13:34 +0200)]
ui: Dashboard: show LongestTask/RunningTask/TaskSummary
by querying the new /status/task api every 15 seconds
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
[w.bumiller@proxmox.com: fixup from d.csapak@proxmox.com]
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dominik Csapak [Fri, 12 Jun 2020 11:34:05 +0000 (13:34 +0200)]
ui: add Task Panels for dashboard
LongestTasks:
grid that shows tasks sorted by duration in descending order
RunningTasks:
grid that shows all running tasks
TaskSummary:
an overview of backup,prune,gc and sync tasks (error/warning/ok)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dominik Csapak [Fri, 12 Jun 2020 11:34:04 +0000 (13:34 +0200)]
ui: css: improve look of fa icons
with these changes fa icons in actioncolumns,
they have the same layout as <i> elements on the same line
(they were slightly bigger and offset before)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dominik Csapak [Fri, 12 Jun 2020 11:34:03 +0000 (13:34 +0200)]
api2/status: add task list endpoint
for now mostly copy/paste from nodes/nodename/tasks
(without the parameters)
but we should replace the 'read_task_list' with a method
that gives us the tasks since some timestamp
so that we can get a longer list of tasks than for the node
(we could of course embed this then in the nodes/node/task api call and
remove this again as long as the api is not stable)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dominik Csapak [Fri, 12 Jun 2020 11:34:02 +0000 (13:34 +0200)]
implement From<TaskListInfo> for TaskListItem
and use it where its convenient
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 12 Jun 2020 11:57:56 +0000 (13:57 +0200)]
use new Mmap helper for dynamic index
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 12 Jun 2020 11:57:35 +0000 (13:57 +0200)]
bump proxmox dep to 0.1.40
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 12 Jun 2020 09:46:42 +0000 (11:46 +0200)]
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>
Wolfgang Bumiller [Fri, 12 Jun 2020 09:40:18 +0000 (11:40 +0200)]
client: make dump_image async, use async chunk reader
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 12 Jun 2020 09:38:21 +0000 (11:38 +0200)]
add an AsyncReadChunk trait
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 12 Jun 2020 09:01:04 +0000 (11:01 +0200)]
more cleanup
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 12 Jun 2020 08:59:34 +0000 (10:59 +0200)]
cleanup
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 12 Jun 2020 08:51:36 +0000 (10:51 +0200)]
pxar, acl: cleanup acl helper usage
use NixPath for Acl::set_file to avoid memduping the c
string
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dominik Csapak [Fri, 12 Jun 2020 08:04:59 +0000 (10:04 +0200)]
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>
Dominik Csapak [Wed, 10 Jun 2020 12:57:39 +0000 (14:57 +0200)]
BackupEnvironment: do not set finished flag prematurely
we check if all dynamic_writers are closed and if the backup contains
any valid files, we can only mark the backup finished after those
checks, else the backup task gets marked as OK, even though it
is not finished and no cleanups run
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 12 Jun 2020 08:36:57 +0000 (10:36 +0200)]
pxar: fcaps in fuse
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dominik Csapak [Wed, 10 Jun 2020 10:02:58 +0000 (12:02 +0200)]
api2/status: use new rrd::extract_cached_data
and drop the now unused extract_lists function
this also fixes a bug, where we did not add the datastore to the list at
all when there was no rrd data
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dominik Csapak [Wed, 10 Jun 2020 10:02:57 +0000 (12:02 +0200)]
rrd: move creation of serde value into api
there is now a 'extract_cached_data' which just returns
the data of the specified field, and an api function that converts
a list of fields to the correct serde value
this way we do not have to create a serde value in rrd/cache.rs
(makes for a better interface)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dominik Csapak [Wed, 10 Jun 2020 10:02:56 +0000 (12:02 +0200)]
refactor time functions to tools
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 10 Jun 2020 10:22:18 +0000 (12:22 +0200)]
pxar: support .pxareclude files, error report updates
Report vanished files (instead of erroring out on them),
also only warn about files inaccessible due to permissions
instead of bailing out.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 10 Jun 2020 09:09:23 +0000 (11:09 +0200)]
downgrade some FIXMEs to TODOs
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Wed, 10 Jun 2020 09:03:42 +0000 (11:03 +0200)]
turn pxar::flags into bitflags, pxar::Flags
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Wed, 10 Jun 2020 09:02:37 +0000 (11:02 +0200)]
add api to format disks and create datastores
Wolfgang Bumiller [Wed, 10 Jun 2020 08:42:24 +0000 (10:42 +0200)]
catalog: remove unused SenderWriter
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Wed, 10 Jun 2020 06:54:41 +0000 (08:54 +0200)]
src/tools/systemd.rs: implement daemon_reload, start_unit, stop_unit and enable_unit
Wolfgang Bumiller [Wed, 10 Jun 2020 06:53:09 +0000 (08:53 +0200)]
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>
Wolfgang Bumiller [Wed, 10 Jun 2020 06:49:14 +0000 (08:49 +0200)]
pxar: sort .pxareclude-cli file and fix its mode
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Wed, 10 Jun 2020 05:16:47 +0000 (07:16 +0200)]
src/tools.rs: add new run_command helper
Dietmar Maurer [Tue, 9 Jun 2020 16:46:27 +0000 (18:46 +0200)]
src/tools/systemd/types.rs: add Mount config
Wolfgang Bumiller [Tue, 9 Jun 2020 11:57:24 +0000 (13:57 +0200)]
statistics: covariance(): avoid allocation
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 9 Jun 2020 11:17:55 +0000 (13:17 +0200)]
pxar: create .pxarexclude-cli file
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dominik Csapak [Tue, 9 Jun 2020 08:01:14 +0000 (10:01 +0200)]
ui: add datastore usages to dashboard
shows an overview over the datastores, including a small chart of the
past month and an estimation of when its full
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 9 Jun 2020 08:01:13 +0000 (10:01 +0200)]
api2: add status/datastore-usages api call
returns a list of the datastores and their usages, a list of usages of
the past month (for the gui) and an estimation of when its full
(using the linear regression)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 9 Jun 2020 08:01:12 +0000 (10:01 +0200)]
add statistics module
provides some basic statistics functions (sum, mean, etc.)
and a function to return the parameters of the linear regression of
two variables
implemented using num_traits to be more flexible for the types
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 9 Jun 2020 08:01:11 +0000 (10:01 +0200)]
rrd: add 'extract_lists'
this is an interface to simply get the Vec<Option<f64>> out of rrd
without going through serde values
we return a list of timestamps and a HashMap with the lists we could find
(otherwise it is not in the map)
if no lists could be extracted, the time list is also empty
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 9 Jun 2020 08:01:10 +0000 (10:01 +0200)]
ui: show root disk usage
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Dominik Csapak [Tue, 9 Jun 2020 08:01:09 +0000 (10:01 +0200)]
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>
Dietmar Maurer [Tue, 9 Jun 2020 09:52:06 +0000 (11:52 +0200)]
src/tools/systemd.rs: implement escape_unit and unescape_unit
Wolfgang Bumiller [Tue, 9 Jun 2020 09:16:28 +0000 (11:16 +0200)]
Cargo.toml: readd commented-out proxmox crate via path for convenience
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Tue, 9 Jun 2020 08:49:43 +0000 (10:49 +0200)]
move src/pxar.rs -> src/pxar/mod.rs
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Mon, 8 Jun 2020 15:37:00 +0000 (17:37 +0200)]
src/tools/disks.rs: add create_single_linux_partition and create_file_system
Dietmar Maurer [Mon, 8 Jun 2020 15:27:13 +0000 (17:27 +0200)]
cleanup comment
Dietmar Maurer [Mon, 8 Jun 2020 15:26:23 +0000 (17:26 +0200)]
src/tools/disks.rs: add get_fs_uuid helper
Dietmar Maurer [Mon, 8 Jun 2020 10:17:15 +0000 (12:17 +0200)]
src/tools/disks.rs: add helper to list partitions
Dietmar Maurer [Mon, 8 Jun 2020 09:19:55 +0000 (11:19 +0200)]
src/tools/disks.rs: make helpers pub
So that I can use them with my test code.
Wolfgang Bumiller [Mon, 8 Jun 2020 13:02:52 +0000 (15:02 +0200)]
pxar: split assert_relative_path
the check for a single component is only required in the dir
stack atm
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Mon, 23 Mar 2020 14:03:18 +0000 (15:03 +0100)]
switch to external pxar and fuse crates
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Thu, 23 Apr 2020 10:26:14 +0000 (12:26 +0200)]
Cargo.toml: pathpatterns, pxar, proxmox-fuse
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 24 Apr 2020 09:28:03 +0000 (11:28 +0200)]
xattr: make xattr_name_fcaps public
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Wolfgang Bumiller [Fri, 22 May 2020 08:55:31 +0000 (10:55 +0200)]
tools: add file_get_non_comment_lines
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Dietmar Maurer [Mon, 8 Jun 2020 07:43:07 +0000 (09:43 +0200)]
src/tools/disks.rs: cleanup, remove unused DiskUse bitflag type
Dietmar Maurer [Mon, 8 Jun 2020 07:01:34 +0000 (09:01 +0200)]
src/tools/disks.rs: use dev_t to index zfs/lvm device sets
Dietmar Maurer [Mon, 8 Jun 2020 05:35:44 +0000 (07:35 +0200)]
proxmox_backup_manager disk list: display gpt column
Dietmar Maurer [Mon, 8 Jun 2020 05:23:04 +0000 (07:23 +0200)]
src/tools/disks/zfs.rs: allow empty zpool list output
Dietmar Maurer [Mon, 8 Jun 2020 05:22:06 +0000 (07:22 +0200)]
src/tools/disks.rs: new helper to reread partition table
Dietmar Maurer [Mon, 8 Jun 2020 05:20:59 +0000 (07:20 +0200)]
src/api2/node/disks.rs: correctly use disk_by_name insteadf of disk_by_node
Dietmar Maurer [Sun, 7 Jun 2020 08:30:34 +0000 (10:30 +0200)]
src/api2/node/disks.rs: implement initgpt API
Dietmar Maurer [Sun, 7 Jun 2020 05:15:15 +0000 (07:15 +0200)]
src/api2/types.rs: define BLOCKDEVICE_NAME_SCHEMA
Dietmar Maurer [Sat, 6 Jun 2020 13:48:15 +0000 (15:48 +0200)]
src/config/acl.rs: add /system/disks to valid acl paths
Dietmar Maurer [Sat, 6 Jun 2020 13:40:28 +0000 (15:40 +0200)]
src/bin/proxmox-backup-manager.rs: add disk subcommand
Dietmar Maurer [Sat, 6 Jun 2020 13:39:25 +0000 (15:39 +0200)]
src/tools/disks.rs: fix disk size, add completion helper
Dietmar Maurer [Sat, 6 Jun 2020 12:43:36 +0000 (14:43 +0200)]
move disks api to /node/<node>/disks
Dietmar Maurer [Sat, 6 Jun 2020 10:23:11 +0000 (12:23 +0200)]
src/api2/disks.rs: implement smart api
Dietmar Maurer [Sat, 6 Jun 2020 10:22:38 +0000 (12:22 +0200)]
src/tools/disks.rs: new helper disk_by_name()
Dietmar Maurer [Sat, 6 Jun 2020 09:48:58 +0000 (11:48 +0200)]
src/api2/disks.rs - list-disks: add usage-type filter
Dietmar Maurer [Sat, 6 Jun 2020 09:38:47 +0000 (11:38 +0200)]
src/api2/disks.rs: start disks api
Dietmar Maurer [Sat, 6 Jun 2020 09:37:24 +0000 (11:37 +0200)]
src/tools/disks.rs: use api macro so that we can use those types with the api
Dietmar Maurer [Sat, 6 Jun 2020 07:18:20 +0000 (09:18 +0200)]
src/tools/disks.rs - get_disks: query smart status
Dietmar Maurer [Sat, 6 Jun 2020 07:05:22 +0000 (09:05 +0200)]
src/tools/disks/smart.rs: use model.to_string_lossy() to simplify code
Dietmar Maurer [Sat, 6 Jun 2020 07:01:15 +0000 (09:01 +0200)]
src/tools/disks/smart.rs: try to get correct wearout for ATA devices
Dietmar Maurer [Sat, 6 Jun 2020 06:23:59 +0000 (08:23 +0200)]
src/tools/disks/smart.rs - get_smart_data: use &Disk instead of &str
So that we can query other device infos easily (model, vendor, ..)