[pve-devel] applied: [PATCH pve-client 1/2] add new helper print_result

Dietmar Maurer dietmar at proxmox.com
Thu Jun 14 12:27:05 CEST 2018


applied

> On June 14, 2018 at 12:00 PM Dietmar Maurer <dietmar at proxmox.com> wrote:
> 
> 
> Signed-off-by: Dietmar Maurer <dietmar at proxmox.com>
> ---
>  PVE/APIClient/Helpers.pm | 34 ++++++++++++++++++++++++++++++++++
>  pveclient                |  7 +------
>  2 files changed, 35 insertions(+), 6 deletions(-)
> 
> diff --git a/PVE/APIClient/Helpers.pm b/PVE/APIClient/Helpers.pm
> index d8a7fba..7aec160 100644
> --- a/PVE/APIClient/Helpers.pm
> +++ b/PVE/APIClient/Helpers.pm
> @@ -60,6 +60,40 @@ sub get_output_format {
>      return $client_output_format;
>  }
>  
> +sub print_result {
> +    my ($data, $result_schema) = @_;
> +
> +    my $format = get_output_format();
> +
> +    return if $result_schema->{type} eq 'null';
> +
> +    # TODO: implement different output formats ($format)
> +
> +    if ($format eq 'json') {
> +	print to_json($data, {utf8 => 1, allow_nonref => 1, canonical => 1, pretty
> => 1 });
> +    } elsif ($format eq 'table') {
> +	my $type = $result_schema->{type};
> +	if ($type eq 'object') {
> +	    die "implement me";
> +	} elsif ($type eq 'array') {
> +	    my $item_type = $result_schema->{items}->{type};
> +	    if ($item_type eq 'object') {
> +		die "implement me";
> +	    } elsif ($item_type eq 'array') {
> +		die "implement me";
> +	    } else {
> +		foreach my $el (@$data) {
> +		    print "$el\n"
> +		}
> +	    }
> +	} else {
> +	    print "$data\n";
> +	}
> +    } else {
> +	die "internal error: unknown output format"; # should not happen
> +    }
> +}
> +
>  sub get_api_definition {
>  
>      if (!defined($pve_api_definition)) {
> diff --git a/pveclient b/pveclient
> index 404090f..f78770b 100755
> --- a/pveclient
> +++ b/pveclient
> @@ -98,12 +98,7 @@ $path_properties->{api_path} = {
>  my $format_result = sub {
>      my ($data) = @_;
>  
> -    my $format = PVE::APIClient::Helpers::get_output_format();
> -
> -    return if $path_returns->{type} eq 'null';
> -
> -    # TODO: implement different output formats ($format)
> -    print to_json($data, {utf8 => 1, allow_nonref => 1, canonical => 1,
> pretty => 1 });
> +    PVE::APIClient::Helpers::print_result($data, $path_returns);
>  };
>  
>  __PACKAGE__->register_method ({
> -- 
> 2.11.0
> 
> 



More information about the pve-devel mailing list