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

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