From 7cb2889abb7f63f76fc0af511d8e1f8eca5747dc Mon Sep 17 00:00:00 2001 From: Alexandre Derumier Date: Thu, 3 Jan 2013 09:57:53 +0100 Subject: [PATCH] rbd: use rbd ls -l avoid to call rbd info for each volume Signed-off-by: Alexandre Derumier --- PVE/Storage/RBDPlugin.pm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/PVE/Storage/RBDPlugin.pm b/PVE/Storage/RBDPlugin.pm index bbfae7c..1a2e91c 100644 --- a/PVE/Storage/RBDPlugin.pm +++ b/PVE/Storage/RBDPlugin.pm @@ -44,20 +44,19 @@ my $rados_cmd = sub { sub rbd_ls { my ($scfg, $storeid) = @_; - my $cmd = &$rbd_cmd($scfg, $storeid, 'ls'); + my $cmd = &$rbd_cmd($scfg, $storeid, 'ls', '-l'); my $list = {}; my $parser = sub { my $line = shift; - if ($line =~ m/^(vm-(\d+)-\S+)$/) { - my ($image, $owner) = ($1, $2); + if ($line =~ m/^(vm-(\d+)-disk-\d+)\s+(\d+)M\s((\S+)\/(vm-\d+-\S+@\S+))?/) { + my ($image, $owner, $size, $parent) = ($1, $2, $3, $6); - my ($size, $parent) = rbd_volume_info($scfg, $storeid, $image); $list->{$scfg->{pool}}->{$image} = { name => $image, - size => $size, + size => $size*1024*1024, parent => $parent, vmid => $owner }; -- 2.39.2