[pve-devel] r4907 - pve-storage/pve2

svn-commits at proxmox.com svn-commits at proxmox.com
Fri Jul 16 14:01:11 CEST 2010


Author: dietmar
Date: 2010-07-16 12:01:11 +0000 (Fri, 16 Jul 2010)
New Revision: 4907

Modified:
   pve-storage/pve2/ChangeLog
   pve-storage/pve2/Storage.pm
Log:
* Storage.pm (parse_options): added ability to verify a
	HASH (needed by REST API)



Modified: pve-storage/pve2/ChangeLog
===================================================================
--- pve-storage/pve2/ChangeLog	2010-07-16 06:52:09 UTC (rev 4906)
+++ pve-storage/pve2/ChangeLog	2010-07-16 12:01:11 UTC (rev 4907)
@@ -1,3 +1,8 @@
+2010-07-16  Proxmox Support Team  <support at proxmox.com>
+
+	* Storage.pm (parse_options): added ability to verify a
+	HASH (needed by REST API)
+
 2010-01-25  Proxmox Support Team  <support at proxmox.com>
 
 	* Storage.pm (parse_lvm_name, parse_storage_id, parse_volume_id):

Modified: pve-storage/pve2/Storage.pm
===================================================================
--- pve-storage/pve2/Storage.pm	2010-07-16 06:52:09 UTC (rev 4906)
+++ pve-storage/pve2/Storage.pm	2010-07-16 12:01:11 UTC (rev 4907)
@@ -723,17 +723,33 @@
  	}
     };
 
-    my $getopt;
-    foreach my $opt (keys %{$default_config->{$stype}}) {
-	$getopt->{"$opt=s"} = $get_option_func;
-    }
+    my $ptype = ref($param) || die "internal error";
+    if (ref($param) eq 'ARRAY') {
+	my $getopt;
+	foreach my $opt (keys %{$default_config->{$stype}}) {
+	    $getopt->{"$opt=s"} = $get_option_func;
+	}
 
-    if (!GetOptionsFromArray ($param, %$getopt) || $errmsg) {
-	if ($errmsg) {
-	    die "$errmsg\n";
-	} else {
-	    die "unable to parse options\n";
+	if (!GetOptionsFromArray ($param, %$getopt) || $errmsg) {
+	    if ($errmsg) {
+		die "$errmsg\n";
+	    } else {
+		die "unable to parse options\n";
+	    }
 	}
+    } else {
+	eval {
+	    foreach my $opt (keys %$param) {
+		&$get_option_func($opt, $param->{$opt});
+	    }
+	};
+	if ($@) {
+	    if ($errmsg) {
+		die "$errmsg\n";
+	    } else {
+		die "unable to parse options\n";
+	    }
+	}
     }
 
     if ($create) {



More information about the pve-devel mailing list