]> git.proxmox.com Git - pve-client.git/blobdiff - PVE/APIClient/Helpers.pm
implement pveclient api usage <path>
[pve-client.git] / PVE / APIClient / Helpers.pm
index ed1822d4a514dea06b3807c6c9feab7097d7fd50..9d599d6cd27b0b3f83d0ca688468aa9e8733f430 100644 (file)
@@ -9,6 +9,9 @@ use File::Path qw(make_path);
 
 use PVE::APIClient::JSONSchema;
 use PVE::APIClient::Exception qw(raise);
+use PVE::APIClient::CLIFormatter;
+use PVE::APIClient::CLIHandler;
+use PVE::APIClient::PTY;
 use Encode::Locale;
 use Encode;
 use HTTP::Status qw(:constants);
@@ -17,7 +20,7 @@ my $pve_api_definition;
 
 my $pve_api_definition_fn = "/usr/share/pve-client/pve-api-definition.dat";
 
-my $method_map = {
+our $method_map = {
     create => 'POST',
     set => 'PUT',
     get => 'GET',
@@ -395,5 +398,30 @@ sub ticket_cache_update {
     die $@ if $@;
 }
 
+sub extract_even_elements {
+    my ($list) = @_;
+
+    my $ind = 0;
+    return [ grep { ($ind++ % 2) == 0 } @$list ];
+}
+
+sub print_result {
+    my ($data, $result_schema, $param_order) = @_;
+
+    my $options = {};
+    PVE::APIClient::CLIFormatter::query_terminal_options($options);
+
+    my $format = get_output_format();
+    PVE::APIClient::CLIFormatter::print_api_result(
+       $format, $data, $result_schema, $param_order, $options);
+}
+
+sub print_ordered_result {
+    my ($property_list, $data, $result_schema) = @_;
+
+    my $param_order = extract_even_elements($property_list);
+
+    print_result($data, $result_schema, $param_order);
+}
 
 1;