[pbs-devel] [PATCH proxmox-backup v2 3/3] proxmox-backup-client: added ignore-acl/xattr/ownership/permission & overwrite parameters
Wolfgang Bumiller
w.bumiller at proxmox.com
Thu Aug 18 14:03:12 CEST 2022
Sorry for missing this in the v1 revie, but I think it's better to have
the parameters as actual function paramters, and the api description
contain the `default` values.
Also, I think most of these should use plural form ;-)
On Thu, Aug 18, 2022 at 01:06:54PM +0200, Markus Frank wrote:
> If ignore-acl/ignore-xattr/ignore-ownership/ignore-permission is set,
> the corresponding flag gets removed.
>
> overwrite-existing-files is saved as an PxarExtractOption like
> allow-existing-dirs.
>
> Signed-off-by: Markus Frank <m.frank at proxmox.com>
> ---
> v2: added ignore-permission
>
> proxmox-backup-client/src/main.rs | 49 ++++++++++++++++++++++++++++++-
> 1 file changed, 48 insertions(+), 1 deletion(-)
>
> diff --git a/proxmox-backup-client/src/main.rs b/proxmox-backup-client/src/main.rs
> index 4bb9aa5e..dc038864 100644
> --- a/proxmox-backup-client/src/main.rs
> +++ b/proxmox-backup-client/src/main.rs
> @@ -1201,6 +1201,31 @@ We do not extract '.pxar' archives when writing to standard output.
> type: CryptMode,
> optional: true,
> },
> + "ignore-acl": {
acl -> acls
> + type: Boolean,
> + description: "ignore acl settings",
> + optional: true,
Add `default: false,`
> + },
> + "ignore-xattr": {
xattr -> xattrs
> + type: Boolean,
> + description: "ignore xattr settings",
> + optional: true,
Add `default: false,`
> + },
> + "ignore-ownership": {
> + type: Boolean,
> + description: "ignore owner settings (no chown)",
> + optional: true,
Add `default: false,`
> + },
> + "ignore-permission": {
permission -> permissions
> + type: Boolean,
> + description: "ignore permission settings (no chmod)",
> + optional: true,
Add `default: false,`
> + },
> + "overwrite-existing-files": {
I think 'overwrite' could be enough actually.
(eg. tar has `--overwrite`)
> + type: Boolean,
> + description: "overwrite already existing files",
> + optional: true,
> + },
> }
> }
> )]
> @@ -1210,6 +1235,12 @@ async fn restore(param: Value) -> Result<Value, Error> {
^ You can just place `bool` parameters in the `fn()` signature and
they'll be filled with the `default` values automatically by the api
macro (just use underscores in place of the minuses).
The `param: Value` parameter will then only contain the remaining
arguments.
(Most of the required parameters could actually be changed this way, but
not necessarily in the same patch series...)
>
> let allow_existing_dirs = param["allow-existing-dirs"].as_bool().unwrap_or(false);
>
> + let ignore_acls = param["ignore-acl"].as_bool().unwrap_or(false);
> + let ignore_xattr = param["ignore-xattr"].as_bool().unwrap_or(false);
> + let ignore_ownership = param["ignore-ownership"].as_bool().unwrap_or(false);
> + let ignore_permission = param["ignore-permission"].as_bool().unwrap_or(false);
> + let overwrite_existing_files = param["overwrite-existing-files"].as_bool().unwrap_or(false);
^ then this entire block can be dropped
More information about the pbs-devel
mailing list