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@xxxxxxxxxx> --- 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list