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 <[email protected]>
---
 PVE/API2/Storage/Status.pm |  8 +++++++-
 PVE/Storage.pm             | 12 ++++++++++--
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/PVE/API2/Storage/Status.pm b/PVE/API2/Storage/Status.pm
index c6e3b1a..d18da5b 100644
--- a/PVE/API2/Storage/Status.pm
+++ b/PVE/API2/Storage/Status.pm
@@ -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}});
diff --git a/PVE/Storage.pm b/PVE/Storage.pm
index 94be04e..73b21e1 100755
--- a/PVE/Storage.pm
+++ b/PVE/Storage.pm
@@ -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 $@;
-- 
2.11.0


_______________________________________________
pve-devel mailing list
[email protected]
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to