Dietmar Maurer
d1a5ffdf78
src/tools/systemd/tm_editor.rs: new helper class
2020-05-16 10:09:41 +02:00
Dietmar Maurer
99baf7afcc
CalendarEvent: test and fix repeated values
2020-05-16 07:43:51 +02:00
Dietmar Maurer
fed270bf3f
CalendarEvent: speedup/simplify repetition tests
2020-05-16 07:09:53 +02:00
Dietmar Maurer
e05b637c73
src/tools/systemd/parse_time.rs: move parser into separate file
2020-05-16 06:53:15 +02:00
Dietmar Maurer
2ee6b3fdb9
src/tools/systemd/time.rs: implement compute_next_event
2020-05-16 06:33:03 +02:00
Dietmar Maurer
f3a96b2cdb
renamed: src/tools/systemd/parser.rs -> src/tools/systemd/config.rs
2020-05-16 06:32:28 +02:00
Dietmar Maurer
a260c74a12
src/tools/systemd/time.rs: add helpers to compute CalendarEvents
2020-05-15 17:55:54 +02:00
Dietmar Maurer
30f577248b
src/api2/node/time.rs: avoid custom unsafe readlink implementations
2020-05-15 06:50:07 +02:00
Dietmar Maurer
00491c0230
src/tools/systemd/parser.rs: use different setups for service and timer files, code cleanup
2020-05-14 13:55:13 +02:00
Dietmar Maurer
2ebdbac1c4
depend on nom, add parser for systemd calendar enents and time span
2020-05-14 12:18:30 +02:00
Dietmar Maurer
f486e9e50e
add systemd configuration file parser/writer, start job configuration
2020-05-12 13:07:49 +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
5bef0f43da
src/config/network.rs - check_bridge_ports: correctly check vlan ports
2020-05-08 15:51:47 +02:00
Dietmar Maurer
0f6bdbb01f
src/config/network.rs - write_config: add more consistency checks
2020-05-08 14:31:38 +02:00
Dietmar Maurer
a4ccb46176
src/config/network.rs: avoid duplicate port usage
2020-05-08 11:15:00 +02:00
Dietmar Maurer
80bf084876
src/config/network.rs: do not combine entries
...
It is unclear when and how to write combined entries ...
2020-05-08 10:20:57 +02:00
Dietmar Maurer
db5672e83e
src/config/network.rs: always write bridge_ports and bond_slaves
...
So that we can reliable detect the interface type.
2020-05-08 09:58:03 +02:00
Dietmar Maurer
86a5d56c4e
proxmox-backup-manager: add network create command
2020-05-08 09:55:56 +02:00
Dietmar Maurer
3dd27a3bf8
src/api2/node/network.rs: add protected flag to revert
2020-05-08 09:30:25 +02:00
Dietmar Maurer
3aedb73816
src/api2/node/network.rs: pass bridge_ports and slaves a property strings
...
To make it compatible with pve.
2020-05-08 08:49:17 +02:00
Dietmar Maurer
bab5d18c3d
src/config/network.rs: implement bond_mode
...
and rename bond_slaves to slaves to make it compatible with pve.
2020-05-07 14:07:45 +02:00
Dietmar Maurer
c2ffc68554
src/api2/node/network.rs: cleanup - factor out check_duplicate_gateway
2020-05-07 11:26:30 +02:00
Dietmar Maurer
9651833130
src/api2/node/network.rs: allow to create bridge and bond
2020-05-07 11:09:12 +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
5751e49566
src/server/worker_task.rs: implement and use status command
2020-05-07 09:27:33 +02:00
Dietmar Maurer
197de83ffa
src/server/command_socket.rs: do not abort loop on client errors, allow backup gid
2020-05-07 09:27:33 +02:00
Wolfgang Bumiller
10effc9849
add tools/disks.rs (work in progress...)
...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-05-05 10:14:42 +02:00
Dietmar Maurer
99641a6bbb
garbage_collect: call fail_on_abort to abort GV when requested.
2020-05-05 09:06:34 +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
Dietmar Maurer
ed751dc2ab
src/api2/node/status.rs: rework api, implement reboot and shutdown
2020-04-30 11:52:40 +02:00
Dietmar Maurer
ca9dfe5fa4
src/api2/node/tasks.rs: use api macro features for default values
2020-04-30 11:51:56 +02:00
Dietmar Maurer
720af9f69b
src/api2/node/tasks.rs: allow users to list/access there own tasks
2020-04-30 10:05:50 +02:00
Dietmar Maurer
f1490da82a
use resonable acl paths (fixup)
2020-04-30 09:32:13 +02:00
Dietmar Maurer
74c08a5782
use reasonable acl paths
2020-04-30 09:30:00 +02:00
Dietmar Maurer
bd88dc4116
cached_config: avoid parsing non-existent files multiple times
2020-04-30 07:04:23 +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
b9f2f761bb
avoid problems with missing acl.cfg and user.cfg
2020-04-29 10:40:42 +02:00
Dietmar Maurer
30fb602578
src/api2/admin/datastore.rs - get_datastore_list: only return name and comment
...
We dont want to leak the full configuration to users with limited access permission.
Please use the api2::config::datastore api to get the full configuration.
2020-04-29 09:21:34 +02:00
Dietmar Maurer
0a00f6e01c
src/api2/config/datastore.rs_ add delete property to update method
2020-04-29 09:09:59 +02:00
Dietmar Maurer
30003baaa4
src/api2/config/remote.rs: fix white space
2020-04-29 09:09:39 +02:00
Dietmar Maurer
5211705ff1
src/api2/config/remote.rs: add delete parameter to update method
2020-04-29 09:04:17 +02:00
Dietmar Maurer
ec67af9af3
src/api2/pull.rs: require Datastore.Prune if delete flag is set.
2020-04-29 07:19:32 +02:00
Dietmar Maurer
8247db5b39
src/config/acl.rs: introduice privileges and roles for remotes
2020-04-29 07:03:44 +02:00
Dietmar Maurer
409f44247b
fix api2::types::ACL_ROLE_SCHEMA
...
make sure we list all roles ...
2020-04-28 13:25:02 +02:00
Dietmar Maurer
dd335b77f5
src/config/acl.rs - fix regression tests
2020-04-28 11:16:15 +02:00
Dietmar Maurer
6f6aa95abb
add Datastore.Backup, Datastore.PowerUser and Datastore.Reader role
2020-04-28 11:07:25 +02:00
Dietmar Maurer
54552dda59
implemnt backup ownership, improve datastore access permissions
2020-04-28 10:22:25 +02:00
Dietmar Maurer
1347b1152d
src/config/cached_user_info.rs - lookup_privs: correctly handle superuser
2020-04-27 13:22:03 +02:00
Dietmar Maurer
d00e1a216f
src/config/acl.rs: introduce more/better datastore privileges
2020-04-27 07:13:50 +02:00
Dietmar Maurer
9c7fe29dfc
src/config/acl.rs: rtename PRTIV_DATASTORE_ALLOCATE to PRIV_DATASTORE_MODIFY
2020-04-27 06:50:35 +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
Dietmar Maurer
76227a6acd
src/bin/proxmox-backup-manager.rs: fix node parameter handling
2020-04-25 17:20:22 +02:00
Dietmar Maurer
26d9aebc28
move src/api2/config/network.rs to src/api2/node/network.rs
...
So that we have the same api path for network config as pve.
2020-04-25 17:00:38 +02:00
Dietmar Maurer
1ca540a63b
src/config/network.rs: auto-add lo, and implement a few regression tests
2020-04-24 12:57:11 +02:00
Wolfgang Bumiller
9094186a57
xattr: cleanup: don't use pxar types in the API
...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-04-24 11:23:48 +02:00
Wolfgang Bumiller
27a3decbfe
xattr: api cleanup
...
Make `flistxattr()` return a `ListXAttr` helper which
provides an iterator over `&CStr`.
This exposes the property that xattr names are a
zero-terminated string without simply being an opaque
"byte vector". Using &[u8] as a type here is too lax.
Also let `fgetxattr` take a `CStr`. While this may be a
burden on the caller, we usually already have
zero-terminated strings on the call site. Currently we only
use this method coming from `flistxattr` after all.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-04-24 10:56:52 +02:00
Wolfgang Bumiller
9af76ef075
xattr: use checked_mul to increase size
...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-04-24 10:56:52 +02:00
Wolfgang Bumiller
00ec8d1685
tools: pub use Fd from proxmox crate
...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-04-24 10:56:52 +02:00
Dietmar Maurer
fd7c0979b4
src/bin/proxmox-backup-manager.rs: implement netwerk revert
2020-04-24 10:45:49 +02:00
Dietmar Maurer
c67bc9c35c
src/bin/proxmox-backup-manager.rs: new command to show pending network changes
2020-04-24 10:27:43 +02:00
Dietmar Maurer
3181f9b625
src/bin/proxmox-backup-manager.rs: only show pending changes with "text" format
2020-04-24 10:16:57 +02:00
Dietmar Maurer
2eefd9aee1
src/config/network.rs: implement network reload, set "changes" attribute
2020-04-24 09:55:46 +02:00
Dietmar Maurer
8a6b86b8a7
src/config/network.rs: use a simple String for comments
2020-04-24 07:46:08 +02:00
Dietmar Maurer
96d9478668
src/config/network/parser.rs: corectly detect vanished interfaces
2020-04-24 07:26:54 +02:00
Dietmar Maurer
10a9be45bd
src/api2/config/network.rs: implement update/delete comments
2020-04-23 16:08:35 +02:00
Dietmar Maurer
5f60a58fd5
src/config/network.rs; support interface comments, cleanups
2020-04-23 15:54:30 +02:00
Dietmar Maurer
659c3be3d5
src/config/network.rs: avoid newline after family options
2020-04-23 11:30:41 +02:00
Dietmar Maurer
5e4e88e83f
src/api2/config/network.rs: implement update/delete for bridge_ports and bond_slaves
2020-04-23 11:21:27 +02:00
Dietmar Maurer
339965d720
src/api2/config/network.rs: only allow one default gateway
2020-04-23 10:37:40 +02:00
Dietmar Maurer
c38b4bb8b2
src/config/network.rs: do not allow to change interface type
2020-04-23 09:43:38 +02:00
Dietmar Maurer
42fbe91a34
src/config/network.rs: parse bond-slaves
2020-04-23 09:31:10 +02:00
Dietmar Maurer
1d9a68c2fc
src/config/network.rs: parse bridge-ports
2020-04-23 09:24:17 +02:00
Dietmar Maurer
02269f3dba
src/config/network.rs: introduce NetworkInterfaceType
2020-04-23 08:45:03 +02:00
Dietmar Maurer
d5ca9bd5df
src/config/network.rs: cleanup (new helper combine_entry)
2020-04-23 07:54:12 +02:00
Dietmar Maurer
02e36d96ad
src/config/network.rs: write changes to interfaces.new
2020-04-23 07:19:29 +02:00
Dietmar Maurer
2c18efd902
src/config/network.rs: use a single mtu setting (instead of mtu_v4 and mtu_v6)
2020-04-23 07:07:14 +02:00
Dietmar Maurer
4cb6bd894c
src/bin/proxmox-backup-manager.rs: improve network list output format
2020-04-23 06:44:55 +02:00
Dietmar Maurer
b1564af25a
src/bin/proxmox-backup-manager.rs: format datastore list output
2020-04-22 17:37:20 +02:00
Dietmar Maurer
bf004ecd87
src/bin/proxmox-backup-manager.rs: format network list output
2020-04-22 17:14:52 +02:00
Dietmar Maurer
f1026a5aa9
src/api2/config/network.rs: allow to update 'auto' flag
2020-04-22 16:46:46 +02:00
Dietmar Maurer
3fce3bc36e
src/config/network/parser.rs: parse MTU settings
2020-04-22 13:44:51 +02:00
Dietmar Maurer
f8e7ac686a
src/config/network.rs: only save attriubutes used by configuration method
2020-04-22 12:42:09 +02:00
Dietmar Maurer
c016482c7a
src/api2/config/network.rs: implement delete property
2020-04-22 12:19:31 +02:00
Dietmar Maurer
27f2c23049
src/api2/config/network.rs: allow to update configuration method
2020-04-22 11:32:36 +02:00
Dietmar Maurer
df6bb03d0e
src/api2/config/network.rs: improve network api
2020-04-22 10:54:07 +02:00
Dietmar Maurer
e2d940b949
src/config/network/parser.rs: remove debug println
2020-04-22 10:53:26 +02:00
Dietmar Maurer
0c226bc173
src/config/network/helper.rs: fix CIDR regex
2020-04-22 10:52:31 +02:00
Dietmar Maurer
76cf5208cf
src/api2/types.rs: add schemas for IP/CIDR
2020-04-22 10:28:53 +02:00
Dietmar Maurer
2ea7bf1b3d
src/api2/config/datastore.rs_ fix method docs
2020-04-22 08:53:16 +02:00
Dietmar Maurer
8b57cd4441
src/config/network.rs: remove netmask support
...
rely on cidr instead.
2020-04-22 08:45:13 +02:00
Dietmar Maurer
68da20bf62
src/api2/types.rs: define NETWORK_INTERFACE_NAME_SCHEMA
2020-04-21 17:54:52 +02:00
Dietmar Maurer
c357260d09
src/config/network.rs: move type definitions to src/api2/types.rs
2020-04-21 17:25:05 +02:00
Dietmar Maurer
7e02d08cd0
rename ConfigMethod to NetworkConfigMethod
2020-04-21 17:17:57 +02:00
Dietmar Maurer
ca0e534796
src/api2/config/network.rs: start network configuration api
2020-04-21 14:28:26 +02:00
Dietmar Maurer
904e988667
src/config/network.rs: impleement load/save
2020-04-21 12:55:33 +02:00
Dietmar Maurer
3f129233be
src/config/network.rs: add Interface flags 'exists' and 'active'
2020-04-21 11:46:56 +02:00
Dietmar Maurer
a9bb491e35
src/config/network.rs: cleanup autostart flag handling
2020-04-21 11:06:22 +02:00
Dietmar Maurer
1ec7f8a0dd
src/config/network/helper.rs: new helper get_network_interfaces()
2020-04-21 10:32:54 +02:00
Dietmar Maurer
92310d585c
src/config/network.rs: simplify code
2020-04-20 18:10:15 +02:00
Dietmar Maurer
f34d4401f7
src/config/network.rs: read/write /etc/network/interfaces
...
Start implementing a recursive descent parser.
2020-04-20 14:15:57 +02:00
Dietmar Maurer
6e695960ca
src/config/cached_user_info.rs: cache it up to 5 seconds
2020-04-18 08:49:20 +02:00
Dietmar Maurer
365f0f720c
fix permission tests using non-uri parameters
...
We nood to do those tests inside the fuction body instead...
2020-04-18 08:23:04 +02:00
Dietmar Maurer
a737179eb4
src/config/cached_user_info.rs: new check_privs helper
2020-04-18 08:09:34 +02:00
Dietmar Maurer
bb072ba49c
src/api2/access.rs: cleanup
2020-04-18 07:28:25 +02:00
Dietmar Maurer
ff329f970b
src/api2/types.rs: use anyhow::Error in test cases
2020-04-18 07:05:31 +02:00
Wolfgang Bumiller
f7d4e4b506
switch from failure to anyhow
...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-04-17 18:43:30 +02:00
Dietmar Maurer
404d78c41e
src/api2/pull.rs: add access permission
2020-04-17 15:27:04 +02:00
Dietmar Maurer
1bfc1efa50
src/api2/subscription.rs: add access permissions
2020-04-17 15:14:28 +02:00
Dietmar Maurer
73ce1d1146
src/api2/reader.rs: add access permissions
2020-04-17 15:01:56 +02:00
Dietmar Maurer
70e5f2461d
src/api2/config/remote.rs: add access permissions
2020-04-17 14:57:26 +02:00
Dietmar Maurer
c0ef209aeb
src/api2/config/datastore.rs: impl digest check for delete, add access permissions
2020-04-17 14:51:29 +02:00
Dietmar Maurer
9f9f7eefa3
src/api2/backup.rs: add access permissions
2020-04-17 14:40:20 +02:00
Dietmar Maurer
bb34b58910
src/api2/admin/datastore.rs: add access permissions - first try
...
We need to refine this later (introduce backup owner concept?)
2020-04-17 14:36:27 +02:00
Dietmar Maurer
5972def5ec
acl: change path "storage" to "datastore"
2020-04-17 14:15:44 +02:00
Dietmar Maurer
aa90ced3bf
src/api2/access/role.rs: use schema ACL_ROLE_SCHEMA
2020-04-17 14:14:06 +02:00
Dietmar Maurer
ca257c8097
move type defs from src/api2/access/acl.rs to src/api2/types.rs
2020-04-17 14:13:15 +02:00
Dietmar Maurer
3fff55b293
src/api2/access/role.rs: new api to list roles
2020-04-17 14:03:24 +02:00
Dietmar Maurer
4f66423fcc
src/api2/access/user.rs: add access permissions
2020-04-17 11:04:36 +02:00
Dietmar Maurer
d4f020f4c5
src/api2/access/user.rs: add access permissions
2020-04-17 10:08:45 +02:00
Dietmar Maurer
d28ddb8e04
src/api2/access/acl.rs: add access permissions
2020-04-17 10:03:09 +02:00
Dietmar Maurer
83b6a7cf71
src/api2/node/tasks.rs: use api macro, implement access permissions
2020-04-16 17:47:21 +02:00
Dietmar Maurer
e4681f9f71
src/api2/node/syslog.rs: add access permissions
2020-04-16 17:08:19 +02:00
Dietmar Maurer
b5037fa8ed
src/api2/node/status.rs: add access permissions
2020-04-16 17:05:09 +02:00
Dietmar Maurer
9989d2c4e9
src/server/rest.rs: reduce delay for permission error to 500ms
2020-04-16 12:56:34 +02:00
Dietmar Maurer
1cf7bbf412
src/api2/node/services.rs: add access permissions
2020-04-16 12:47:16 +02:00
Dietmar Maurer
68ed0c629d
src/api2/node/journal.rs: add access permissions
2020-04-16 12:47:16 +02:00
Dietmar Maurer
4b40148caa
start impl. access permissions
2020-04-16 12:47:16 +02:00
Dietmar Maurer
423e656163
src/config/cached_user_info.rs: new helper class
2020-04-16 10:05:16 +02:00
Dietmar Maurer
109d7817cd
src/config/user.rs - cached_config: do not store/return digest
2020-04-15 11:35:57 +02:00
Dietmar Maurer
5354511fd0
src/config/acl.rs: implement cached_config
2020-04-15 11:30:47 +02:00
Dietmar Maurer
bd098a7f77
src/api2/node/dns.rs: use api macro (cleanup)
2020-04-15 10:09:18 +02:00
Dietmar Maurer
8d048af2bf
acl: improve NoAccess handling
2020-04-15 08:11:43 +02:00
Dietmar Maurer
9a328319dd
pxar extract: remove pattern from arg_param, add target instead
2020-04-15 06:41:37 +02:00
Dietmar Maurer
7e3d2e5b41
pxar create: remove exclude from arg_param
2020-04-15 06:31:46 +02:00
Dietmar Maurer
9c06f6c292
fix previous commit - use result.
2020-04-14 17:48:10 +02:00
Dietmar Maurer
9f4e47dd93
acl update: check path
2020-04-14 17:23:48 +02:00
Dietmar Maurer
d83175dd69
acl update: check if user exist.
2020-04-14 13:46:27 +02:00
Dietmar Maurer
68ccdf09a4
src/config/user.rs: implement user config cache
2020-04-14 13:45:45 +02:00
Dietmar Maurer
9765092ede
acl api: implement update
2020-04-14 10:16:49 +02:00
Dietmar Maurer
ed3e60ae69
start ACL api
2020-04-13 11:09:44 +02:00
Dietmar Maurer
a83eab3c4d
acl: use BTreeMap and BTreeSet to avoid sort()
2020-04-12 17:13:53 +02:00
Dietmar Maurer
0815ec7e65
acl: implement roles(), add regression tests.
2020-04-12 13:06:50 +02:00
Dietmar Maurer
5c6cdf9815
add acl config
2020-04-11 12:24:26 +02:00
Dietmar Maurer
b88f9c5b1e
PASSWORD_SCHEMA: set max_length to 1024 (for tickets)
2020-04-09 13:35:58 +02:00
Dietmar Maurer
879546aff6
api: add default property to domain list
2020-04-09 13:35:08 +02:00
Dietmar Maurer
73b40e9b46
api: correctly sort access subdirmap
2020-04-09 13:34:07 +02:00
Dietmar Maurer
708db4b3ae
api: add list_domains
2020-04-09 11:36:45 +02:00
Dietmar Maurer
685e13347e
api: move config/user to access/users, implement change_password
...
To make it similar to the pve api
2020-04-09 10:21:24 +02:00
Dietmar Maurer
7d817b0358
implement auth framework
2020-04-08 14:06:15 +02:00
Dietmar Maurer
579728c641
add user configiguration
2020-04-08 14:06:15 +02:00
Dietmar Maurer
cf459b1982
gc: log pending removals
2020-04-06 09:50:40 +02:00
Dietmar Maurer
dda7015497
prune api: return a usable result (we run synchronous anyways)
2020-04-01 12:24:28 +02:00
Dietmar Maurer
4299ca727c
src/server/rest.rs: use correct formatter
2020-03-26 12:54:20 +01:00
Dominik Csapak
6650a242fb
rewrite future select in upgrade_to_backup_protocol using select macro
...
and handle all ok/err cases with at least logging
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-03-18 11:33:59 +01:00
Dietmar Maurer
ca26db1140
delete unused src/storage/config.rs
2020-03-02 13:31:38 +01:00
Dietmar Maurer
90c5239d46
use SectionConfig from proxmox 0.1.18-1
2020-03-02 12:52:11 +01:00
Dietmar Maurer
18deda403d
src/bin/proxmox-backup-client.rs - list_groups: render full snapshot path for last-backup column
2020-02-28 09:09:22 +01:00
Dietmar Maurer
6882b3716c
src/bin/proxmox-backup-manager.rs: avoid compiler warning
2020-02-28 08:52:12 +01:00
Christian Ebner
32d192a952
catalog: shell: Use the new logic including resolving symlinks for catalog
...
and remove the old unused code.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2020-02-28 08:51:01 +01:00
Christian Ebner
fee5528e59
catalog: shell: introduce new CatalogPathStack to navigate in catalog shell.
...
This is basically a rewrite of the current logic for navigating the catalog,
but in addition allows to follow symlinks.
Following symlinks introduces the issue that generation of canonical paths
(needed in the actual pxar archive) is more complex, as symlinks have to be
resolved and loops avoided.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2020-02-28 08:50:43 +01:00
Christian Ebner
4145c36749
catalog: add missing function documentation.
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2020-02-28 08:50:08 +01:00
Christian Ebner
c2f9149461
catalog: introduce is_symlink() to check if DirEntry is a symlink.
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2020-02-28 08:49:55 +01:00
Christian Ebner
11ee5c0563
catalog: derive PartEq for equality checks of two DirEntry's.
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2020-02-28 08:49:39 +01:00
Christian Ebner
536683e73b
src/backup/dynamic_index.rs: Add LruCache for chunks.
...
In order to improve non-sequential reads of chunks as e.g. in FUSE.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2020-02-28 08:47:16 +01:00
Christian Ebner
35ddf0b419
catalog: shell: Introduce clear-selected command.
...
'clear-selected' allows to clear all the match patterns from the list of
patterns for a subsequent restore.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2020-02-28 08:40:55 +01:00
Christian Ebner
8e464141cf
catalog: shell: Improve list-selected command.
...
'list-selected' now shows the filenames matching the patterns for a restore
instead of the patterns themselfs.
The patterns can be displayed by passing the '--pattern' flag.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2020-02-28 08:40:42 +01:00
Christian Ebner
351b913d1e
pxar::decoder: Return the correct symlink target size.
...
This eliminates also repeated calls to readlink in fuse, which occur when the
preallocated buffer to store the symlink target path is to small.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2020-02-28 08:38:56 +01:00
Christian Ebner
189996cf4a
proxmox-backup-client: expose exclude match patterns to cli.
...
Allows to pass exclude match patterns to the 'backup' command.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2020-02-28 07:56:09 +01:00
Dietmar Maurer
ac3faaf5c0
src/bin/proxmox-backup-manager.rs: cleanup output handling
2020-02-28 07:42:36 +01:00
Dietmar Maurer
4939255fb4
src/tools/format.rs: move output rendering code to this new file
2020-02-28 07:30:35 +01:00
Dietmar Maurer
c81b2b7c70
src/bin/proxmox-backup-client.rs - list_groups: use format_and_print_result_full()
...
Depend on proxmox 0.1.16-1
2020-02-27 13:32:11 +01:00
Dietmar Maurer
c2043614f7
src/bin/proxmox-backup-client.rs: use new output formath helpers from proxmox 0.15.1-1
2020-02-27 12:41:15 +01:00
Dietmar Maurer
e23f586344
src/bin/proxmox-backup-client.rs - status: improve alignment
2020-02-27 11:38:09 +01:00
Dietmar Maurer
be2425ff85
src/bin/proxmox-backup-client.rs - status: do not print header
2020-02-27 11:31:05 +01:00
Dietmar Maurer
f24fc1166b
src/bin/proxmox-backup-client.rs - list_snapshots: use format_and_print_result_full()
...
Depend on proxmox v0.1.14.
2020-02-27 11:28:44 +01:00
Christian Ebner
af934f8cf6
tools::lru_cache: Improve access() and insert() by using HashMap::entry().
...
entry() allows to lookup the position where and entry belongs and update/insert
it in the HashMap more efficiently than get_mut() and insert().
Details: https://gankra.github.io/blah/hashbrown-insert/
In addition, use the struct LinkedList and remove the outdated code.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2020-02-27 06:56:25 +01:00
Christian Ebner
e3ab9a383c
tools::lru_cache: Separate LinkedList part of LruCache into own struct.
...
In order to keep the separation more aparent and avoid mut borrow conflics.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2020-02-27 06:55:48 +01:00
Christian Ebner
75c2ee7bab
tools::lru_cache: Make key generic.
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2020-02-27 06:55:16 +01:00
Christian Ebner
03f779c6f5
catalog: shell: Improve output of stat command.
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2020-02-27 06:53:17 +01:00
Dietmar Maurer
ea5f547fdc
src/bin/proxmox-backup-client.rs - list_snapshot_files: use format_and_print_result_full()
2020-02-26 13:49:47 +01:00
Dietmar Maurer
390c5bdde4
src/bin/proxmox-backup-client.rs - status: use format_and_print_result_full
2020-02-26 13:29:00 +01:00
Dietmar Maurer
03ac286c80
src/bin/proxmox-backup-manager.rs: use crate::tools::runtime::block_on()
2020-02-26 11:37:38 +01:00
Dietmar Maurer
dd04383bb8
src/tools/runtime.rs: call OPENSSL_thread_stop to avoid race with openssl cleanup handlers
2020-02-26 10:38:55 +01:00
Dietmar Maurer
ca2dbb8af1
src/client/backup_writer.rs: also print archive size
2020-02-25 14:12:29 +01:00
Wolfgang Bumiller
0bcbb5434e
cleanup unused module
...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-02-25 11:38:27 +01:00
Christian Ebner
495b238bc1
pxar: Change text of warning for files matched by exclude patterns.
...
In addition to the .pxarexclude files, glob match patterns can be passed to pxar
also via cli parameters.
Therefore the warning is rephrased to be more ambiguous.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2020-02-25 10:47:24 +01:00
Dietmar Maurer
6da73c823f
src/client/backup_writer.rs: prefix upload stats with archive name
2020-02-24 13:24:46 +01:00
Dietmar Maurer
e02c3d461f
src/client/backup_writer.rs: implement verbose options
2020-02-24 12:48:40 +01:00
Dietmar Maurer
ee5fe978e2
src/client/backup_writer.rs: reduce verbosity
2020-02-24 11:33:00 +01:00
Dietmar Maurer
8ce49a76da
src/backup/backup_info.rs: fix SNAPSHOT_PATH_REGEX and GROUP_PATH_REGEX
2020-02-18 13:16:35 +01:00
Wolfgang Bumiller
9e003074cb
runtime: fix blocking strategy:
...
- do not "double"-block_in_place() (it may not be nested)
- do not call block_in_place() in non-worker threads
is_in_tokio() isn't sufficient, we need to actually know
that we're in a worker-thread, so we do this by remembering
that we're blocking.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-02-17 09:48:22 +01:00
Wolfgang Bumiller
1283d58ca9
runtime: remove IN_TOKIO thread local variable
...
tokio now has Handle::try_current() allowing us to
generally check for a tokio runtime even if spawned by
someone else
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-02-13 08:56:38 +01:00
Dietmar Maurer
a6e3da987c
src/client/http_client.rs: do not store fingerprints passed via options in cache
2020-02-11 11:54:43 +01:00
Dietmar Maurer
1bd6f32b43
src/client/http_client.rs: always convert fingerprint to lowercase
2020-02-11 11:42:03 +01:00
Dietmar Maurer
d1c657276a
src/client/http_client.rs: remove useless password_env
2020-02-11 11:42:03 +01:00
Dietmar Maurer
a05c0c6ff6
src/bin/proxmox-backup-client.rs: allows to pass fingerprint via env vars
2020-02-11 11:42:03 +01:00
Thomas Lamprecht
b69b8af26b
s/pbsbanner/proxmox-backup-banner/ + move to /usr/lib
...
We want to avoid pbs if possible and also avoid placing internal
binaries, not intended for human direct use, in /bin or /sbin paths.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-02-10 14:43:28 +01:00
Thomas Lamprecht
e2b5e75a3e
pbsbanner: use match and also return error
...
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-02-07 18:30:55 +01:00
Thomas Lamprecht
274b0c7bb7
add login banner service
...
Modeled after the one from PVE, but using rust instead of perl for
resolving the nodename and writing to /etc/issue
Behavior differs a bit. We write all non-loopback addresses to this
file, as the gui accepts connections from them all, so limiting it to
the first one is not really sensible.
Further an error to resolve, or only getting loopback addresses won't
write out an empty /etc/issue file, but a note about the error at the
place where the address would be displayed.
Named it "pbsbanner", not "proxmox-backup-banner" as it's rather an
internal tool anyway and mirrors pvebanner, pmgbanner
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-02-06 22:19:22 +01:00
Christian Ebner
ba050e3788
catalog: shell: Allow two or more successive slashes in path.
...
Two or more successive slashes should be allowed and treated as a single slash.
We also do not treat two successive slashes at the beginning of a path any
different.
Details are found here:
https://pubs.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap04.html#tag_04_11
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-02-05 09:32:29 +01:00
Christian Ebner
9ff9a00572
pxar::fuse: cleanup: Remove unused code.
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-02-03 13:43:11 +01:00
Christian Ebner
3e69abef02
pxar::fuse: Refactor lookup in order to cache accessed entries.
...
Context::find_goodbye_entry() is removed and incorporated into the lookup
callback in order to take advantage of the entry_cache and since it is only used
inside this callback.
All entries read on lookup are cached.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-02-03 13:43:06 +01:00
Christian Ebner
63698e720c
pxar: Improve read performance for fuse.
...
By storing the payload start offset in the `DirectoryEntry` and passing this
information to `Decoder::read()`, the payload can be read directly and a repeated
re-reading of the entry information is avoided.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-02-03 12:08:03 +01:00
Dietmar Maurer
032d3ad80f
src/bin/proxmox-backup-client.rs: do not use api macro for prune
...
So that we can use add_common_prune_prameters!() macro again.
2020-01-31 10:31:36 +01:00
Dietmar Maurer
b8a192e3b0
src/config/remote.rs: do not serialize empty option
2020-01-31 09:09:24 +01:00
Dietmar Maurer
c43b36bcb6
src/section_config.rs - write: improve error message
2020-01-31 09:08:42 +01:00
Dietmar Maurer
501f4fa220
depend on proxmox 0.1.13, use new tty helpers from there
2020-01-31 08:16:00 +01:00
Christian Ebner
74616f63b0
proxmox-backup-client: add missing prune options to api definition.
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2020-01-31 07:01:56 +01:00
Dietmar Maurer
93fbb4ef0a
update proxmox dependency to 0.1.12
2020-01-31 06:59:17 +01:00
Dietmar Maurer
43592f290d
src/bin/proxmox-backup-manager.rs: remove stale debug comment
2020-01-30 17:59:13 +01:00
Dietmar Maurer
9e165b5cad
src/bin/proxmox-backup-manager.rs - list remotes: do not use client, call directly
2020-01-30 17:57:37 +01:00
Dietmar Maurer
9894469e89
src/bin/proxmox-backup-manager.rs: use new texdt table formatter
2020-01-30 13:31:20 +01:00
Dietmar Maurer
8528fce874
src/api2/node/tasks.rs; make list_tasks public
2020-01-30 13:31:20 +01:00
Dietmar Maurer
70fa1aa3fc
fixup
2020-01-30 13:31:20 +01:00
Dietmar Maurer
5eeea607ae
src/section_config.rs - convert_to_array: add option to skip properties
2020-01-30 13:26:46 +01:00
Christian Ebner
93a9eb284e
pxar::fuse: Do not return fcaps value on listxattr.
...
listxattr must only return the name list, no extended attribute values.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-01-29 09:35:09 +01:00
Christian Ebner
5d2158e89a
pxar::fuse: return ACL names in listxattr if present
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-01-29 09:35:03 +01:00
Christian Ebner
72677fb0a5
pxar::fuse: add support to read ACLs.
...
ACLs are stored separately in the pxar archive. This implements the functionality
needed to read the ACLs and return them as extended attributes in the getxattr
callback.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-01-29 09:35:00 +01:00
Christian Ebner
0502ce6da3
tools::acl: Add helpers to create extended attribute buffer.
...
This helpers are used to construct the extended attributes values from
the ACLs stored in the pxar archive.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-01-29 09:34:57 +01:00
Christian Ebner
bcf0d452c9
pxar: move acl helper functions to src/tools/acl.rs
...
They are not only needed by the pxar::sequential_decoder but also for the fuse
xattr impl, so it makes more sense to have them there.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-01-29 09:34:54 +01:00
Wolfgang Bumiller
6f763ae673
tools: LruCache: add dropcheck marker
...
See https://doc.rust-lang.org/nomicon/phantom-data.html
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-01-29 09:18:27 +01:00
Dietmar Maurer
99384f7933
src/api2/types.rs: define and use struct TaskListItem
2020-01-28 11:23:08 +01:00
Dietmar Maurer
2c4b303c62
src/api2/node/tasks.rs: use api macro for list_tasks
2020-01-28 11:23:08 +01:00
Christian Ebner
3e56c4abd7
pxar::fuse: Introduce LRU caching for goodbye table and directory entries.
...
The goodbye table of directory entries is cached in a LRU cache to speed up
subsequent accesses.
This is especially important for directories with many entries, as then the
readdirplus callback is called repeatedly because of the limited reply buffer
size.
`DirectoryEntry`s are cached for subsequent access in their own LRU cache,
independent of the goodbye tables.
In order to avoid borrow conflicts, the `Context` provides a fn as_mut_refs
as well as a fn run_with_context_refs.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-01-28 10:06:53 +01:00
Christian Ebner
cc552754c8
pxar::fuse: refactor fn stat
...
By passing `&DirectoryEntry` to stat, the function interface is simplified.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-01-28 10:06:51 +01:00
Dietmar Maurer
d08bc483db
use proxmox 0.1.9 with new cli command helpers
2020-01-27 18:08:43 +01:00
Dietmar Maurer
99d863d770
src/client/http_client.rs: new password_env option
2020-01-27 10:42:37 +01:00
Dietmar Maurer
5030b7cea4
src/client/http_client.rs: new prefix options
2020-01-27 10:20:55 +01:00
Dietmar Maurer
5a74756c15
src/client/http_client.rs: implement fingerprint cache
2020-01-25 15:37:34 +01:00
Dietmar Maurer
d59dbeca1b
src/client/http_client.rs: new struct HttpClientOptions
2020-01-25 12:18:00 +01:00
Dietmar Maurer
6afbe1d846
src/config/remote.rs: add fingerprint
2020-01-25 09:49:45 +01:00
Dietmar Maurer
dcb8db66d9
src/api2/types.rs: add CERT_FINGERPRINT_SHA256_SCHEMA
2020-01-25 09:49:45 +01:00
Christian Ebner
90c815bfe2
src/bin/proxmox-backup-client.rs: fix another typo in property description
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-01-24 13:46:08 +01:00
Christian Ebner
5eee6d89b6
src/bin/proxmox-backup-client.rs: fix typo in property description
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-01-24 13:45:22 +01:00
Christian Ebner
04350b4c08
tools: add access method to LruCache
...
This will return a mutable reference just like get_mut, but on a cache miss
it will get and insert the missing value via the fetch method provided via the
Cacher trait.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-01-24 09:32:09 +01:00
Dietmar Maurer
4191018c79
src/api2/admin/datastore.rs - download_file: use BACKUP_ARCHIVE_NAME_SCHEMA for file-name
2020-01-23 13:49:30 +01:00
Dietmar Maurer
a92830dc39
src/api2/types.rs: define and use api type GarbageCollectionStatus
2020-01-23 13:40:12 +01:00
Dietmar Maurer
dfc58d47ad
src/api2/admin/datastore.rs: use api macro for start_garbage_collection
2020-01-23 13:01:21 +01:00
Dietmar Maurer
1dc117bbba
src/api2/types.rs: define and use struct StorageStatus
2020-01-23 12:51:30 +01:00
Dietmar Maurer
09b1f7b202
src/api2/types.rs: define struct BackupContent, and use it with list_snapshot_files
2020-01-23 11:17:38 +01:00
Dietmar Maurer
51534c8de9
src/backup/manifest.rs: check if manifest contains files
2020-01-23 11:16:12 +01:00
Dietmar Maurer
68a6a0ee03
src/api2/admin/datastore.rs: use api macro for delete_snapshot
2020-01-23 10:16:45 +01:00
Dietmar Maurer
6abce6c2bb
src/backup/datastore.rs: remove_backup_(group/dir) - return Error instead of io::Error
2020-01-23 10:14:46 +01:00
Dietmar Maurer
c425bdc9b2
src/api2/pull.rs: delete fanished snapshots
2020-01-23 09:58:57 +01:00
Dietmar Maurer
8a1d68c8b9
src/backup/datastore.rs: improve error messages
2020-01-23 09:58:14 +01:00
Dietmar Maurer
18cc66ee85
src/api2/pull.rs: use new Datastore::last_successful_backup helper
...
Do not fail if local group does not exists.
2020-01-22 15:06:28 +01:00