add the possibility to use a hash for parameter mapping
authorDominik Csapak <d.csapak@proxmox.com>
Fri, 15 Jun 2018 13:28:42 +0000 (15:28 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 19 Jun 2018 09:56:00 +0000 (11:56 +0200)
instead of writing:
['name', sub {...}, 'description', 1]

one can now use:
{
    name => 'name',
    func => sub { ... },
    desc => 'desc',
    interactive => 1,
}

which makes it more obvious what is what
(and allows later patches to easily override some things)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
src/PVE/RESTHandler.pm

index 50c37c2..61dee20 100644 (file)
@@ -553,6 +553,10 @@ my $compute_param_mapping_hash = sub {
        my ($name, $func, $desc, $interactive);
        if (ref($item) eq 'ARRAY') {
            ($name, $func, $desc, $interactive) = @$item;
+       } elsif (ref($item) eq 'HASH') {
+           # just use the hash
+           $res->{$item->{name}} = $item;
+           next;
        } else {
            $name = $item;
            $func = sub { return PVE::Tools::file_get_contents($_[0]) };