]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
nodedev: Introduce virNodeDeviceGetParentName
authorJohn Ferlan <jferlan@redhat.com>
Sat, 18 Feb 2017 13:25:07 +0000 (08:25 -0500)
committerJohn Ferlan <jferlan@redhat.com>
Sun, 19 Feb 2017 11:45:09 +0000 (06:45 -0500)
Create a function which takes a node device "name" entry to lookup
and returns a string containing the parent name for the node device.

src/conf/node_device_conf.c
src/conf/node_device_conf.h
src/libvirt_private.syms

index c15c917a24c99f4c76c1408b0776f25c8e901732..bc976d0e4719a50a4557d1ee8d230a6b5c31b7eb 100644 (file)
@@ -2288,3 +2288,33 @@ virNodeDeviceObjListExport(virConnectPtr conn,
     VIR_FREE(tmp_devices);
     return ret;
 }
+
+
+/* virNodeDeviceGetParentName
+ * @conn: Connection pointer
+ * @nodedev_name: Node device to lookup
+ *
+ * Lookup the node device by name and return the parent name
+ *
+ * Returns parent name on success, caller is responsible for freeing;
+ * otherwise, returns NULL on failure
+ */
+char *
+virNodeDeviceGetParentName(virConnectPtr conn,
+                           const char *nodedev_name)
+{
+    virNodeDevicePtr device = NULL;
+    char *parent;
+
+    if (!(device = virNodeDeviceLookupByName(conn, nodedev_name))) {
+        virReportError(VIR_ERR_XML_ERROR,
+                       _("Cannot find '%s' in node device database"),
+                       nodedev_name);
+        return NULL;
+    }
+
+    ignore_value(VIR_STRDUP(parent, virNodeDeviceGetParent(device)));
+    virObjectUnref(device);
+
+    return parent;
+}
index 40e930a280e095bbe6b3d8edd6656723daded9cd..6c43546926ed82bd43d51185207dd6f2751d0562 100644 (file)
@@ -352,4 +352,7 @@ int virNodeDeviceObjListExport(virConnectPtr conn,
                                virNodeDeviceObjListFilter filter,
                                unsigned int flags);
 
+char *virNodeDeviceGetParentName(virConnectPtr conn,
+                                 const char *nodedev_name);
+
 #endif /* __VIR_NODE_DEVICE_CONF_H__ */
index d721c12d3ca70e04e941adf7d9dc02022058c35c..9ad0b0a68e7c5441f3160e470ea65c8514cefb5d 100644 (file)
@@ -706,6 +706,7 @@ virNodeDeviceFindVportParentHost;
 virNodeDeviceGetParentHost;
 virNodeDeviceGetParentHostByFabricWWN;
 virNodeDeviceGetParentHostByWWNs;
+virNodeDeviceGetParentName;
 virNodeDeviceGetWWNs;
 virNodeDeviceHasCap;
 virNodeDeviceObjListExport;