From: Dietmar Maurer Date: Tue, 26 Aug 2014 07:20:09 +0000 (+0200) Subject: clone_vm: auto generate new uuid X-Git-Url: https://git.proxmox.com/?p=qemu-server.git;a=commitdiff_plain;h=cd11416f7a5dbc3204aafdd89d372cd867a7d08;ds=sidebyside clone_vm: auto generate new uuid --- diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm index 165dc3d..985a9f8 100644 --- a/PVE/API2/Qemu.pm +++ b/PVE/API2/Qemu.pm @@ -2279,6 +2279,14 @@ __PACKAGE__->register_method({ } } + # auto generate a new uuid + my ($uuid, $uuid_str); + UUID::generate($uuid); + UUID::unparse($uuid, $uuid_str); + my $smbios1 = PVE::QemuServer::parse_smbios1($newconf->{smbios1} || ''); + $smbios1->{uuid} = $uuid_str; + $newconf->{smbios1} = PVE::QemuServer::print_smbios1($smbios1); + delete $newconf->{template}; if ($param->{name}) { diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 0476e3c..49356f2 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -1407,6 +1407,19 @@ sub parse_smbios1 { return $res; } +sub print_smbios1 { + my ($smbios1) = @_; + + my $data = ''; + foreach my $k (keys %$smbios1) { + next if !defined($smbios1->{$k}); + next if !$valid_smbios1_options->{$k}; + $data .= ',' if $data; + $data .= "$k=$smbios1->{$k}"; + } + return $data; +} + PVE::JSONSchema::register_format('pve-qm-smbios1', \&verify_smbios1); sub verify_smbios1 { my ($value, $noerr) = @_;