[pve-devel] [pve-common 4/4] pvesh: use standard output options

Dietmar Maurer dietmar at proxmox.com
Wed Jul 11 11:19:45 CEST 2018


Signed-off-by: Dietmar Maurer <dietmar at proxmox.com>
---
 bin/pvesh | 34 +++++++++++++++-------------------
 1 file changed, 15 insertions(+), 19 deletions(-)

diff --git a/bin/pvesh b/bin/pvesh
index 7c6e44a0..36c9a900 100755
--- a/bin/pvesh
+++ b/bin/pvesh
@@ -222,35 +222,31 @@ if (my $info = extract_path_info($uri_param)) {
     $path_returns = $info->{returns};
 }
 
-$path_properties->{format} = get_standard_option('pve-output-format');
 $path_properties->{api_path} = $api_path_property;
 $path_properties->{noproxy} = {
     description => "Disable automatic proxying.",
     type => 'boolean',
     optional => 1,
 };
-$path_properties->{quiet} = {
-    description => "Suppress printing results.",
-    type => 'boolean',
-    optional => 1,
-};
 
 my $format_result = sub {
-    my ($data, $result_schema, $options) = @_;
+    my ($data, $schema, $options) = @_;
 
-    return if $opt_nooutput || ($options->{format}//'') eq 'none';
+    return if $opt_nooutput || $options->{quiet}; # fixme:??
 
     PVE::CLIFormatter::print_api_result($data, $path_returns, undef, $options);
 };
 
 sub call_api_method {
-    my ($cmd, $param) = @_;
+    my ($cmd, $param, $options) = @_;
 
     my $method = $method_map->{$cmd} || die "unable to map command '$cmd'";
 
     my $path = PVE::Tools::extract_param($param, 'api_path');
     die "missing API path\n" if !defined($path);
 
+    $opt_nooutput = 1 if $options->{quiet};
+
     my $uri_param = {};
     my ($handler, $info) = PVE::API2->find_handler($method, $path, $uri_param);
     if (!$handler || !$info) {
@@ -264,7 +260,7 @@ sub call_api_method {
 	$param->{$p} = $uri_param->{$p};
     }
 
-    my $data = $handler->handle($info, $param);
+    my $data = $handler->handle($info, $param, $options);
 
     return $data;
 }
@@ -280,9 +276,9 @@ __PACKAGE__->register_method ({
     },
     returns => $path_returns,
     code => sub {
-	my ($param) = @_;
+	my ($param, $options) = @_;
 
-	return call_api_method('get', $param);
+	return call_api_method('get', $param, $options);
     }});
 
 __PACKAGE__->register_method ({
@@ -296,9 +292,9 @@ __PACKAGE__->register_method ({
     },
     returns => $path_returns,
     code => sub {
-	my ($param) = @_;
+	my ($param, $options) = @_;
 
-	return call_api_method('set', $param);
+	return call_api_method('set', $param, $options);
     }});
 
 __PACKAGE__->register_method ({
@@ -312,9 +308,9 @@ __PACKAGE__->register_method ({
     },
     returns => $path_returns,
     code => sub {
-	my ($param) = @_;
+	my ($param, $options) = @_;
 
-	return call_api_method('create', $param);
+	return call_api_method('create', $param, $options);
     }});
 
 __PACKAGE__->register_method ({
@@ -328,9 +324,9 @@ __PACKAGE__->register_method ({
     },
     returns => $path_returns,
     code => sub {
-	my ($param) = @_;
+	my ($param, $options) = @_;
 
-	return call_api_method('delete', $param);
+	return call_api_method('delete', $param, $options);
     }});
 
 __PACKAGE__->register_method ({
@@ -362,7 +358,7 @@ __PACKAGE__->register_method ({
     },
     returns => { type => 'null' },
     code => sub {
-	my ($param) = @_;
+	my ($param, $options) = @_;
 
 	my $path = $param->{api_path};
 
-- 
2.11.0




More information about the pve-devel mailing list