From e97bbbb64d30a0610054a6c368f3c7462dcc5e52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= Date: Thu, 17 Nov 2022 14:33:40 +0100 Subject: [PATCH] pending changes: allow skipping cloud-init MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit in case of remote migration, we use the `update_vm_api` helper for checking permissions on the incoming config. this would also cause an incoming cloud-init image to be overwritten, since the VM is not running yet at this point. provide a parameter which can be set by an incoming *remote* migration to avoid having inconsistent cloud init images on the source and target side. Signed-off-by: Fabian Grünbichler --- PVE/QemuServer.pm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index b54ec69e..a0864081 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -5211,7 +5211,7 @@ sub vmconfig_delete_or_detach_drive { sub vmconfig_apply_pending { - my ($vmid, $conf, $storecfg, $errors) = @_; + my ($vmid, $conf, $storecfg, $errors, $skip_cloud_init) = @_; return if !scalar(keys %{$conf->{pending}}); @@ -5244,7 +5244,7 @@ sub vmconfig_apply_pending { PVE::QemuConfig->cleanup_pending($conf); - my $generate_cloudnit = undef; + my $generate_cloudnit = $skip_cloud_init ? 0 : undef; foreach my $opt (keys %{$conf->{pending}}) { # add/change next if $opt eq 'delete'; # just to be sure @@ -5259,7 +5259,7 @@ sub vmconfig_apply_pending { if (is_valid_drivename($opt)) { my $drive = parse_drive($opt, $conf->{pending}->{$opt}); - $generate_cloudnit = 1 if drive_is_cloudinit($drive); + $generate_cloudnit //= 1 if drive_is_cloudinit($drive); } $conf->{$opt} = delete $conf->{pending}->{$opt};