[libvirt] [PATCH 15/15] tests: Add createVHBAByNodeDevice-parent-fabric-wwn to fchosttest

John Ferlan jferlan at redhat.com
Wed Jan 25 20:27:41 UTC 2017


Add a test that allows providing the parent fabric_wwn in the input XML
in order to create the vHBA.

This also fixes a mixed setting of the fabric_wwn field from the read
test driver XML strings.

Signed-off-by: John Ferlan <jferlan at redhat.com>
---
 src/conf/node_device_conf.c |  8 ++++++++
 tests/fchosttest.c          | 14 ++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index f73fede..414ab47 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -37,9 +37,12 @@
 #include "virbuffer.h"
 #include "viruuid.h"
 #include "virrandom.h"
+#include "virlog.h"
 
 #define VIR_FROM_THIS VIR_FROM_NODEDEV
 
+VIR_LOG_INIT("conf.node_device_conf");
+
 VIR_ENUM_IMPL(virNodeDevCap, VIR_NODE_DEV_CAP_LAST,
               "system",
               "pci",
@@ -1033,6 +1036,11 @@ virNodeDevCapSCSIHostParseXML(xmlXPathContextPtr ctxt,
                 }
             }
 
+            if (virNodeDevCapsDefParseString("string(./fabric_wwn[1])",
+                                             ctxt,
+                                             &data->scsi_host.fabric_wwn) < 0)
+                VIR_DEBUG("No fabric_wwn defined for '%s'", def->name);
+
             ctxt->node = orignode2;
 
         } else {
diff --git a/tests/fchosttest.c b/tests/fchosttest.c
index d083104..51fdcbd 100644
--- a/tests/fchosttest.c
+++ b/tests/fchosttest.c
@@ -64,6 +64,17 @@ static const char test9_xml[] =
 "  </capability>"
 "</device>";
 
+/* virNodeDeviceCreateXML using "<parent fabric_wwn='%s'/>" to find the
+ * vport capable HBA */
+static const char test10_xml[] =
+"<device>"
+"  <parent fabric_wwn='2000000043214321'/>"
+"  <capability type='scsi_host'>"
+"    <capability type='fc_host'>"
+"    </capability>"
+"  </capability>"
+"</device>";
+
 /* Test virIsVHBACapable */
 static int
 test1(const void *data ATTRIBUTE_UNUSED)
@@ -296,6 +307,9 @@ mymain(void)
     if (virTestRun("manageVHBAByNodeDevice-parent-wwn", manageVHBAByNodeDevice,
                    test9_xml) < 0)
         ret = -1;
+    if (virTestRun("manageVHBAByNodeDevice-parent-fabric-wwn",
+                   manageVHBAByNodeDevice, test10_xml) < 0)
+        ret = -1;
 
  cleanup:
     VIR_FREE(fchost_prefix);
-- 
2.7.4




More information about the libvir-list mailing list