>>Thanks. Do you think it would make sense to add: 
>>
>>sub volume_exists($volid) 
>>
>>to our storage library?

Yes, maybe, this can avoid to list all images.

Another way could be to reuse volume_size_info, if the volume don't exist, it 
should die



By the way, I see in VZdump/QemuServer.pm, just after the if $path exist:

my ($size, $format) = PVE::Storage::Plugin::file_size_info($path);

only use to find format of files.



So maybe can we remove the $path check, and simply replace 
PVE::Storage::Plugin::file_size_info by PVE::Storage::volume_size_info 
?

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

De: "Dietmar Maurer" <[email protected]> 
À: "Alexandre Derumier" <[email protected]>, [email protected] 
Envoyé: Samedi 16 Février 2013 19:38:04 
Objet: RE: [pve-devel] [PATCH] vzdump : fix check if volid exist for "virtual" 
storage : rbd, sheepdog, nexenta 

Thanks. Do you think it would make sense to add: 

sub volume_exists($volid) 

to our storage library? 

> -----Original Message----- 
> From: [email protected] [mailto:pve-devel- 
> [email protected]] On Behalf Of Alexandre Derumier 
> Sent: Samstag, 16. Februar 2013 18:23 
> To: [email protected] 
> Subject: [pve-devel] [PATCH] vzdump : fix check if volid exist for "virtual" 
> storage : rbd, sheepdog, nexenta 
> 
> 
> Signed-off-by: Alexandre Derumier <[email protected]> 
> --- 
> PVE/VZDump/QemuServer.pm | 14 +++++++++++++- 
> 1 file changed, 13 insertions(+), 1 deletion(-) 
> 
> diff --git a/PVE/VZDump/QemuServer.pm b/PVE/VZDump/QemuServer.pm 
> index ad85cc2..0f2536e 100644 
> --- a/PVE/VZDump/QemuServer.pm 
> +++ b/PVE/VZDump/QemuServer.pm 
> @@ -94,7 +94,19 @@ sub prepare { 
> 
> next if !$path; 
> 
> - die "no such volume '$volid'\n" if ! -e $path; 
> + if (! -e $path){ 
> + my $dl = PVE::Storage::vdisk_list($self->{storecfg}, $storeid, undef); 
> + my $foundvolid = undef; 
> + 
> + PVE::Storage::foreach_volid($dl, sub { 
> + my ($volumeid) = @_; 
> + if($volumeid eq $volid) { 
> + $foundvolid = 1; 
> + return; 
> + } 
> + }); 
> + die "no such volume '$volid'\n" if !$foundvolid; 
> + } 
> 
> my ($size, $format) = PVE::Storage::Plugin::file_size_info($path); 
> 
> -- 
> 1.7.10.4 
> 
> _______________________________________________ 
> pve-devel mailing list 
> [email protected] 
> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel 
_______________________________________________
pve-devel mailing list
[email protected]
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to