X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=blobdiff_plain;f=src%2FPVE%2FRESTHandler.pm;h=9e0980e9832ded60bae76730a14377f28b1c2b93;hp=edf23d155d8fe273e7a628b3b00bb5ba2bcdc46b;hb=408976c6f711f82895b105733b914660384160df;hpb=b9df2e606393a6276f0350706f2099d0e7bc2038 diff --git a/src/PVE/RESTHandler.pm b/src/PVE/RESTHandler.pm index edf23d1..9e0980e 100644 --- a/src/PVE/RESTHandler.pm +++ b/src/PVE/RESTHandler.pm @@ -631,14 +631,29 @@ sub dump_properties { return $raw; } +my $replace_file_names_with_contents = sub { + my ($param, $mapping) = @_; + + if ($mapping) { + foreach my $elem ( @$mapping ) { + $param->{$elem} = PVE::Tools::file_get_contents($param->{$elem}) + if defined($param->{$elem}); + } + } + + return $param; +}; + sub cli_handler { - my ($self, $prefix, $name, $args, $arg_param, $fixed_param, $pwcallback) = @_; + my ($self, $prefix, $name, $args, $arg_param, $fixed_param, $pwcallback, $stringfilemap) = @_; my $info = $self->map_method_by_name($name); my $res; eval { my $param = PVE::JSONSchema::get_options($info->{parameters}, $args, $arg_param, $fixed_param, $pwcallback); + &$replace_file_names_with_contents($param, &$stringfilemap($name)) + if defined($stringfilemap); $res = $self->handle($info, $param); }; if (my $err = $@) {