[pve-devel] [PATCH] RBDPlugin: introduce rbd_unittobytes / rbd tends to be human readable

Alexandre DERUMIER aderumier at odiso.com
Tue Jan 22 06:52:20 CET 2013


Good catch, I Thinked that values was always Megabytes :/


----- Mail original ----- 

De: "Stefan Priebe" <s.priebe at profihost.ag> 
À: pve-devel at pve.proxmox.com 
Envoyé: Lundi 21 Janvier 2013 15:23:47 
Objet: [pve-devel] [PATCH] RBDPlugin: introduce rbd_unittobytes / rbd tends to be human readable 


Signed-off-by: Stefan Priebe <s.priebe at profihost.ag> 
--- 
PVE/Storage/RBDPlugin.pm | 20 +++++++++++++------- 
1 file changed, 13 insertions(+), 7 deletions(-) 

diff --git a/PVE/Storage/RBDPlugin.pm b/PVE/Storage/RBDPlugin.pm 
index 1e27ccb..e77b768 100644 
--- a/PVE/Storage/RBDPlugin.pm 
+++ b/PVE/Storage/RBDPlugin.pm 
@@ -9,6 +9,14 @@ use PVE::JSONSchema qw(get_standard_option); 

use base qw(PVE::Storage::Plugin); 

+sub rbd_unittobytes { 
+ { 
+ "M" => 1024*1024, 
+ "G" => 1024*1024*1024, 
+ "T" => 1024*1024*1024*1024, 
+ } 
+} 
+ 
my $rbd_cmd = sub { 
my ($scfg, $storeid, $op, @options) = @_; 

@@ -51,12 +59,12 @@ sub rbd_ls { 
my $parser = sub { 
my $line = shift; 

- 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); 
+ if ($line =~ m/^(vm-(\d+)-disk-\d+)\s+(\d+)(M|G|T)\s((\S+)\/(vm-\d+-\S+@\S+))?/) { 
+ my ($image, $owner, $size, $unit, $parent) = ($1, $2, $3, $4, $7); 

$list->{$scfg->{pool}}->{$image} = { 
name => $image, 
- size => $size*1024*1024, 
+ size => $size*rbd_unittobytes()->{$unit}, 
parent => $parent, 
vmid => $owner 
}; 
@@ -83,8 +91,8 @@ sub rbd_volume_info { 
my $parser = sub { 
my $line = shift; 

- if ($line =~ m/size (\d+) MB in (\d+) objects/) { 
- $size = $1; 
+ if ($line =~ m/size (\d+) (M|G|T)B in (\d+) objects/) { 
+ $size = $1 * $unittobytes{$2} if ($1); 
} elsif ($line =~ m/parent:\s(\S+)\/(\S+)/) { 
$parent = $2; 
} 
@@ -92,8 +100,6 @@ sub rbd_volume_info { 

run_command($cmd, errmsg => "rbd error", errfunc => sub {}, outfunc => $parser); 

- $size = $size*1024*1024 if $size; 
- 
return ($size, $parent); 
} 

-- 
1.7.10.4 

_______________________________________________ 
pve-devel mailing list 
pve-devel at pve.proxmox.com 
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel 



More information about the pve-devel mailing list