[pve-devel] [PATCH v2 storage] api: config: add/update storage: check for type mismatch first

Fiona Ebner f.ebner at proxmox.com
Mon Jun 12 16:27:33 CEST 2023

This avoids confusing errors about other properties when the storage
type doesn't match. By highlighting that the type doesn't match, users
should know right away what the issue is.

Signed-off-by: Fiona Ebner <f.ebner at proxmox.com>

Changes in v2:
    * Avoid unshift, prepend type directly to loop list.

 src/PVE/API2/Storage/Config.pm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/PVE/API2/Storage/Config.pm b/src/PVE/API2/Storage/Config.pm
index 821db21..0716916 100755
--- a/src/PVE/API2/Storage/Config.pm
+++ b/src/PVE/API2/Storage/Config.pm
@@ -87,8 +87,8 @@ sub create_or_update {
 	die "Storage ID '${sid}' already exists on node ${node}\n"
 	    if !defined($scfg->{nodes}) || $scfg->{nodes}->{$node};
-	push @$verify_params, 'type';
-	for my $key (@$verify_params) {
+	# check for type mismatch first to get a clear error
+	for my $key ('type', $verify_params->@*) {
 	    if (!defined($scfg->{$key})) {
 		die "Option '${key}' is not configured for storage '$sid', "
 		    ."expected it to be '$storage_params->{$key}'";

More information about the pve-devel mailing list