tests: Add createVHBAByNodeDevice-parent-fabric-wwn to fchosttest

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.
This commit is contained in:
John Ferlan 2017-01-24 13:53:08 -05:00
parent 19ff43612c
commit f3b1b98121
2 changed files with 22 additions and 0 deletions

View File

@ -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 {

View File

@ -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);