use base qw(PVE::RESTHandler);
-my $extract_pool_data = sub {
- my ($data, $full) = @_;
-
- my $res = {};
-
- $res->{comment} = $data->{comment} if defined($data->{comment});
-
- return $res if !$full;
-
- $res->{vms} = $data->{vms} ? [ keys %{$data->{vms}} ] : [];
-
- $res->{storages} = $data->{storage} ? [ keys %{$data->{storage}} ] : [];
-
- return $res;
-};
-
__PACKAGE__->register_method ({
name => 'index',
path => '',
my $usercfg = $rpcenv->{user_cfg};
- foreach my $poolpath (keys %{$usercfg->{pools}}) {
- my $entry = &$extract_pool_data($usercfg->{pools}->{$poolpath});
- $entry->{poolid} = $poolpath;
+ foreach my $pool (keys %{$usercfg->{pools}}) {
+ my $entry = { poolid => $pool };
+ my $data = $usercfg->{pools}->{$pool};
+ $entry->{comment} = $data->{comment} if defined($data->{comment});
push @$res, $entry;
}
return undef;
}});
-# fixme: return format!
__PACKAGE__->register_method ({
name => 'read_pool',
path => '{poolid}',
},
},
returns => {
- type => 'array',
- items => {
- type => "object",
- additionalProperties => 0,
- properties => {
- type => { type => 'string', enum => ['vm', 'storage'] },
- id => { type => 'string' },
- vmid => { type => 'integer', optional => 1 },
- storage => { type => 'string', optional => 1 },
+ type => "object",
+ additionalProperties => 0,
+ properties => {
+ comment => { type => 'string', optional => 1 },
+ members => {
+ type => 'array',
+ items => {
+ type => "object",
+ additionalProperties => 0,
+ properties => {
+ type => { type => 'string', enum => ['vm', 'storage'] },
+ id => { type => 'string' },
+ vmid => { type => 'integer', optional => 1 },
+ storage => { type => 'string', optional => 1 },
+ },
+ },
},
},
},
die "pool '$pool' does not exist\n"
if !$data;
- my $res = [];
+ my $members = [];
foreach my $vmid (keys %{$data->{vms}}) {
- push @$res, {
+ push @$members, {
id => "vm/$vmid",
vmid => $vmid + 0,
type => 'vm',
}
foreach my $storage (keys %{$data->{storage}}) {
- push @$res, {
+ push @$members, {
id => "storage/$storage",
storage => $storage,
type => 'storage',
};
}
+ my $res = { members => $members };
+ $res->{comment} = $data->{comment} if defined($data->{comment});
+
return $res;
}});