Because it is needed later in this patch series, the method pbs_api_connect is moved earlyer in the code
Signed-off-by: Philipp Hufnagl <p.hufn...@proxmox.com> --- src/PVE/Storage/PBSPlugin.pm | 63 ++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/src/PVE/Storage/PBSPlugin.pm b/src/PVE/Storage/PBSPlugin.pm index 4320974..96373a4 100644 --- a/src/PVE/Storage/PBSPlugin.pm +++ b/src/PVE/Storage/PBSPlugin.pm @@ -112,6 +112,38 @@ sub pbs_get_password { return PVE::Tools::file_read_firstline($pwfile); } +# +# TODO: use a client with native rust/proxmox-backup bindings to profit from +# API schema checks and types +my sub pbs_api_connect { + my ($scfg, $password, $timeout) = @_; + + my $params = {}; + + my $user = $scfg->{username} // 'root@pam'; + + if (my $tokenid = PVE::AccessControl::pve_verify_tokenid($user, 1)) { + $params->{apitoken} = "PBSAPIToken=${tokenid}:${password}"; + } else { + $params->{password} = $password; + $params->{username} = $user; + } + + if (my $fp = $scfg->{fingerprint}) { + $params->{cached_fingerprints}->{uc($fp)} = 1; + } + + my $conn = PVE::APIClient::LWP->new( + %$params, + host => $scfg->{server}, + port => $scfg->{port} // 8007, + timeout => ($timeout // 7), # cope with a 401 (3s api delay) and high latency + cookie_name => 'PBSAuthCookie', + ); + + return $conn; +} + sub pbs_encryption_key_file_name { my ($scfg, $storeid) = @_; @@ -691,37 +723,6 @@ my sub snapshot_files_encrypted { return $any && $all; } -# TODO: use a client with native rust/proxmox-backup bindings to profit from -# API schema checks and types -my sub pbs_api_connect { - my ($scfg, $password, $timeout) = @_; - - my $params = {}; - - my $user = $scfg->{username} // 'root@pam'; - - if (my $tokenid = PVE::AccessControl::pve_verify_tokenid($user, 1)) { - $params->{apitoken} = "PBSAPIToken=${tokenid}:${password}"; - } else { - $params->{password} = $password; - $params->{username} = $user; - } - - if (my $fp = $scfg->{fingerprint}) { - $params->{cached_fingerprints}->{uc($fp)} = 1; - } - - my $conn = PVE::APIClient::LWP->new( - %$params, - host => $scfg->{server}, - port => $scfg->{port} // 8007, - timeout => ($timeout // 7), # cope with a 401 (3s api delay) and high latency - cookie_name => 'PBSAuthCookie', - ); - - return $conn; -} - sub list_volumes { my ($class, $storeid, $scfg, $vmid, $content_types) = @_; -- 2.39.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel