clone_vm: auto generate new uuid
authorDietmar Maurer <dietmar@proxmox.com>
Tue, 26 Aug 2014 07:20:09 +0000 (09:20 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Tue, 26 Aug 2014 07:20:09 +0000 (09:20 +0200)
PVE/API2/Qemu.pm
PVE/QemuServer.pm

index 165dc3dd1cf6496ebebf6266bb3aaa61cde29535..985a9f8c1caace2d127f6d9c11bca7b4f5dc620e 100644 (file)
@@ -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}) {
index 0476e3cb7d011977b2aa2dec4219e37a23275fe1..49356f2558a95610bb9a4c3e311458c940ee578f 100644 (file)
@@ -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) = @_;