X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=PVE%2FQemuServer%2FCloudinit.pm;h=cdaf4e558eb0526d7ab8367383c912ba7036f327;hb=95a5135dad974c7eae249cf92b62b06fe911af33;hp=b7daa2a5e466ab795f3ded876aa1e348504accd3;hpb=9c88e854469d1ba8a5f17451147711c50e0a074a;p=qemu-server.git diff --git a/PVE/QemuServer/Cloudinit.pm b/PVE/QemuServer/Cloudinit.pm index b7daa2a5..cdaf4e55 100644 --- a/PVE/QemuServer/Cloudinit.pm +++ b/PVE/QemuServer/Cloudinit.pm @@ -574,6 +574,37 @@ sub generate_cloudinitconfig { $generator->($conf, $vmid, $drive, $volname, $storeid); }); + + my $cloudinitconf = delete $conf->{cloudinit}; + $cloudinitconf = {}; + + my @cloudinit_opts = keys %{PVE::QemuServer::cloudinit_config_properties()}; + push @cloudinit_opts, 'name'; + + for my $opt (@cloudinit_opts) { + + if ($opt =~ m/^ipconfig(\d+)/) { + my $netid = "net$1"; + next if !defined($conf->{$netid}); + $conf->{cloudinit}->{$netid} = $conf->{$netid}; + } + + $conf->{cloudinit}->{$opt} = $conf->{$opt} if $conf->{$opt}; + } + + $conf->{cloudinit}->{name} = "VM$vmid" if !$conf->{cloudinit}->{name}; + + for my $opt (keys %{$conf}) { + if (PVE::QemuServer::is_valid_drivename($opt)) { + my $drive = PVE::QemuServer::parse_drive($opt, $conf->{$opt}); + if (PVE::QemuServer::drive_is_cloudinit($drive)) { + $conf->{cloudinit}->{$opt} = $conf->{$opt}; + } + } + } + + PVE::QemuConfig->write_config($vmid, $conf); + } sub dump_cloudinit_config {