So, domain renaming works like this: new domain name is added
into the list of domain objects. Then, domain definition is
updated. After that, old domain name is removed from the domain
object list. Now, if the very firs step fails for some reason, no
error is reported:

virsh # domrename dummy dummy
error: An error occurred, but the cause is unknown

Signed-off-by: Michal Privoznik <[email protected]>
---
 src/qemu/qemu_driver.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 3683591..8e365bd 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -19950,8 +19950,11 @@ static int qemuDomainRename(virDomainPtr dom,
         goto endjob;
     }
 
-    if (virDomainObjListRenameAddNew(driver->domains, vm, new_name) < 0)
+    if (virDomainObjListRenameAddNew(driver->domains, vm, new_name) < 0) {
+        virReportError(VIR_ERR_OPERATION_FAILED, "%s",
+                       _("could not add new name into internal list of 
domains"));
         goto endjob;
+    }
 
     if ((logfile = qemuDomainCreateLog(driver, vm, true)) < 0)
         goto rollback;
-- 
2.4.6

--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to