Works fine here, Thanks !
----- Mail original ----- De: "Dietmar Maurer" <diet...@proxmox.com> À: "Alexandre Derumier" <aderum...@odiso.com>, pve-devel@pve.proxmox.com Envoyé: Mardi 11 Juin 2013 07:23:56 Objet: RE: [pve-devel] [PATCH] create_disks : avoid storage scan v3 Applied, thanks. But I tried to simplify the patch - please an you test if it still works? > -----Original Message----- > From: pve-devel-boun...@pve.proxmox.com [mailto:pve-devel- > boun...@pve.proxmox.com] On Behalf Of Alexandre Derumier > Sent: Montag, 10. Juni 2013 09:27 > To: pve-devel@pve.proxmox.com > Subject: [pve-devel] [PATCH] create_disks : avoid storage scan v3 > > > Signed-off-by: Alexandre Derumier <aderum...@odiso.com> > --- > PVE/API2/Qemu.pm | 33 ++++++++++++++++++--------------- > 1 file changed, 18 insertions(+), 15 deletions(-) > > diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm index > b99045e..5b88ee7 100644 > --- a/PVE/API2/Qemu.pm > +++ b/PVE/API2/Qemu.pm > @@ -130,25 +130,28 @@ my $create_disks = sub { > > my ($storeid, $volname) = PVE::Storage::parse_volume_id($volid, > 1); > > - my $foundvolid = undef; > + my $foundvolid = 1; > + my $volid_is_new = 1; > > - if ($storeid) { > - PVE::Storage::activate_volumes($storecfg, [ $volid ]); > - my $dl = PVE::Storage::vdisk_list($storecfg, $storeid, undef); > - > - PVE::Storage::foreach_volid($dl, sub { > - my ($volumeid) = @_; > - if($volumeid eq $volid) { > - $foundvolid = 1; > - return; > - } > - }); > + if ($conf->{$ds}) { > + my $olddrive = PVE::QemuServer::parse_drive($ds, $conf- > >{$ds}); > + $volid_is_new = undef if $olddrive->{file} && $olddrive- > >{file} eq > +$volid; > } > > - die "image '$path' does not exists\n" if (!(-f $path || -b $path || > $foundvolid)); > + if($volid_is_new){ > + > + PVE::Storage::activate_volumes($storecfg, [ $volid ]) if > $storeid; > + my $size = undef; > + eval { > + $size = PVE::Storage::volume_size_info($storecfg, $volid); > + die if !$size; > + $disk->{size} = $size; > + }; > + $foundvolid = undef if $@; > + > + die "volume $volid does not exists\n" if (!(-f $path || -b $path > || $foundvolid)); > + } > > - my ($size) = PVE::Storage::volume_size_info($storecfg, $volid, 1); > - $disk->{size} = $size; > $res->{$ds} = PVE::QemuServer::print_drive($vmid, $disk); > } > }); > -- > 1.7.10.4 > > _______________________________________________ > pve-devel mailing list > pve-devel@pve.proxmox.com > http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel