[libvirt] [PATCH 2/2] qemu: Use same create/define overwrite logic for migration prepare.

Cole Robinson crobinso at redhat.com
Wed Nov 4 20:06:59 UTC 2009


Signed-off-by: Cole Robinson <crobinso at redhat.com>
---
 src/qemu/qemu_driver.c |   30 ++++--------------------------
 1 files changed, 4 insertions(+), 26 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 20621d1..53f7398 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -5978,19 +5978,8 @@ qemudDomainMigratePrepareTunnel(virConnectPtr dconn,
     /* Target domain name, maybe renamed. */
     dname = dname ? dname : def->name;
 
-    /* Ensure the name and UUID don't already exist in an active VM */
-    vm = virDomainFindByUUID(&driver->domains, def->uuid);
-
-    if (!vm) vm = virDomainFindByName(&driver->domains, dname);
-    if (vm) {
-        if (virDomainObjIsActive(vm)) {
-            qemudReportError(dconn, NULL, NULL, VIR_ERR_OPERATION_FAILED,
-                             _("domain with the same name or UUID already exists as '%s'"),
-                             vm->def->name);
-            goto cleanup;
-        }
-        virDomainObjUnlock(vm);
-    }
+    if (virDomainObjIsDuplicate(&driver->domains, def, 1) < 0)
+        goto cleanup;
 
     if (!(vm = virDomainAssignDef(dconn,
                                   driver->caps,
@@ -6202,19 +6191,8 @@ qemudDomainMigratePrepare2 (virConnectPtr dconn,
     /* Target domain name, maybe renamed. */
     dname = dname ? dname : def->name;
 
-    /* Ensure the name and UUID don't already exist in an active VM */
-    vm = virDomainFindByUUID(&driver->domains, def->uuid);
-
-    if (!vm) vm = virDomainFindByName(&driver->domains, dname);
-    if (vm) {
-        if (virDomainObjIsActive(vm)) {
-            qemudReportError (dconn, NULL, NULL, VIR_ERR_OPERATION_FAILED,
-                              _("domain with the same name or UUID already exists as '%s'"),
-                              vm->def->name);
-            goto cleanup;
-        }
-        virDomainObjUnlock(vm);
-    }
+    if (virDomainObjIsDuplicate(&driver->domains, def, 1) < 0)
+        goto cleanup;
 
     if (!(vm = virDomainAssignDef(dconn,
                                   driver->caps,
-- 
1.6.5.1




More information about the libvir-list mailing list