files: retrieve parent of a clone
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
This commit is contained in:
committed by
Dietmar Maurer
parent
3f13fd7dc3
commit
73b7847e53
@ -458,6 +458,7 @@ sub file_size_info {
|
|||||||
my $cmd = ['/usr/bin/qemu-img', 'info', $filename];
|
my $cmd = ['/usr/bin/qemu-img', 'info', $filename];
|
||||||
|
|
||||||
my $format;
|
my $format;
|
||||||
|
my $parent;
|
||||||
my $size = 0;
|
my $size = 0;
|
||||||
my $used = 0;
|
my $used = 0;
|
||||||
|
|
||||||
@ -467,6 +468,8 @@ sub file_size_info {
|
|||||||
|
|
||||||
if ($line =~ m/^file format:\s+(\S+)\s*$/) {
|
if ($line =~ m/^file format:\s+(\S+)\s*$/) {
|
||||||
$format = $1;
|
$format = $1;
|
||||||
|
} elsif ($line =~ m/^backing file:\s(\S+)\s/) {
|
||||||
|
$parent = $1;
|
||||||
} elsif ($line =~ m/^virtual size:\s\S+\s+\((\d+)\s+bytes\)$/) {
|
} elsif ($line =~ m/^virtual size:\s\S+\s+\((\d+)\s+bytes\)$/) {
|
||||||
$size = int($1);
|
$size = int($1);
|
||||||
} elsif ($line =~ m/^disk size:\s+(\d+(.\d+)?)([KMGT])\s*$/) {
|
} elsif ($line =~ m/^disk size:\s+(\d+(.\d+)?)([KMGT])\s*$/) {
|
||||||
@ -483,7 +486,7 @@ sub file_size_info {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
return wantarray ? ($size, $format, $used) : $size;
|
return wantarray ? ($size, $format, $used, $parent) : $size;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub volume_size_info {
|
sub volume_size_info {
|
||||||
@ -581,12 +584,12 @@ sub list_images {
|
|||||||
next if defined($vmid) && ($owner ne $vmid);
|
next if defined($vmid) && ($owner ne $vmid);
|
||||||
}
|
}
|
||||||
|
|
||||||
my ($size, $format, $used) = file_size_info($fn);
|
my ($size, $format, $used, $parent) = file_size_info($fn);
|
||||||
|
|
||||||
if ($format && $size) {
|
if ($format && $size) {
|
||||||
push @$res, {
|
push @$res, {
|
||||||
volid => $volid, format => $format,
|
volid => $volid, format => $format,
|
||||||
size => $size, vmid => $owner, used => $used };
|
size => $size, vmid => $owner, used => $used, parent => $parent };
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user