mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 03:12:22 +00:00
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:
parent
ed22190094
commit
a7ce03c736
@ -19,7 +19,7 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "storage_adapter_conf.h"
|
||||
#include "storage_conf.h"
|
||||
|
||||
#include "viralloc.h"
|
||||
#include "virerror.h"
|
||||
@ -32,11 +32,10 @@
|
||||
|
||||
VIR_LOG_INIT("conf.storage_adapter_conf");
|
||||
|
||||
VIR_ENUM_IMPL(virStoragePoolSourceAdapter,
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_LAST,
|
||||
VIR_ENUM_IMPL(virStorageAdapter,
|
||||
VIR_STORAGE_ADAPTER_TYPE_LAST,
|
||||
"default", "scsi_host", "fc_host")
|
||||
|
||||
|
||||
static void
|
||||
virStorageAdapterClearFCHost(virStorageAdapterFCHostPtr fchost)
|
||||
{
|
||||
@ -50,12 +49,12 @@ virStorageAdapterClearFCHost(virStorageAdapterFCHostPtr fchost)
|
||||
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@ -135,7 +134,7 @@ virStorageAdapterParseXMLSCSIHost(xmlNodePtr node,
|
||||
static int
|
||||
virStorageAdapterParseXMLLegacy(xmlNodePtr node,
|
||||
xmlXPathContextPtr ctxt,
|
||||
virStoragePoolSourceAdapterPtr adapter)
|
||||
virStorageAdapterPtr adapter)
|
||||
{
|
||||
char *wwnn = virXMLPropString(node, "wwnn");
|
||||
char *wwpn = virXMLPropString(node, "wwpn");
|
||||
@ -166,14 +165,14 @@ virStorageAdapterParseXMLLegacy(xmlNodePtr node,
|
||||
* for scsi_host adapter.
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
virStorageAdapterParseXML(virStoragePoolSourcePtr source,
|
||||
virStorageAdapterParseXML(virStorageAdapterPtr adapter,
|
||||
xmlNodePtr node,
|
||||
xmlXPathContextPtr ctxt)
|
||||
{
|
||||
@ -184,26 +183,24 @@ virStorageAdapterParseXML(virStoragePoolSourcePtr source,
|
||||
ctxt->node = node;
|
||||
|
||||
if ((adapter_type = virXMLPropString(node, "type"))) {
|
||||
if ((source->adapter.type =
|
||||
virStoragePoolSourceAdapterTypeFromString(adapter_type)) <= 0) {
|
||||
if ((adapter->type =
|
||||
virStorageAdapterTypeFromString(adapter_type)) <= 0) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("Unknown pool adapter type '%s'"),
|
||||
adapter_type);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (source->adapter.type ==
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST) {
|
||||
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)
|
||||
if ((adapter->type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST) &&
|
||||
(virStorageAdapterParseXMLFCHost(node, &adapter->data.fchost)) < 0)
|
||||
goto cleanup;
|
||||
|
||||
}
|
||||
if ((adapter->type == VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST) &&
|
||||
(virStorageAdapterParseXMLSCSIHost(node, ctxt,
|
||||
&adapter->data.scsi_host)) < 0)
|
||||
goto cleanup;
|
||||
} else {
|
||||
if (virStorageAdapterParseXMLLegacy(node, ctxt, &source->adapter) < 0)
|
||||
if (virStorageAdapterParseXMLLegacy(node, ctxt, adapter) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
@ -280,21 +277,19 @@ virStorageAdapterValidateSCSIHost(virStorageAdapterSCSIHostPtr scsi_host)
|
||||
|
||||
|
||||
int
|
||||
virStorageAdapterValidate(virStoragePoolDefPtr ret)
|
||||
virStorageAdapterValidate(virStorageAdapterPtr adapter)
|
||||
{
|
||||
if (!ret->source.adapter.type) {
|
||||
if (!adapter->type) {
|
||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||
_("missing storage pool source adapter"));
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (ret->source.adapter.type ==
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST)
|
||||
return virStorageAdapterValidateFCHost(&ret->source.adapter.data.fchost);
|
||||
if (adapter->type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST)
|
||||
return virStorageAdapterValidateFCHost(&adapter->data.fchost);
|
||||
|
||||
if (ret->source.adapter.type ==
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST)
|
||||
return virStorageAdapterValidateSCSIHost(&ret->source.adapter.data.scsi_host);
|
||||
if (adapter->type == VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST)
|
||||
return virStorageAdapterValidateSCSIHost(&adapter->data.scsi_host);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -305,13 +300,13 @@ virStorageAdapterFormatFCHost(virBufferPtr buf,
|
||||
virStorageAdapterFCHostPtr fchost)
|
||||
{
|
||||
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_wwpn='%s'", fchost->parent_wwpn);
|
||||
virBufferEscapeString(buf, " parent_fabric_wwn='%s'",
|
||||
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",
|
||||
fchost->wwnn, fchost->wwpn);
|
||||
@ -342,14 +337,14 @@ virStorageAdapterFormatSCSIHost(virBufferPtr buf,
|
||||
|
||||
void
|
||||
virStorageAdapterFormat(virBufferPtr buf,
|
||||
virStoragePoolSourcePtr src)
|
||||
virStorageAdapterPtr adapter)
|
||||
{
|
||||
virBufferAsprintf(buf, "<adapter type='%s'",
|
||||
virStoragePoolSourceAdapterTypeToString(src->adapter.type));
|
||||
virStorageAdapterTypeToString(adapter->type));
|
||||
|
||||
if (src->adapter.type == VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST)
|
||||
virStorageAdapterFormatFCHost(buf, &src->adapter.data.fchost);
|
||||
if (adapter->type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST)
|
||||
virStorageAdapterFormatFCHost(buf, &adapter->data.fchost);
|
||||
|
||||
if (src->adapter.type == VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST)
|
||||
virStorageAdapterFormatSCSIHost(buf, &src->adapter.data.scsi_host);
|
||||
if (adapter->type == VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST)
|
||||
virStorageAdapterFormatSCSIHost(buf, &adapter->data.scsi_host);
|
||||
}
|
||||
|
@ -23,21 +23,62 @@
|
||||
# include "virpci.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
|
||||
virStorageAdapterClear(virStoragePoolSourceAdapterPtr adapter);
|
||||
virStorageAdapterClear(virStorageAdapterPtr adapter);
|
||||
|
||||
int
|
||||
virStorageAdapterParseXML(virStoragePoolSourcePtr source,
|
||||
virStorageAdapterParseXML(virStorageAdapterPtr adapter,
|
||||
xmlNodePtr node,
|
||||
xmlXPathContextPtr ctxt);
|
||||
|
||||
int
|
||||
virStorageAdapterValidate(virStoragePoolDefPtr ret);
|
||||
virStorageAdapterValidate(virStorageAdapterPtr adapter);
|
||||
|
||||
void
|
||||
virStorageAdapterFormat(virBufferPtr buf,
|
||||
virStoragePoolSourcePtr src);
|
||||
virStorageAdapterPtr adapter);
|
||||
|
||||
#endif /* __VIR_STORAGE_ADAPTER_CONF_H__ */
|
||||
|
@ -565,7 +565,7 @@ virStoragePoolDefParseSource(xmlXPathContextPtr ctxt,
|
||||
goto cleanup;
|
||||
|
||||
if ((adapternode = virXPathNode("./adapter", ctxt))) {
|
||||
if (virStorageAdapterParseXML(source, adapternode, ctxt) < 0)
|
||||
if (virStorageAdapterParseXML(&source->adapter, adapternode, ctxt) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
@ -802,7 +802,7 @@ virStoragePoolDefParseXML(xmlXPathContextPtr ctxt)
|
||||
}
|
||||
|
||||
if ((options->flags & VIR_STORAGE_POOL_SOURCE_ADAPTER) &&
|
||||
(virStorageAdapterValidate(ret)) < 0)
|
||||
(virStorageAdapterValidate(&ret->source.adapter)) < 0)
|
||||
goto error;
|
||||
|
||||
/* 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);
|
||||
|
||||
if ((options->flags & VIR_STORAGE_POOL_SOURCE_ADAPTER) &&
|
||||
(src->adapter.type == VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST ||
|
||||
src->adapter.type == VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST))
|
||||
virStorageAdapterFormat(buf, src);
|
||||
(src->adapter.type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST ||
|
||||
src->adapter.type == VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST))
|
||||
virStorageAdapterFormat(buf, &src->adapter);
|
||||
|
||||
if (options->flags & VIR_STORAGE_POOL_SOURCE_NAME)
|
||||
virBufferEscapeString(buf, "<name>%s</name>\n", src->name);
|
||||
@ -2266,8 +2266,8 @@ virStoragePoolSourceFindDuplicate(virConnectPtr conn,
|
||||
int ret = 1;
|
||||
virStoragePoolObjPtr pool = NULL;
|
||||
virStoragePoolObjPtr matchpool = NULL;
|
||||
virStoragePoolSourceAdapterPtr pool_adapter;
|
||||
virStoragePoolSourceAdapterPtr def_adapter;
|
||||
virStorageAdapterPtr pool_adapter;
|
||||
virStorageAdapterPtr def_adapter;
|
||||
|
||||
/* Check the pool list for duplicate underlying storage */
|
||||
for (i = 0; i < pools->count; i++) {
|
||||
@ -2306,10 +2306,8 @@ virStoragePoolSourceFindDuplicate(virConnectPtr conn,
|
||||
pool_adapter = &pool->def->source.adapter;
|
||||
def_adapter = &def->source.adapter;
|
||||
|
||||
if (pool_adapter->type ==
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST &&
|
||||
def_adapter->type ==
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST) {
|
||||
if (pool_adapter->type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST &&
|
||||
def_adapter->type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST) {
|
||||
virStorageAdapterFCHostPtr pool_fchost =
|
||||
&pool_adapter->data.fchost;
|
||||
virStorageAdapterFCHostPtr def_fchost =
|
||||
@ -2319,9 +2317,9 @@ virStoragePoolSourceFindDuplicate(virConnectPtr conn,
|
||||
STREQ(pool_fchost->wwpn, def_fchost->wwpn))
|
||||
matchpool = pool;
|
||||
} else if (pool_adapter->type ==
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST &&
|
||||
VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST &&
|
||||
def_adapter->type ==
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST) {
|
||||
VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST) {
|
||||
virStorageAdapterSCSIHostPtr pool_scsi_host =
|
||||
&pool_adapter->data.scsi_host;
|
||||
virStorageAdapterSCSIHostPtr def_scsi_host =
|
||||
@ -2341,9 +2339,9 @@ virStoragePoolSourceFindDuplicate(virConnectPtr conn,
|
||||
if (pool_hostnum == def_hostnum)
|
||||
matchpool = pool;
|
||||
} else if (pool_adapter->type ==
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST &&
|
||||
VIR_STORAGE_ADAPTER_TYPE_FC_HOST &&
|
||||
def_adapter->type ==
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST) {
|
||||
VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST) {
|
||||
virStorageAdapterFCHostPtr pool_fchost =
|
||||
&pool_adapter->data.fchost;
|
||||
virStorageAdapterSCSIHostPtr def_scsi_host =
|
||||
@ -2360,9 +2358,9 @@ virStoragePoolSourceFindDuplicate(virConnectPtr conn,
|
||||
}
|
||||
|
||||
} else if (pool_adapter->type ==
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST &&
|
||||
VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST &&
|
||||
def_adapter->type ==
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST) {
|
||||
VIR_STORAGE_ADAPTER_TYPE_FC_HOST) {
|
||||
virStorageAdapterSCSIHostPtr pool_scsi_host =
|
||||
&pool_adapter->data.scsi_host;
|
||||
virStorageAdapterFCHostPtr def_fchost =
|
||||
|
@ -31,6 +31,7 @@
|
||||
# include "virthread.h"
|
||||
# include "device_conf.h"
|
||||
# include "object_event.h"
|
||||
# include "storage_adapter_conf.h"
|
||||
|
||||
# include <libxml/tree.h>
|
||||
|
||||
@ -170,47 +171,6 @@ struct _virStoragePoolSourceDevice {
|
||||
} 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 virStoragePoolSource *virStoragePoolSourcePtr;
|
||||
struct _virStoragePoolSource {
|
||||
@ -226,7 +186,7 @@ struct _virStoragePoolSource {
|
||||
char *dir;
|
||||
|
||||
/* Or an adapter */
|
||||
virStoragePoolSourceAdapter adapter;
|
||||
virStorageAdapter adapter;
|
||||
|
||||
/* Or a name */
|
||||
char *name;
|
||||
|
@ -883,8 +883,6 @@ virStoragePoolObjSaveDef;
|
||||
virStoragePoolObjUnlock;
|
||||
virStoragePoolSaveConfig;
|
||||
virStoragePoolSaveState;
|
||||
virStoragePoolSourceAdapterTypeFromString;
|
||||
virStoragePoolSourceAdapterTypeToString;
|
||||
virStoragePoolSourceClear;
|
||||
virStoragePoolSourceDeviceClear;
|
||||
virStoragePoolSourceFindDuplicate;
|
||||
|
@ -2467,8 +2467,7 @@ phypBuildStoragePool(virConnectPtr conn, virStoragePoolDefPtr def)
|
||||
int exit_status = 0;
|
||||
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||
|
||||
if (source.adapter.type !=
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST) {
|
||||
if (source.adapter.type != VIR_STORAGE_ADAPTER_TYPE_SCSI_HOST) {
|
||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||
_("Only 'scsi_host' adapter is supported"));
|
||||
goto cleanup;
|
||||
|
@ -176,12 +176,12 @@ virStoragePoolFCRefreshThread(void *opaque)
|
||||
}
|
||||
|
||||
static char *
|
||||
getAdapterName(virStoragePoolSourceAdapterPtr adapter)
|
||||
getAdapterName(virStorageAdapterPtr adapter)
|
||||
{
|
||||
char *name = 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;
|
||||
|
||||
if (scsi_host->has_parent) {
|
||||
@ -197,7 +197,7 @@ getAdapterName(virStoragePoolSourceAdapterPtr adapter)
|
||||
} else {
|
||||
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;
|
||||
|
||||
if (!(name = virVHBAGetHostByWWN(NULL, fchost->wwnn, fchost->wwpn))) {
|
||||
@ -451,7 +451,7 @@ virStorageBackendSCSICheckPool(virStoragePoolObjPtr pool,
|
||||
* the adapter based on might be not created yet.
|
||||
*/
|
||||
if (pool->def->source.adapter.type ==
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST) {
|
||||
VIR_STORAGE_ADAPTER_TYPE_FC_HOST) {
|
||||
virResetLastError();
|
||||
return 0;
|
||||
} else {
|
||||
@ -505,24 +505,24 @@ virStorageBackendSCSIRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
virStorageBackendSCSIStartPool(virConnectPtr conn,
|
||||
virStoragePoolObjPtr pool)
|
||||
{
|
||||
if (pool->def->source.adapter.type ==
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST)
|
||||
if (pool->def->source.adapter.type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST)
|
||||
return createVport(conn, pool->def, pool->configFile,
|
||||
&pool->def->source.adapter.data.fchost);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
virStorageBackendSCSIStopPool(virConnectPtr conn,
|
||||
virStoragePoolObjPtr pool)
|
||||
{
|
||||
if (pool->def->source.adapter.type ==
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST)
|
||||
if (pool->def->source.adapter.type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST)
|
||||
return deleteVport(conn, &pool->def->source.adapter.data.fchost);
|
||||
|
||||
return 0;
|
||||
|
@ -4420,8 +4420,7 @@ testStoragePoolCreateXML(virConnectPtr conn,
|
||||
goto cleanup;
|
||||
def = NULL;
|
||||
|
||||
if (pool->def->source.adapter.type ==
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST) {
|
||||
if (pool->def->source.adapter.type == VIR_STORAGE_ADAPTER_TYPE_FC_HOST) {
|
||||
/* In the real code, we'd call virVHBAManageVport followed by
|
||||
* find_new_device, but we cannot do that here since we're not
|
||||
* mocking udev. The mock routine will copy an existing vHBA and
|
||||
@ -4623,7 +4622,7 @@ testStoragePoolDestroy(virStoragePoolPtr pool)
|
||||
privpool->active = 0;
|
||||
|
||||
if (privpool->def->source.adapter.type ==
|
||||
VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST) {
|
||||
VIR_STORAGE_ADAPTER_TYPE_FC_HOST) {
|
||||
if (testDestroyVport(privconn,
|
||||
privpool->def->source.adapter.data.fchost.wwnn,
|
||||
privpool->def->source.adapter.data.fchost.wwpn) < 0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user