[pve-devel] [PATCH storage v4 3/4] pbs: Extraxt check_datastore_exists from activate_storage
Philipp Hufnagl
p.hufnagl at proxmox.com
Mon Nov 27 12:40:00 CET 2023
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.hufnagl at 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
More information about the pve-devel
mailing list