[PATCHv2] bhyve: domainCreateXML

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Review-fixes, changes since last time:
- persistent flag is not reset to 0 anymore
- dom->id =vm->def->id is moved after domain startup
- duplicate of  start_flags |= VIR_BHYVE_PROCESS_START_AUTODESTROY removed
- flag  VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE is used instead of zero
- virDomainObjListRemove is called for not persistent domains in case of failure
- unnecessary checkActive removed

======== DIFF BETWEEN PATCHv1 and PATCHv2 =================================
diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c
index 1357e07..4ac89c1 100644
--- a/src/bhyve/bhyve_driver.c
+++ b/src/bhyve/bhyve_driver.c
@@ -1139,39 +1133,36 @@ bhyveDomainCreateXML(virConnectPtr conn,
 
     if (!(vm = virDomainObjListAdd(privconn->domains, def,
                                    privconn->xmlopt,
-                                   0, NULL)))
+                                   VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE, NULL)))
         goto cleanup;
     def = NULL;
-    vm->persistent = 0;
 
     dom = virGetDomain(conn, vm->def->name, vm->def->uuid);
     if (!dom)
         goto cleanup;
 
-    dom->id = vm->def->id;
-
-    if (flags & VIR_DOMAIN_START_AUTODESTROY)
-        start_flags |= VIR_BHYVE_PROCESS_START_AUTODESTROY;
-
-    if (virDomainObjIsActive(vm)) {
-        virReportError(VIR_ERR_OPERATION_INVALID,
-                       "%s", _("Domain is already running"));
-        goto cleanup;
-    }
-
     ret = virBhyveProcessStart(dom->conn, privconn, vm,
                                VIR_DOMAIN_RUNNING_BOOTED,
                                start_flags);
     if (ret) {
         virObjectUnref(dom);
         dom = NULL;
+
+        /* If domain is not persistent, remove its data */
+        if (!vm->persistent) {
+            virDomainObjListRemove(privconn->domains, vm);
+            vm = NULL;
+        }
         goto cleanup;
     }
 
+    dom->id = vm->def->id;
+
  cleanup:
     virObjectUnref(caps);
     virDomainDefFree(def);
-    virObjectUnlock(vm);
+    if (vm)
+        virObjectUnlock(vm);
 
     return dom;
 }

======== END OF DIFF BETWEEN PATCHv1 and PATCHv2 =========================

Wojciech Macek (1):
  bhyve: domainCreateXML

 src/bhyve/bhyve_driver.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 67 insertions(+)

-- 
1.9.0

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]