diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c index 31ca45646c..1c81b48053 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(virNodeDevDevnode, VIR_NODE_DEV_DEVNODE_LAST, "dev", "link") @@ -1086,6 +1089,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 d083104dcb..51fdcbd478 100644 --- a/tests/fchosttest.c +++ b/tests/fchosttest.c @@ -64,6 +64,17 @@ static const char test9_xml[] = " " ""; +/* virNodeDeviceCreateXML using "" to find the + * vport capable HBA */ +static const char test10_xml[] = +"" +" " +" " +" " +" " +" " +""; + /* 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);