add 'format' parameter to storage list call

we will use this for the gui to figure out if we have to show
a size selector, a file selector, which formats are there, etc.

we have to include this data even for not active storages, else
we cannot show the correct fields

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
Dominik Csapak
2017-11-10 14:49:18 +01:00
committed by Fabian Grünbichler
parent 5da48ca6ea
commit 856c54bd75
2 changed files with 17 additions and 3 deletions

View File

@ -63,6 +63,12 @@ __PACKAGE__->register_method ({
optional => 1,
completion => \&PVE::Cluster::get_nodelist,
}),
format => {
description => "Include information about formats",
type => 'boolean',
optional => 1,
default => 0,
},
},
},
returns => {
@ -87,7 +93,7 @@ __PACKAGE__->register_method ({
my $cfg = PVE::Storage::config();
my $info = PVE::Storage::storage_info($cfg, $param->{content});
my $info = PVE::Storage::storage_info($cfg, $param->{content}, $param->{format});
raise_param_exc({ storage => "No such storage." })
if $param->{storage} && !defined($info->{$param->{storage}});

View File

@ -1001,7 +1001,7 @@ sub deactivate_volumes {
}
sub storage_info {
my ($cfg, $content) = @_;
my ($cfg, $content, $includeformat) = @_;
my $ids = $cfg->{ids};
@ -1048,13 +1048,21 @@ sub storage_info {
next if !$info->{$storeid};
next if !$info->{$storeid}->{enabled};
my $plugin = PVE::Storage::Plugin->lookup($scfg->{type});
if ($includeformat) {
my $pd = $plugin->plugindata();
$info->{$storeid}->{format} = $pd->{format}
if $pd->{format};
$info->{$storeid}->{select_existing} = $pd->{select_existing}
if $pd->{select_existing};
}
eval { activate_storage($cfg, $storeid, $cache); };
if (my $err = $@) {
warn $err;
next;
}
my $plugin = PVE::Storage::Plugin->lookup($scfg->{type});
my ($total, $avail, $used, $active);
eval { ($total, $avail, $used, $active) = $plugin->status($storeid, $scfg, $cache); };
warn $@ if $@;