[pve-devel] [PATCH common 1/1] PBSClient: add option for extra parameter to file_restore_list
Wolfgang Bumiller
w.bumiller at proxmox.com
Thu Feb 10 09:30:44 CET 2022
On Wed, Feb 09, 2022 at 06:35:33PM +0100, Thomas Lamprecht wrote:
> On 27.01.22 11:55, Dominik Csapak wrote:
> > we will need some extra parameters here, and instead of hardcoding them,
> > have the option to set a list of arbitrary parameters
> >
> > Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> > ---
> > src/PVE/PBSClient.pm | 8 ++++++--
> > 1 file changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/PVE/PBSClient.pm b/src/PVE/PBSClient.pm
> > index 21dc363..dfb9f27 100644
> > --- a/src/PVE/PBSClient.pm
> > +++ b/src/PVE/PBSClient.pm
> > @@ -342,11 +342,15 @@ sub status {
> > };
> >
> > sub file_restore_list {
> > - my ($self, $snapshot, $filepath, $base64) = @_;
> > + my ($self, $snapshot, $filepath, $base64, $extraParams) = @_;
> > +
> > + my $params = [ $snapshot, $filepath, "--base64", $base64 ? 1 : 0 ];
> > + push @$params, @$extraParams;
> > +
> > return run_client_cmd(
> > $self,
> > "list",
> > - [ $snapshot, $filepath, "--base64", $base64 ? 1 : 0 ],
> > + $params,
> > 0,
> > "proxmox-file-restore",
> > );
>
> CC'ing Wolfgang, as IIRC he does not like passing "take anything" variables
> especially in such dynamic languages like perl.
>
> FWICT we only call file_restore_list once, and you set the options fixed
> there now, so why not just avoid the new method param and pass it directly
> fixed here?
Indeed, I'm not against having a hash there where we can specify
possible extra options, but not in the form of command line parameters
that are passed as-is. The question is rather how many more parameters
will be required in the future and will you just add a single `$timeout`
or a `%options` containing a `->{timeout}` field ;-)
And `--json-error` seems to be generally a good idea to be always set
for a CLI-tool-based perl api so it can just `die` with the right
errors, no? Wouldn't it make sense to add this directly to
`run_client_cmd`?
More information about the pve-devel
mailing list