[pve-devel] [PATCH storage v2 2/4] api2/storage/content: change to volume_size_info and add return properties
Dominik Csapak
d.csapak at proxmox.com
Tue Nov 24 10:09:31 CET 2020
'file_size_info' only works for directory based storages, while
'volume_size_info' should work for all
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
PVE/API2/Storage/Content.pm | 29 ++++++++++++++++++++++++++---
1 file changed, 26 insertions(+), 3 deletions(-)
diff --git a/PVE/API2/Storage/Content.pm b/PVE/API2/Storage/Content.pm
index d4e2392..7b81171 100644
--- a/PVE/API2/Storage/Content.pm
+++ b/PVE/API2/Storage/Content.pm
@@ -263,7 +263,30 @@ __PACKAGE__->register_method ({
},
},
},
- returns => { type => 'object' },
+ returns => {
+ type => 'object',
+ properties => {
+ path => {
+ description => "The Path",
+ type => 'string',
+ },
+ size => {
+ description => "Volume size in bytes.",
+ type => 'integer',
+ renderer => 'bytes',
+ },
+ used => {
+ description => "Used space. Please note that most storage plugins " .
+ "do not report anything useful here.",
+ type => 'integer',
+ renderer => 'bytes',
+ },
+ format => {
+ description => "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
+ type => 'string',
+ },
+ },
+ },
code => sub {
my ($param) = @_;
@@ -277,8 +300,8 @@ __PACKAGE__->register_method ({
PVE::Storage::check_volume_access($rpcenv, $authuser, $cfg, undef, $volid);
my $path = PVE::Storage::path($cfg, $volid);
- my ($size, $format, $used, $parent) = PVE::Storage::file_size_info($path);
- die "file_size_info on '$volid' failed\n" if !($format && $size);
+ my ($size, $format, $used, $parent) = PVE::Storage::volume_size_info($cfg, $volid);
+ die "volume_size_info on '$volid' failed\n" if !($format && $size);
# fixme: return more attributes?
return {
--
2.20.1
More information about the pve-devel
mailing list