Parts contained in activate_storage are needed to be run to fix #5008, however, implementing a namespace check there would cause unneeded overhead.
Therefore, this patch extracts the method check_datastore_exists from activate storage. Signed-off-by: Philipp Hufnagl <p.hufn...@proxmox.com> --- src/PVE/Storage/PBSPlugin.pm | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/PVE/Storage/PBSPlugin.pm b/src/PVE/Storage/PBSPlugin.pm index b4d7914..3e0e155 100644 --- a/src/PVE/Storage/PBSPlugin.pm +++ b/src/PVE/Storage/PBSPlugin.pm @@ -817,17 +817,13 @@ sub scan_datastores { return $response; } - -sub activate_storage { - my ($class, $storeid, $scfg, $cache) = @_; - - my $password = pbs_get_password($scfg, $storeid); - - my $datastores = eval { scan_datastores($scfg, $password) }; - die "$storeid: $@" if $@; +sub check_datastore_exists { + my ($class, $storeid, $scfg, $password, $conn) = @_; my $datastore = $scfg->{datastore}; + my $datastores = eval { scan_datastores($scfg, $password, $conn) }; + die "$storeid: $@" if $@; for my $ds (@$datastores) { if ($ds->{store} eq $datastore) { return 1; @@ -837,6 +833,14 @@ sub activate_storage { die "$storeid: Cannot find datastore '$datastore', check permissions and existence!\n"; } +sub activate_storage { + my ($class, $storeid, $scfg, $cache) = @_; + + my $password = pbs_get_password($scfg, $storeid); + my $conn = pbs_api_connect($scfg, $password); + check_datastore_exists($class, $storeid, $scfg, $password, $conn); +} + sub deactivate_storage { my ($class, $storeid, $scfg, $cache) = @_; return 1; -- 2.39.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel