[libvirt] [PATCH] bhyve: add domainLookupByID

Wojciech Macek wma at semihalf.com
Thu Mar 27 07:31:21 UTC 2014


Implement domain lookup by its ID.
---
 src/bhyve/bhyve_driver.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c
index f54dff0..38a7f41 100644
--- a/src/bhyve/bhyve_driver.c
+++ b/src/bhyve/bhyve_driver.c
@@ -778,6 +778,34 @@ bhyveNodeSetMemoryParameters(virConnectPtr conn,
     return nodeSetMemoryParameters(params, nparams, flags);
 }
 
+static virDomainPtr
+bhyveDomainLookupByID(virConnectPtr conn,
+                      int id)
+{
+    bhyveConnPtr privconn = conn->privateData;
+    virDomainObjPtr vm;
+    virDomainPtr dom = NULL;
+
+    vm = virDomainObjListFindByID(privconn->domains, id);
+
+    if (!vm) {
+        virReportError(VIR_ERR_NO_DOMAIN,
+                       _("No domain with matching ID '%d'"), id);
+        goto cleanup;
+    }
+
+    if (virDomainLookupByIDEnsureACL(conn, vm->def) < 0)
+        goto cleanup;
+
+    dom = virGetDomain(conn, vm->def->name, vm->def->uuid);
+    if (dom)
+        dom->id = vm->def->id;
+
+ cleanup:
+    virObjectUnlock(vm);
+    return dom;
+}
+
 static virDriver bhyveDriver = {
     .no = VIR_DRV_BHYVE,
     .name = "bhyve",
@@ -811,6 +839,7 @@ static virDriver bhyveDriver = {
     .nodeGetCPUMap = bhyveNodeGetCPUMap, /* 1.2.3 */
     .nodeGetMemoryParameters = bhyveNodeGetMemoryParameters, /* 1.2.3 */
     .nodeSetMemoryParameters = bhyveNodeSetMemoryParameters, /* 1.2.3 */
+    .domainLookupByID = bhyveDomainLookupByID, /* 1.2.3 */
 };
 
 
-- 
1.9.0




More information about the libvir-list mailing list