>>Can we avoid the useless check by doing something like this:
I'll try that tomorrow ----- Mail original ----- De: "Dietmar Maurer" <[email protected]> À: "Alexandre DERUMIER" <[email protected]> Cc: [email protected] Envoyé: Mardi 4 Juin 2013 13:26:52 Objet: RE: [pve-devel] update disk config, always rescan all the storage, can we avoid that ? Can we avoid the useless check by doing something like this: diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm index 24b57ad..111c731 100644 --- a/PVE/API2/Qemu.pm +++ b/PVE/API2/Qemu.pm @@ -133,6 +133,15 @@ my $create_disks = sub { my $foundvolid = undef; if ($storeid) { + + my $volid_is_new = 1; + if ($conf->{$ds}) { + my $olddrive = PVE::QemuServer::parse_drive($ds, $conf->{$ds}); + $volid_is_new = 0 if $olddrive->{file} && $olddrive->{file} eq $volid; + } + + # fixme: avoid storage scans if $volid_is_new = 0 + PVE::Storage::activate_volumes($storecfg, [ $volid ]); my $dl = PVE::Storage::vdisk_list($storecfg, $storeid, undef); > > >>Yes. But otherwise $settings does not contain drives, so calling > > >>creat_disks shoukd have no effect? > > > > $settings in never empty, as we update the full disk config. > > > > example, to update bandwith limit: > > > > qm update --virtio0 local:1/vm-1-disk-1,cache=none,size=10G,mbps_rd=10 > > ah, got it now - test cases really helps ;-) > > but I have no real idea how to implement that cleanly. > > Some time ago I though we can simplify the whole vm_update by restricting > the function to change only a single option (and provide a separate update > function for each option type), but I am not sure. _______________________________________________ pve-devel mailing list [email protected] http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
