[pve-devel] [PATCH qemu-server 1/2] prefer storage_check_enabled over storage_check_node

Fabian Ebner f.ebner at proxmox.com
Fri Jun 18 12:59:33 CEST 2021


storage_check_enabled simply checks for the 'disable' option and then calls
storage_check_node.

While not strictly necessary for a second call where only the storage differs,
e.g. in case of clone, it is more future-proof: if support for a target storage
is added at some point, it might be easy to miss adapting the call.

For the migration checks, the situation is improved by now always catching
disabled (target) storages.

Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
---
 PVE/API2/Qemu.pm   |  4 ++--
 PVE/QemuMigrate.pm | 10 +++++-----
 PVE/QemuServer.pm  |  4 ++--
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index bc313f9..eeb07d1 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -3024,7 +3024,7 @@ __PACKAGE__->register_method({
 	    PVE::Storage::storage_check_enabled($storecfg, $storage);
 	    if ($target) {
 		# check if storage is available on target node
-		PVE::Storage::storage_check_node($storecfg, $storage, $target);
+		PVE::Storage::storage_check_enabled($storecfg, $storage, $target);
 		# clone only works if target storage is shared
 		my $scfg = PVE::Storage::storage_config($storecfg, $storage);
 		die "can't clone to non-shared storage '$storage'\n" if !$scfg->{shared};
@@ -3687,7 +3687,7 @@ __PACKAGE__->register_method({
 	if (my $targetstorage = $param->{targetstorage}) {
 	    my $check_storage = sub {
 		my ($target_sid) = @_;
-		PVE::Storage::storage_check_node($storecfg, $target_sid, $target);
+		PVE::Storage::storage_check_enabled($storecfg, $target_sid, $target);
 		$rpcenv->check($authuser, "/storage/$target_sid", ['Datastore.AllocateSpace']);
 		my $scfg = PVE::Storage::storage_config($storecfg, $target_sid);
 		raise_param_exc({ targetstorage => "storage '$target_sid' does not support vm images"})
diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
index 6375a15..2576196 100644
--- a/PVE/QemuMigrate.pm
+++ b/PVE/QemuMigrate.pm
@@ -340,8 +340,8 @@ sub prepare {
 	# check if storage is available on both nodes
 	my $targetsid = PVE::QemuServer::map_storage($self->{opts}->{storagemap}, $sid);
 
-	my $scfg = PVE::Storage::storage_check_node($self->{storecfg}, $sid);
-	PVE::Storage::storage_check_node($self->{storecfg}, $targetsid, $self->{node});
+	my $scfg = PVE::Storage::storage_check_enabled($self->{storecfg}, $sid);
+	PVE::Storage::storage_check_enabled($self->{storecfg}, $targetsid, $self->{node});
 
 	if ($scfg->{shared}) {
 	    # PVE::Storage::activate_storage checks this for non-shared storages
@@ -402,7 +402,7 @@ sub scan_local_volumes {
 
 	    my $targetsid = PVE::QemuServer::map_storage($self->{opts}->{storagemap}, $storeid);
 	    # check if storage is available on target node
-	    PVE::Storage::storage_check_node($storecfg, $targetsid, $self->{node});
+	    PVE::Storage::storage_check_enabled($storecfg, $targetsid, $self->{node});
 
 	    # grandfather in existing mismatches
 	    if ($targetsid ne $storeid) {
@@ -467,8 +467,8 @@ sub scan_local_volumes {
 
 	    my $targetsid = PVE::QemuServer::map_storage($self->{opts}->{storagemap}, $sid);
 	    # check if storage is available on both nodes
-	    my $scfg = PVE::Storage::storage_check_node($storecfg, $sid);
-	    PVE::Storage::storage_check_node($storecfg, $targetsid, $self->{node});
+	    my $scfg = PVE::Storage::storage_check_enabled($storecfg, $sid);
+	    PVE::Storage::storage_check_enabled($storecfg, $targetsid, $self->{node});
 
 	    return if $scfg->{shared};
 
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 6d9cf2d..bd00af3 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -2456,8 +2456,8 @@ sub check_storage_availability {
 	return if !$sid;
 
 	# check if storage is available on both nodes
-	my $scfg = PVE::Storage::storage_check_node($storecfg, $sid);
-	PVE::Storage::storage_check_node($storecfg, $sid, $node);
+	my $scfg = PVE::Storage::storage_check_enabled($storecfg, $sid);
+	PVE::Storage::storage_check_enabled($storecfg, $sid, $node);
    });
 }
 
-- 
2.30.2






More information about the pve-devel mailing list