On 10/28/19 12:47 PM, Dominic Jäger wrote: > Functions like qm importovf can now set the "lock" property in a config file > before calling do_import. > > Signed-off-by: Dominic Jäger <d.jae...@proxmox.com> > --- > v1->v2: Edited only the commit message ("parameter lock" -> "lock property") > > PVE/CLI/qm.pm | 4 ++-- > PVE/QemuServer/ImportDisk.pm | 6 ++++-- > 2 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/PVE/CLI/qm.pm b/PVE/CLI/qm.pm > index acafdc0..3bf5f97 100755 > --- a/PVE/CLI/qm.pm > +++ b/PVE/CLI/qm.pm > @@ -488,7 +488,7 @@ __PACKAGE__->register_method ({ > die "storage $storeid does not support vm images\n" > if !$target_storage_config->{content}->{images}; > > - PVE::QemuServer::ImportDisk::do_import($source, $vmid, $storeid, { > format => $format }); > + PVE::QemuServer::ImportDisk::do_import($source, $vmid, $storeid, 0, { > format => $format }); > > return undef; > }}); > @@ -640,7 +640,7 @@ __PACKAGE__->register_method ({ > foreach my $disk (@{ $parsed->{disks} }) { > my ($file, $drive) = ($disk->{backing_file}, > $disk->{disk_address}); > PVE::QemuServer::ImportDisk::do_import($file, $vmid, > $storeid, > - { drive_name => $drive, format => $format }); > + 0, { drive_name => $drive, format => $format }); > } > > # reload after disks entries have been created > diff --git a/PVE/QemuServer/ImportDisk.pm b/PVE/QemuServer/ImportDisk.pm > index 5d391e6..9cae461 100755 > --- a/PVE/QemuServer/ImportDisk.pm > +++ b/PVE/QemuServer/ImportDisk.pm > @@ -12,7 +12,7 @@ use PVE::Tools qw(run_command extract_param); > # $optional->{drive_name} may be used to specify ide0, scsi1, etc ... > # $optional->{format} may be used to specify qcow2, raw, etc ... > sub do_import { > - my ($src_path, $vmid, $storage_id, $optional) = @_; > + my ($src_path, $vmid, $storage_id, $skiplock, $optional) = @_; > > my $drive_name = extract_param($optional, 'drive_name'); > my $format = extract_param($optional, 'format'); > @@ -41,7 +41,9 @@ sub do_import { > > my $create_drive = sub { > my $vm_conf = PVE::QemuConfig->load_config($vmid); > - PVE::QemuConfig->check_lock($vm_conf); > + if (!$skiplock) { > + PVE::QemuConfig->check_lock($vm_conf); > + } > > if ($drive_name) { > # should never happen as setting $drive_name is not exposed to > public interface >
applied, but I added a followup which completely changed how "skiplock" is passed. Namely, I renamed the do_import "$optional" parameter to, well, "$params" and added it as hash entry there. This allows to easily just omit it, and gives it clear semantics if it's used, i.e.: do_import($source, $vmid, $storeid, 1, { format => $format }); vs: do_import($source, $vmid, $storeid, { format => $format, skiplock => 1 }); Sorry, I should have seen this already on my first review... _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel