file_size_info: move parser to own variable
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
@ -712,36 +712,36 @@ sub file_size_info {
|
|||||||
return wantarray ? (0, 'subvol', 0, undef) : 1;
|
return wantarray ? (0, 'subvol', 0, undef) : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
my $cmd = ['/usr/bin/qemu-img', 'info', $filename];
|
|
||||||
|
|
||||||
my $format;
|
my $format;
|
||||||
my $parent;
|
my $parent;
|
||||||
my $size = 0;
|
my $size = 0;
|
||||||
my $used = 0;
|
my $used = 0;
|
||||||
|
|
||||||
eval {
|
my $parse_qemu_img_info = sub {
|
||||||
run_command($cmd, timeout => $timeout, outfunc => sub {
|
my $line = shift;
|
||||||
my $line = shift;
|
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/) {
|
||||||
} elsif ($line =~ m/^backing file:\s(\S+)\s/) {
|
$parent = $1;
|
||||||
$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*$/) {
|
$used = $1;
|
||||||
$used = $1;
|
my $u = $3;
|
||||||
my $u = $3;
|
|
||||||
|
|
||||||
$used *= 1024 if $u eq 'K';
|
$used *= 1024 if $u eq 'K';
|
||||||
$used *= (1024*1024) if $u eq 'M';
|
$used *= (1024*1024) if $u eq 'M';
|
||||||
$used *= (1024*1024*1024) if $u eq 'G';
|
$used *= (1024*1024*1024) if $u eq 'G';
|
||||||
$used *= (1024*1024*1024*1024) if $u eq 'T';
|
$used *= (1024*1024*1024*1024) if $u eq 'T';
|
||||||
|
|
||||||
$used = int($used);
|
$used = int($used);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
my $cmd = ['/usr/bin/qemu-img', 'info', $filename];
|
||||||
|
eval {
|
||||||
|
run_command($cmd, timeout => $timeout, outfunc => $parse_qemu_img_info );
|
||||||
|
};
|
||||||
warn $@ if $@;
|
warn $@ if $@;
|
||||||
|
|
||||||
return wantarray ? ($size, $format, $used, $parent) : $size;
|
return wantarray ? ($size, $format, $used, $parent) : $size;
|
||||||
|
|||||||
Reference in New Issue
Block a user