Blame SOURCES/virt-manager-cloner-Sync-uuid-and-sysinfo-system-uuid.patch

d80d1f
From deb27a8c7e1539e687d589edd7ea517018266f77 Mon Sep 17 00:00:00 2001
d80d1f
From: Cole Robinson <crobinso@redhat.com>
d80d1f
Date: Sun, 21 Aug 2022 16:21:10 -0400
d80d1f
Subject: [PATCH] cloner: Sync <uuid> and <sysinfo> system uuid
d80d1f
d80d1f
Otherwise libvirt errors like:
d80d1f
d80d1f
ERROR    UUID mismatch between <uuid> and <sysinfo>
d80d1f
d80d1f
https://bugzilla.redhat.com/show_bug.cgi?id=2038040
d80d1f
d80d1f
Signed-off-by: Cole Robinson <crobinso@redhat.com>
d80d1f
(cherry picked from commit b0d0516736320315a70f74aff3759fb35dd35d9d)
d80d1f
d80d1f
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2038040
d80d1f
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
d80d1f
---
d80d1f
 tests/data/cli/compare/virt-clone-auto-unmanaged.xml     | 5 +++++
d80d1f
 tests/data/cli/compare/virt-clone-unmanaged-preserve.xml | 5 +++++
d80d1f
 tests/data/cli/virtclone/clone-disk.xml                  | 5 +++++
d80d1f
 virtinst/cloner.py                                       | 6 ++++--
d80d1f
 4 files changed, 19 insertions(+), 2 deletions(-)
d80d1f
d80d1f
diff --git a/tests/data/cli/compare/virt-clone-auto-unmanaged.xml b/tests/data/cli/compare/virt-clone-auto-unmanaged.xml
d80d1f
index 21a9a6398..f2043be25 100644
d80d1f
--- a/tests/data/cli/compare/virt-clone-auto-unmanaged.xml
d80d1f
+++ b/tests/data/cli/compare/virt-clone-auto-unmanaged.xml
d80d1f
@@ -1,6 +1,11 @@
d80d1f
 <domain type="test">
d80d1f
   <name>origtest-clone</name>
d80d1f
   <uuid>00000000-1111-2222-3333-444444444444</uuid>
d80d1f
+  <sysinfo type="smbios">
d80d1f
+    <system>
d80d1f
+      <entry name="uuid">00000000-1111-2222-3333-444444444444</entry>
d80d1f
+    </system>
d80d1f
+  </sysinfo>
d80d1f
   <memory>8388608</memory>
d80d1f
   <currentMemory>2097152</currentMemory>
d80d1f
   <vcpu>2</vcpu>
d80d1f
diff --git a/tests/data/cli/compare/virt-clone-unmanaged-preserve.xml b/tests/data/cli/compare/virt-clone-unmanaged-preserve.xml
d80d1f
index 3bdbbbe36..c003ed3ee 100644
d80d1f
--- a/tests/data/cli/compare/virt-clone-unmanaged-preserve.xml
d80d1f
+++ b/tests/data/cli/compare/virt-clone-unmanaged-preserve.xml
d80d1f
@@ -1,6 +1,11 @@
d80d1f
 <domain type="test">
d80d1f
   <name>clonetest</name>
d80d1f
   <uuid>00000000-1111-2222-3333-444444444444</uuid>
d80d1f
+  <sysinfo type="smbios">
d80d1f
+    <system>
d80d1f
+      <entry name="uuid">00000000-1111-2222-3333-444444444444</entry>
d80d1f
+    </system>
d80d1f
+  </sysinfo>
d80d1f
   <memory>8388608</memory>
d80d1f
   <currentMemory>2097152</currentMemory>
d80d1f
   <vcpu>2</vcpu>
d80d1f
diff --git a/tests/data/cli/virtclone/clone-disk.xml b/tests/data/cli/virtclone/clone-disk.xml
d80d1f
index da1eb0a63..2f6e916d7 100644
d80d1f
--- a/tests/data/cli/virtclone/clone-disk.xml
d80d1f
+++ b/tests/data/cli/virtclone/clone-disk.xml
d80d1f
@@ -1,6 +1,11 @@
d80d1f
 <domain type='test' id='1'>
d80d1f
   <name>origtest</name>
d80d1f
   <uuid>db69fa1f-eef0-e567-3c20-3ef16f10376b</uuid>
d80d1f
+  <sysinfo type='smbios'>
d80d1f
+    <system>
d80d1f
+      <entry name='uuid'>db69fa1f-eef0-e567-3c20-3ef16f10376b</entry>
d80d1f
+    </system>
d80d1f
+  </sysinfo>
d80d1f
   <memory>8388608</memory>
d80d1f
   <currentMemory>2097152</currentMemory>
d80d1f
   <vcpu>2</vcpu>
d80d1f
diff --git a/virtinst/cloner.py b/virtinst/cloner.py
d80d1f
index 34a702f91..9334513c5 100644
d80d1f
--- a/virtinst/cloner.py
d80d1f
+++ b/virtinst/cloner.py
d80d1f
@@ -352,8 +352,7 @@ class Cloner(object):
d80d1f
         """
d80d1f
         self._new_guest.id = None
d80d1f
         self._new_guest.title = None
d80d1f
-        self._new_guest.uuid = None
d80d1f
-        self._new_guest.uuid = Guest.generate_uuid(self.conn)
d80d1f
+        self.set_clone_uuid(Guest.generate_uuid(self.conn))
d80d1f
 
d80d1f
         for dev in self._new_guest.devices.graphics:
d80d1f
             if dev.port and dev.port != -1:
d80d1f
@@ -408,6 +407,9 @@ class Cloner(object):
d80d1f
         Override the new VMs generated UUId
d80d1f
         """
d80d1f
         self._new_guest.uuid = uuid
d80d1f
+        for sysinfo in self._new_guest.sysinfo:
d80d1f
+            if sysinfo.system_uuid:
d80d1f
+                sysinfo.system_uuid = uuid
d80d1f
 
d80d1f
     def set_replace(self, val):
d80d1f
         """
d80d1f
-- 
d80d1f
2.38.1
d80d1f