conf: Convert virStoragePoolSourceAdapter to virStorageAdapter

Move the virStoragePoolSourceAdapter from storage_conf.h and rename
to virStorageAdapter.

Continue with code realignment for brevity and flow.

Signed-off-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
John Ferlan 2017-02-28 07:38:12 -05:00
parent ed22190094
commit a7ce03c736
8 changed files with 107 additions and 117 deletions

View File

@ -19,7 +19,7 @@
#include <config.h> #include <config.h>
#include "storage_adapter_conf.h" #include "storage_conf.h"
#include "viralloc.h" #include "viralloc.h"
#include "virerror.h" #include "virerror.h"
@ -32,11 +32,10 @@
VIR_LOG_INIT("conf.storage_adapter_conf"); VIR_LOG_INIT("conf.storage_adapter_conf");
VIR_ENUM_IMPL(virStoragePoolSourceAdapter, VIR_ENUM_IMPL(virStorageAdapter,
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_LAST, VIR_STORAGE_ADAPTER_TYPE_LAST,
"default", "scsi_host", "fc_host") "default", "scsi_host", "fc_host")
static void static void
virStorageAdapterClearFCHost(virStorageAdapterFCHostPtr fchost) virStorageAdapterClearFCHost(virStorageAdapterFCHostPtr fchost)
{ {
@ -50,12 +49,12 @@ virStorageAdapterClearFCHost(virStorageAdapterFCHostPtr fchost)
void void
virStorageAdapterClear(virStoragePoolSourceAdapterPtr adapter) virStorageAdapterClear(virStorageAdapterPtr adapter)
{ {
if (adapter->type == VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST) if (adapter->type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST)
virStorageAdapterClearFCHost(&adapter->data.fchost); virStorageAdapterClearFCHost(&adapter->data.fchost);
if (adapter->type == VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST) if (adapter->type == VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST)
VIR_FREE(adapter->data.scsi_host.name); VIR_FREE(adapter->data.scsi_host.name);
} }
@ -135,7 +134,7 @@ virStorageAdapterParseXMLSCSIHost(xmlNodePtr node,
static int static int
virStorageAdapterParseXMLLegacy(xmlNodePtr node, virStorageAdapterParseXMLLegacy(xmlNodePtr node,
xmlXPathContextPtr ctxt, xmlXPathContextPtr ctxt,
virStoragePoolSourceAdapterPtr adapter) virStorageAdapterPtr adapter)
{ {
char *wwnn = virXMLPropString(node, "wwnn"); char *wwnn = virXMLPropString(node, "wwnn");
char *wwpn = virXMLPropString(node, "wwpn"); char *wwpn = virXMLPropString(node, "wwpn");
@ -166,14 +165,14 @@ virStorageAdapterParseXMLLegacy(xmlNodePtr node,
* for scsi_host adapter. * for scsi_host adapter.
*/ */
if ((adapter->data.scsi_host.name = virXMLPropString(node, "name"))) if ((adapter->data.scsi_host.name = virXMLPropString(node, "name")))
adapter->type = VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST; adapter->type = VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST;
return 0; return 0;
} }
int int
virStorageAdapterParseXML(virStoragePoolSourcePtr source, virStorageAdapterParseXML(virStorageAdapterPtr adapter,
xmlNodePtr node, xmlNodePtr node,
xmlXPathContextPtr ctxt) xmlXPathContextPtr ctxt)
{ {
@ -184,26 +183,24 @@ virStorageAdapterParseXML(virStoragePoolSourcePtr source,
ctxt->node = node; ctxt->node = node;
if ((adapter_type = virXMLPropString(node, "type"))) { if ((adapter_type = virXMLPropString(node, "type"))) {
if ((source->adapter.type = if ((adapter->type =
virStoragePoolSourceAdapterTypeFromString(adapter_type)) <= 0) { virStorageAdapterTypeFromString(adapter_type)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Unknown pool adapter type '%s'"), _("Unknown pool adapter type '%s'"),
adapter_type); adapter_type);
goto cleanup; goto cleanup;
} }
if (source->adapter.type == if ((adapter->type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST) &&
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST) { (virStorageAdapterParseXMLFCHost(node, &adapter->data.fchost)) < 0)
if (virStorageAdapterParseXMLFCHost(node, &source->adapter.data.fchost) < 0)
goto cleanup;
} else if (source->adapter.type ==
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST) {
if (virStorageAdapterParseXMLSCSIHost(node, ctxt, &source->adapter.data.scsi_host) < 0)
goto cleanup; goto cleanup;
} if ((adapter->type == VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST) &&
(virStorageAdapterParseXMLSCSIHost(node, ctxt,
&adapter->data.scsi_host)) < 0)
goto cleanup;
} else { } else {
if (virStorageAdapterParseXMLLegacy(node, ctxt, &source->adapter) < 0) if (virStorageAdapterParseXMLLegacy(node, ctxt, adapter) < 0)
goto cleanup; goto cleanup;
} }
@ -280,21 +277,19 @@ virStorageAdapterValidateSCSIHost(virStorageAdapterSCSIHostPtr scsi_host)
int int
virStorageAdapterValidate(virStoragePoolDefPtr ret) virStorageAdapterValidate(virStorageAdapterPtr adapter)
{ {
if (!ret->source.adapter.type) { if (!adapter->type) {
virReportError(VIR_ERR_XML_ERROR, "%s", virReportError(VIR_ERR_XML_ERROR, "%s",
_("missing storage pool source adapter")); _("missing storage pool source adapter"));
return -1; return -1;
} }
if (ret->source.adapter.type == if (adapter->type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST)
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST) return virStorageAdapterValidateFCHost(&adapter->data.fchost);
return virStorageAdapterValidateFCHost(&ret->source.adapter.data.fchost);
if (ret->source.adapter.type == if (adapter->type == VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST)
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST) return virStorageAdapterValidateSCSIHost(&adapter->data.scsi_host);
return virStorageAdapterValidateSCSIHost(&ret->source.adapter.data.scsi_host);
return 0; return 0;
} }
@ -305,13 +300,13 @@ virStorageAdapterFormatFCHost(virBufferPtr buf,
virStorageAdapterFCHostPtr fchost) virStorageAdapterFCHostPtr fchost)
{ {
virBufferEscapeString(buf, " parent='%s'", fchost->parent); virBufferEscapeString(buf, " parent='%s'", fchost->parent);
if (fchost->managed)
virBufferAsprintf(buf, " managed='%s'",
virTristateBoolTypeToString(fchost->managed));
virBufferEscapeString(buf, " parent_wwnn='%s'", fchost->parent_wwnn); virBufferEscapeString(buf, " parent_wwnn='%s'", fchost->parent_wwnn);
virBufferEscapeString(buf, " parent_wwpn='%s'", fchost->parent_wwpn); virBufferEscapeString(buf, " parent_wwpn='%s'", fchost->parent_wwpn);
virBufferEscapeString(buf, " parent_fabric_wwn='%s'", virBufferEscapeString(buf, " parent_fabric_wwn='%s'",
fchost->parent_fabric_wwn); fchost->parent_fabric_wwn);
if (fchost->managed != VIR_TRISTATE_BOOL_ABSENT)
virBufferAsprintf(buf, " managed='%s'",
virTristateBoolTypeToString(fchost->managed));
virBufferAsprintf(buf, " wwnn='%s' wwpn='%s'/>\n", virBufferAsprintf(buf, " wwnn='%s' wwpn='%s'/>\n",
fchost->wwnn, fchost->wwpn); fchost->wwnn, fchost->wwpn);
@ -342,14 +337,14 @@ virStorageAdapterFormatSCSIHost(virBufferPtr buf,
void void
virStorageAdapterFormat(virBufferPtr buf, virStorageAdapterFormat(virBufferPtr buf,
virStoragePoolSourcePtr src) virStorageAdapterPtr adapter)
{ {
virBufferAsprintf(buf, "<adapter type='%s'", virBufferAsprintf(buf, "<adapter type='%s'",
virStoragePoolSourceAdapterTypeToString(src->adapter.type)); virStorageAdapterTypeToString(adapter->type));
if (src->adapter.type == VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST) if (adapter->type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST)
virStorageAdapterFormatFCHost(buf, &src->adapter.data.fchost); virStorageAdapterFormatFCHost(buf, &adapter->data.fchost);
if (src->adapter.type == VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST) if (adapter->type == VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST)
virStorageAdapterFormatSCSIHost(buf, &src->adapter.data.scsi_host); virStorageAdapterFormatSCSIHost(buf, &adapter->data.scsi_host);
} }

View File

@ -23,21 +23,62 @@
# include "virpci.h" # include "virpci.h"
# include "virxml.h" # include "virxml.h"
# include "storage_conf.h"
typedef enum {
VIR_STORAGE_ADAPTER_TYPE_DEFAULT = 0,
VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST,
VIR_STORAGE_ADAPTER_TYPE_FC_HOST,
VIR_STORAGE_ADAPTER_TYPE_LAST,
} virStorageAdapterType;
VIR_ENUM_DECL(virStorageAdapter)
typedef struct _virStorageAdapterSCSIHost virStorageAdapterSCSIHost;
typedef virStorageAdapterSCSIHost *virStorageAdapterSCSIHostPtr;
struct _virStorageAdapterSCSIHost {
char *name;
virPCIDeviceAddress parentaddr; /* host address */
int unique_id;
bool has_parent;
};
typedef struct _virStorageAdapterFCHost virStorageAdapterFCHost;
typedef virStorageAdapterFCHost *virStorageAdapterFCHostPtr;
struct _virStorageAdapterFCHost {
char *parent;
char *parent_wwnn;
char *parent_wwpn;
char *parent_fabric_wwn;
char *wwnn;
char *wwpn;
int managed; /* enum virTristateSwitch */
};
typedef struct _virStorageAdapter virStorageAdapter;
typedef virStorageAdapter *virStorageAdapterPtr;
struct _virStorageAdapter {
int type; /* virStorageAdapterType */
union {
virStorageAdapterSCSIHost scsi_host;
virStorageAdapterFCHost fchost;
} data;
};
void void
virStorageAdapterClear(virStoragePoolSourceAdapterPtr adapter); virStorageAdapterClear(virStorageAdapterPtr adapter);
int int
virStorageAdapterParseXML(virStoragePoolSourcePtr source, virStorageAdapterParseXML(virStorageAdapterPtr adapter,
xmlNodePtr node, xmlNodePtr node,
xmlXPathContextPtr ctxt); xmlXPathContextPtr ctxt);
int int
virStorageAdapterValidate(virStoragePoolDefPtr ret); virStorageAdapterValidate(virStorageAdapterPtr adapter);
void void
virStorageAdapterFormat(virBufferPtr buf, virStorageAdapterFormat(virBufferPtr buf,
virStoragePoolSourcePtr src); virStorageAdapterPtr adapter);
#endif /* __VIR_STORAGE_ADAPTER_CONF_H__ */ #endif /* __VIR_STORAGE_ADAPTER_CONF_H__ */

View File

@ -565,7 +565,7 @@ virStoragePoolDefParseSource(xmlXPathContextPtr ctxt,
goto cleanup; goto cleanup;
if ((adapternode = virXPathNode("./adapter", ctxt))) { if ((adapternode = virXPathNode("./adapter", ctxt))) {
if (virStorageAdapterParseXML(source, adapternode, ctxt) < 0) if (virStorageAdapterParseXML(&source->adapter, adapternode, ctxt) < 0)
goto cleanup; goto cleanup;
} }
@ -802,7 +802,7 @@ virStoragePoolDefParseXML(xmlXPathContextPtr ctxt)
} }
if ((options->flags & VIR_STORAGE_POOL_SOURCE_ADAPTER) && if ((options->flags & VIR_STORAGE_POOL_SOURCE_ADAPTER) &&
(virStorageAdapterValidate(ret)) < 0) (virStorageAdapterValidate(&ret->source.adapter)) < 0)
goto error; goto error;
/* If DEVICE is the only source type, then its required */ /* If DEVICE is the only source type, then its required */
@ -958,9 +958,9 @@ virStoragePoolSourceFormat(virBufferPtr buf,
virBufferEscapeString(buf, "<dir path='%s'/>\n", src->dir); virBufferEscapeString(buf, "<dir path='%s'/>\n", src->dir);
if ((options->flags & VIR_STORAGE_POOL_SOURCE_ADAPTER) && if ((options->flags & VIR_STORAGE_POOL_SOURCE_ADAPTER) &&
(src->adapter.type == VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST || (src->adapter.type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST ||
src->adapter.type == VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST)) src->adapter.type == VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST))
virStorageAdapterFormat(buf, src); virStorageAdapterFormat(buf, &src->adapter);
if (options->flags & VIR_STORAGE_POOL_SOURCE_NAME) if (options->flags & VIR_STORAGE_POOL_SOURCE_NAME)
virBufferEscapeString(buf, "<name>%s</name>\n", src->name); virBufferEscapeString(buf, "<name>%s</name>\n", src->name);
@ -2266,8 +2266,8 @@ virStoragePoolSourceFindDuplicate(virConnectPtr conn,
int ret = 1; int ret = 1;
virStoragePoolObjPtr pool = NULL; virStoragePoolObjPtr pool = NULL;
virStoragePoolObjPtr matchpool = NULL; virStoragePoolObjPtr matchpool = NULL;
virStoragePoolSourceAdapterPtr pool_adapter; virStorageAdapterPtr pool_adapter;
virStoragePoolSourceAdapterPtr def_adapter; virStorageAdapterPtr def_adapter;
/* Check the pool list for duplicate underlying storage */ /* Check the pool list for duplicate underlying storage */
for (i = 0; i < pools->count; i++) { for (i = 0; i < pools->count; i++) {
@ -2306,10 +2306,8 @@ virStoragePoolSourceFindDuplicate(virConnectPtr conn,
pool_adapter = &pool->def->source.adapter; pool_adapter = &pool->def->source.adapter;
def_adapter = &def->source.adapter; def_adapter = &def->source.adapter;
if (pool_adapter->type == if (pool_adapter->type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST &&
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST && def_adapter->type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST) {
def_adapter->type ==
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST) {
virStorageAdapterFCHostPtr pool_fchost = virStorageAdapterFCHostPtr pool_fchost =
&pool_adapter->data.fchost; &pool_adapter->data.fchost;
virStorageAdapterFCHostPtr def_fchost = virStorageAdapterFCHostPtr def_fchost =
@ -2319,9 +2317,9 @@ virStoragePoolSourceFindDuplicate(virConnectPtr conn,
STREQ(pool_fchost->wwpn, def_fchost->wwpn)) STREQ(pool_fchost->wwpn, def_fchost->wwpn))
matchpool = pool; matchpool = pool;
} else if (pool_adapter->type == } else if (pool_adapter->type ==
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST && VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST &&
def_adapter->type == def_adapter->type ==
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST) { VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST) {
virStorageAdapterSCSIHostPtr pool_scsi_host = virStorageAdapterSCSIHostPtr pool_scsi_host =
&pool_adapter->data.scsi_host; &pool_adapter->data.scsi_host;
virStorageAdapterSCSIHostPtr def_scsi_host = virStorageAdapterSCSIHostPtr def_scsi_host =
@ -2341,9 +2339,9 @@ virStoragePoolSourceFindDuplicate(virConnectPtr conn,
if (pool_hostnum == def_hostnum) if (pool_hostnum == def_hostnum)
matchpool = pool; matchpool = pool;
} else if (pool_adapter->type == } else if (pool_adapter->type ==
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST && VIR_STORAGE_ADAPTER_TYPE_FC_HOST &&
def_adapter->type == def_adapter->type ==
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST) { VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST) {
virStorageAdapterFCHostPtr pool_fchost = virStorageAdapterFCHostPtr pool_fchost =
&pool_adapter->data.fchost; &pool_adapter->data.fchost;
virStorageAdapterSCSIHostPtr def_scsi_host = virStorageAdapterSCSIHostPtr def_scsi_host =
@ -2360,9 +2358,9 @@ virStoragePoolSourceFindDuplicate(virConnectPtr conn,
} }
} else if (pool_adapter->type == } else if (pool_adapter->type ==
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST && VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST &&
def_adapter->type == def_adapter->type ==
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST) { VIR_STORAGE_ADAPTER_TYPE_FC_HOST) {
virStorageAdapterSCSIHostPtr pool_scsi_host = virStorageAdapterSCSIHostPtr pool_scsi_host =
&pool_adapter->data.scsi_host; &pool_adapter->data.scsi_host;
virStorageAdapterFCHostPtr def_fchost = virStorageAdapterFCHostPtr def_fchost =

View File

@ -31,6 +31,7 @@
# include "virthread.h" # include "virthread.h"
# include "device_conf.h" # include "device_conf.h"
# include "object_event.h" # include "object_event.h"
# include "storage_adapter_conf.h"
# include <libxml/tree.h> # include <libxml/tree.h>
@ -170,47 +171,6 @@ struct _virStoragePoolSourceDevice {
} geometry; } geometry;
}; };
typedef enum {
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_DEFAULT = 0,
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST,
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST,
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_LAST,
} virStoragePoolSourceAdapterType;
VIR_ENUM_DECL(virStoragePoolSourceAdapter)
typedef struct _virStorageAdapterSCSIHost virStorageAdapterSCSIHost;
typedef virStorageAdapterSCSIHost *virStorageAdapterSCSIHostPtr;
struct _virStorageAdapterSCSIHost {
char *name;
virPCIDeviceAddress parentaddr; /* host address */
int unique_id;
bool has_parent;
};
typedef struct _virStorageAdapterFCHost virStorageAdapterFCHost;
typedef virStorageAdapterFCHost *virStorageAdapterFCHostPtr;
struct _virStorageAdapterFCHost {
char *parent;
char *parent_wwnn;
char *parent_wwpn;
char *parent_fabric_wwn;
char *wwnn;
char *wwpn;
int managed; /* enum virTristateSwitch */
};
typedef struct _virStoragePoolSourceAdapter virStoragePoolSourceAdapter;
typedef virStoragePoolSourceAdapter *virStoragePoolSourceAdapterPtr;
struct _virStoragePoolSourceAdapter {
int type; /* virStoragePoolSourceAdapterType */
union {
virStorageAdapterSCSIHost scsi_host;
virStorageAdapterFCHost fchost;
} data;
};
typedef struct _virStoragePoolSource virStoragePoolSource; typedef struct _virStoragePoolSource virStoragePoolSource;
typedef virStoragePoolSource *virStoragePoolSourcePtr; typedef virStoragePoolSource *virStoragePoolSourcePtr;
struct _virStoragePoolSource { struct _virStoragePoolSource {
@ -226,7 +186,7 @@ struct _virStoragePoolSource {
char *dir; char *dir;
/* Or an adapter */ /* Or an adapter */
virStoragePoolSourceAdapter adapter; virStorageAdapter adapter;
/* Or a name */ /* Or a name */
char *name; char *name;

View File

@ -883,8 +883,6 @@ virStoragePoolObjSaveDef;
virStoragePoolObjUnlock; virStoragePoolObjUnlock;
virStoragePoolSaveConfig; virStoragePoolSaveConfig;
virStoragePoolSaveState; virStoragePoolSaveState;
virStoragePoolSourceAdapterTypeFromString;
virStoragePoolSourceAdapterTypeToString;
virStoragePoolSourceClear; virStoragePoolSourceClear;
virStoragePoolSourceDeviceClear; virStoragePoolSourceDeviceClear;
virStoragePoolSourceFindDuplicate; virStoragePoolSourceFindDuplicate;

View File

@ -2467,8 +2467,7 @@ phypBuildStoragePool(virConnectPtr conn, virStoragePoolDefPtr def)
int exit_status = 0; int exit_status = 0;
virBuffer buf = VIR_BUFFER_INITIALIZER; virBuffer buf = VIR_BUFFER_INITIALIZER;
if (source.adapter.type != if (source.adapter.type != VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST) {
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST) {
virReportError(VIR_ERR_XML_ERROR, "%s", virReportError(VIR_ERR_XML_ERROR, "%s",
_("Only 'scsi_host' adapter is supported")); _("Only 'scsi_host' adapter is supported"));
goto cleanup; goto cleanup;

View File

@ -176,12 +176,12 @@ virStoragePoolFCRefreshThread(void *opaque)
} }
static char * static char *
getAdapterName(virStoragePoolSourceAdapterPtr adapter) getAdapterName(virStorageAdapterPtr adapter)
{ {
char *name = NULL; char *name = NULL;
char *parentaddr = NULL; char *parentaddr = NULL;
if (adapter->type == VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST) { if (adapter->type == VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST) {
virStorageAdapterSCSIHostPtr scsi_host = &adapter->data.scsi_host; virStorageAdapterSCSIHostPtr scsi_host = &adapter->data.scsi_host;
if (scsi_host->has_parent) { if (scsi_host->has_parent) {
@ -197,7 +197,7 @@ getAdapterName(virStoragePoolSourceAdapterPtr adapter)
} else { } else {
ignore_value(VIR_STRDUP(name, scsi_host->name)); ignore_value(VIR_STRDUP(name, scsi_host->name));
} }
} else if (adapter->type == VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST) { } else if (adapter->type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST) {
virStorageAdapterFCHostPtr fchost = &adapter->data.fchost; virStorageAdapterFCHostPtr fchost = &adapter->data.fchost;
if (!(name = virVHBAGetHostByWWN(NULL, fchost->wwnn, fchost->wwpn))) { if (!(name = virVHBAGetHostByWWN(NULL, fchost->wwnn, fchost->wwpn))) {
@ -451,7 +451,7 @@ virStorageBackendSCSICheckPool(virStoragePoolObjPtr pool,
* the adapter based on might be not created yet. * the adapter based on might be not created yet.
*/ */
if (pool->def->source.adapter.type == if (pool->def->source.adapter.type ==
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST) { VIR_STORAGE_ADAPTER_TYPE_FC_HOST) {
virResetLastError(); virResetLastError();
return 0; return 0;
} else { } else {
@ -505,24 +505,24 @@ virStorageBackendSCSIRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
return ret; return ret;
} }
static int static int
virStorageBackendSCSIStartPool(virConnectPtr conn, virStorageBackendSCSIStartPool(virConnectPtr conn,
virStoragePoolObjPtr pool) virStoragePoolObjPtr pool)
{ {
if (pool->def->source.adapter.type == if (pool->def->source.adapter.type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST)
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST)
return createVport(conn, pool->def, pool->configFile, return createVport(conn, pool->def, pool->configFile,
&pool->def->source.adapter.data.fchost); &pool->def->source.adapter.data.fchost);
return 0; return 0;
} }
static int static int
virStorageBackendSCSIStopPool(virConnectPtr conn, virStorageBackendSCSIStopPool(virConnectPtr conn,
virStoragePoolObjPtr pool) virStoragePoolObjPtr pool)
{ {
if (pool->def->source.adapter.type == if (pool->def->source.adapter.type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST)
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST)
return deleteVport(conn, &pool->def->source.adapter.data.fchost); return deleteVport(conn, &pool->def->source.adapter.data.fchost);
return 0; return 0;

View File

@ -4420,8 +4420,7 @@ testStoragePoolCreateXML(virConnectPtr conn,
goto cleanup; goto cleanup;
def = NULL; def = NULL;
if (pool->def->source.adapter.type == if (pool->def->source.adapter.type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST) {
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST) {
/* In the real code, we'd call virVHBAManageVport followed by /* In the real code, we'd call virVHBAManageVport followed by
* find_new_device, but we cannot do that here since we're not * find_new_device, but we cannot do that here since we're not
* mocking udev. The mock routine will copy an existing vHBA and * mocking udev. The mock routine will copy an existing vHBA and
@ -4623,7 +4622,7 @@ testStoragePoolDestroy(virStoragePoolPtr pool)
privpool->active = 0; privpool->active = 0;
if (privpool->def->source.adapter.type == if (privpool->def->source.adapter.type ==
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST) { VIR_STORAGE_ADAPTER_TYPE_FC_HOST) {
if (testDestroyVport(privconn, if (testDestroyVport(privconn,
privpool->def->source.adapter.data.fchost.wwnn, privpool->def->source.adapter.data.fchost.wwnn,
privpool->def->source.adapter.data.fchost.wwpn) < 0) privpool->def->source.adapter.data.fchost.wwpn) < 0)