comments inline

> On June 8, 2018 at 9:44 AM René Jochum <r.joc...@proxmox.com> wrote:
> 
> 
> ---
>  PVE/APIClient/Commands/lxc.pm | 82
> ++++++++++++++++++++++++++++++++++++++++++-
>  PVE/APIClient/Helpers.pm      | 14 ++++++++
>  2 files changed, 95 insertions(+), 1 deletion(-)
> 
> diff --git a/PVE/APIClient/Commands/lxc.pm b/PVE/APIClient/Commands/lxc.pm
> index f0c85f7..0f6f638 100644
> --- a/PVE/APIClient/Commands/lxc.pm
> +++ b/PVE/APIClient/Commands/lxc.pm
> @@ -18,6 +18,7 @@ use PVE::PTY;
>  
>  use base qw(PVE::CLIHandler);
>  use PVE::APIClient::Config;
> +use PVE::APIClient::Helpers;
>  
>  my $CRLF = "\x0D\x0A";
>  my $max_payload_size = 128*1024;
> @@ -356,14 +357,93 @@ __PACKAGE__->register_method ({
>       additionalProperties => 0,
>       properties => {
>           remote => get_standard_option('pveclient-remote-name'),
> +         format => {
> +             type => 'string',
> +             description => 'Output format',
> +             enum => [ 'table', 'json' ],
> +             optional => 1,
> +             default => 'table',
> +         }
>       },
>      },
>      returns => { type => 'null'},
>      code => sub {
>       my ($param) = @_;
>  
> -     die "implement me";
> +     my $config = PVE::APIClient::Config->load();
> +     my $conn = PVE::APIClient::Config->remote_conn($config, 
> $param->{remote});
> +     my $resources = $conn->get('api2/json/cluster/resources', { type => 
> 'vm' });
> +     my $lxcs = [grep({$_->{type} eq "lxc"} @$resources)];
> +
> +     my $glxcs = [];
> +     for my $el (@$lxcs) {
> +         my $node = $el->{node};
> +         my $vmid = $el->{vmid};
> +
> +         my $lxc_config = 
> $conn->get("api2/json/nodes/$node/lxc/$vmid/config",
> {});

This is probably a bad idea, because you generate one additional API call for
each guest.
On large clusters, this generate and really high number of calls.

The whole purpose of /cluster/resources is to avoid this.

_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to