rbd: use rbd ls -l
avoid to call rbd info for each volume Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
This commit is contained in:
committed by
Dietmar Maurer
parent
cbc6fef357
commit
7cb2889abb
@ -44,20 +44,19 @@ my $rados_cmd = sub {
|
|||||||
sub rbd_ls {
|
sub rbd_ls {
|
||||||
my ($scfg, $storeid) = @_;
|
my ($scfg, $storeid) = @_;
|
||||||
|
|
||||||
my $cmd = &$rbd_cmd($scfg, $storeid, 'ls');
|
my $cmd = &$rbd_cmd($scfg, $storeid, 'ls', '-l');
|
||||||
|
|
||||||
my $list = {};
|
my $list = {};
|
||||||
|
|
||||||
my $parser = sub {
|
my $parser = sub {
|
||||||
my $line = shift;
|
my $line = shift;
|
||||||
|
|
||||||
if ($line =~ m/^(vm-(\d+)-\S+)$/) {
|
if ($line =~ m/^(vm-(\d+)-disk-\d+)\s+(\d+)M\s((\S+)\/(vm-\d+-\S+@\S+))?/) {
|
||||||
my ($image, $owner) = ($1, $2);
|
my ($image, $owner, $size, $parent) = ($1, $2, $3, $6);
|
||||||
|
|
||||||
my ($size, $parent) = rbd_volume_info($scfg, $storeid, $image);
|
|
||||||
$list->{$scfg->{pool}}->{$image} = {
|
$list->{$scfg->{pool}}->{$image} = {
|
||||||
name => $image,
|
name => $image,
|
||||||
size => $size,
|
size => $size*1024*1024,
|
||||||
parent => $parent,
|
parent => $parent,
|
||||||
vmid => $owner
|
vmid => $owner
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user