]> git.proxmox.com Git - pve-storage.git/commitdiff
add 'format' parameter to storage list call
authorDominik Csapak <d.csapak@proxmox.com>
Fri, 10 Nov 2017 13:49:18 +0000 (14:49 +0100)
committerFabian Grünbichler <f.gruenbichler@proxmox.com>
Tue, 14 Nov 2017 12:23:52 +0000 (13:23 +0100)
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>
PVE/API2/Storage/Status.pm
PVE/Storage.pm

index c6e3b1a0eb30fc4de461f2237e60103c66f94a6a..d18da5bffe2afc864f37a1fd3863846c6c146858 100644 (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}});
index 94be04ef4185c3b441b63a75f652a1a70063b2a7..73b21e11fcffa57d23602d9220a81e3f6043e9e1 100755 (executable)
@@ -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 $@;