mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 17:34:18 +03:00
storage: Introduce iscsi_direct pool type
Introducing the pool as a noop. Integration inside the build system. Implementation will be in the following commits. Signed-off-by: Clementine Hayat <clem@lse.epita.fr> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
8aa85e0bb7
commit
f0bf1be3e7
@ -566,6 +566,7 @@ LIBVIRT_STORAGE_ARG_DIR
|
||||
LIBVIRT_STORAGE_ARG_FS
|
||||
LIBVIRT_STORAGE_ARG_LVM
|
||||
LIBVIRT_STORAGE_ARG_ISCSI
|
||||
LIBVIRT_STORAGE_ARG_ISCSI_DIRECT
|
||||
LIBVIRT_STORAGE_ARG_SCSI
|
||||
LIBVIRT_STORAGE_ARG_MPATH
|
||||
LIBVIRT_STORAGE_ARG_DISK
|
||||
@ -580,6 +581,7 @@ if test "$with_libvirtd" = "no"; then
|
||||
with_storage_fs=no
|
||||
with_storage_lvm=no
|
||||
with_storage_iscsi=no
|
||||
with_storage_iscsi_direct=no
|
||||
with_storage_scsi=no
|
||||
with_storage_mpath=no
|
||||
with_storage_disk=no
|
||||
@ -600,6 +602,7 @@ LIBVIRT_STORAGE_CHECK_DIR
|
||||
LIBVIRT_STORAGE_CHECK_FS
|
||||
LIBVIRT_STORAGE_CHECK_LVM
|
||||
LIBVIRT_STORAGE_CHECK_ISCSI
|
||||
LIBVIRT_STORAGE_CHECK_ISCSI_DIRECT
|
||||
LIBVIRT_STORAGE_CHECK_SCSI
|
||||
LIBVIRT_STORAGE_CHECK_MPATH
|
||||
LIBVIRT_STORAGE_CHECK_DISK
|
||||
@ -610,7 +613,7 @@ LIBVIRT_STORAGE_CHECK_ZFS
|
||||
LIBVIRT_STORAGE_CHECK_VSTORAGE
|
||||
|
||||
with_storage=no
|
||||
for backend in dir fs lvm iscsi scsi mpath rbd disk; do
|
||||
for backend in dir fs lvm iscsi iscsi_direct scsi mpath rbd disk; do
|
||||
if eval test \$with_storage_$backend = yes; then
|
||||
with_storage=yes
|
||||
break
|
||||
@ -938,6 +941,7 @@ LIBVIRT_STORAGE_RESULT_DIR
|
||||
LIBVIRT_STORAGE_RESULT_FS
|
||||
LIBVIRT_STORAGE_RESULT_LVM
|
||||
LIBVIRT_STORAGE_RESULT_ISCSI
|
||||
LIBVIRT_STORAGE_RESULT_ISCSI_DIRECT
|
||||
LIBVIRT_STORAGE_RESULT_SCSI
|
||||
LIBVIRT_STORAGE_RESULT_MPATH
|
||||
LIBVIRT_STORAGE_RESULT_DISK
|
||||
|
@ -18,6 +18,7 @@
|
||||
<ref name='poollogical'/>
|
||||
<ref name='pooldisk'/>
|
||||
<ref name='pooliscsi'/>
|
||||
<ref name='pooliscsidirect'/>
|
||||
<ref name='poolscsi'/>
|
||||
<ref name='poolmpath'/>
|
||||
<ref name='poolrbd'/>
|
||||
@ -101,6 +102,19 @@
|
||||
</interleave>
|
||||
</define>
|
||||
|
||||
<define name='pooliscsidirect'>
|
||||
<attribute name='type'>
|
||||
<value>iscsi-direct</value>
|
||||
</attribute>
|
||||
<interleave>
|
||||
<ref name='commonmetadata'/>
|
||||
<optional>
|
||||
<ref name='sizing'/>
|
||||
</optional>
|
||||
<ref name='sourceiscsidirect'/>
|
||||
</interleave>
|
||||
</define>
|
||||
|
||||
<define name='poolscsi'>
|
||||
<attribute name='type'>
|
||||
<value>scsi</value>
|
||||
@ -314,6 +328,14 @@
|
||||
</element>
|
||||
</define>
|
||||
|
||||
<define name='sourceinfodeviscsidirect'>
|
||||
<element name='device'>
|
||||
<attribute name='path'>
|
||||
<ref name='IscsiQualifiedName'/>
|
||||
</attribute>
|
||||
</element>
|
||||
</define>
|
||||
|
||||
<define name='initiatorinfo'>
|
||||
<element name='initiator'>
|
||||
<element name='iqn'>
|
||||
@ -595,6 +617,19 @@
|
||||
</element>
|
||||
</define>
|
||||
|
||||
<define name='sourceiscsidirect'>
|
||||
<element name='source'>
|
||||
<interleave>
|
||||
<ref name='sourceinfohost'/>
|
||||
<ref name='sourceinfodeviscsidirect'/>
|
||||
<ref name='initiatorinfo'/>
|
||||
<optional>
|
||||
<ref name='sourceinfoauth'/>
|
||||
</optional>
|
||||
</interleave>
|
||||
</element>
|
||||
</define>
|
||||
|
||||
<define name='sourcescsi'>
|
||||
<element name='source'>
|
||||
<interleave>
|
||||
|
@ -433,6 +433,36 @@
|
||||
The iSCSI volume pool does not use the volume format type element.
|
||||
</p>
|
||||
|
||||
<h2><a id="StorageBackendISCSIDirect">iSCSI direct pool</a></h2>
|
||||
<p>
|
||||
This is a variant of the iSCSI pool. Instead of unsing iscsiadm, it uses
|
||||
libiscsi.
|
||||
It require a host, a path which is the target iqn and an initiator iqn.
|
||||
</p>
|
||||
|
||||
<h3>Example pool input</h3>
|
||||
<pre>
|
||||
<pool type="iscsi-direct">
|
||||
<name>virtimages</name>
|
||||
<source>
|
||||
<host name="iscsi.example.com"/>
|
||||
<device path="iqn.2013-06.com.example:iscsi-pool"/>
|
||||
</source>
|
||||
<initiator>
|
||||
<iqn name="iqn.2013-06.com.example:iscsi-initiator"/>
|
||||
</initiator>
|
||||
</pool></pre>
|
||||
|
||||
<h3>Valid pool format types</h3>
|
||||
<p>
|
||||
The iSCSI volume pool does not use the pool format type element.
|
||||
</p>
|
||||
|
||||
<h3>Valid volume format types</h3>
|
||||
<p>
|
||||
The iSCSI volume pool does not use the volume format type element.
|
||||
</p>
|
||||
|
||||
<h2><a id="StorageBackendSCSI">SCSI pool</a></h2>
|
||||
<p>
|
||||
This provides a pool based on a SCSI HBA. Volumes are preexisting SCSI
|
||||
|
41
m4/virt-storage-iscsi-direct.m4
Normal file
41
m4/virt-storage-iscsi-direct.m4
Normal file
@ -0,0 +1,41 @@
|
||||
dnl Iscsi-direct storage
|
||||
dnl
|
||||
dnl Copyright (C) 2018 Clementine Hayat.
|
||||
dnl
|
||||
dnl This library is free software; you can redistribute it and/or
|
||||
dnl modify it under the terms of the GNU Lesser General Public
|
||||
dnl License as published by the Free Software Foundation; either
|
||||
dnl version 2.1 of the License, or (at your option) any later version.
|
||||
dnl
|
||||
dnl This library is distributed in the hope that it will be useful,
|
||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
dnl Lesser General Public License for more details.
|
||||
dnl
|
||||
dnl You should have received a copy of the GNU Lesser General Public
|
||||
dnl License along with this library. If not, see
|
||||
dnl <http://www.gnu.org/licenses/>.
|
||||
dnl
|
||||
|
||||
AC_DEFUN([LIBVIRT_STORAGE_ARG_ISCSI_DIRECT], [
|
||||
LIBVIRT_ARG_WITH_FEATURE([STORAGE_ISCSI_DIRECT],
|
||||
[iscsi-direct backend for the storage driver],
|
||||
[check])
|
||||
])
|
||||
|
||||
AC_DEFUN([LIBVIRT_STORAGE_CHECK_ISCSI_DIRECT], [
|
||||
AC_REQUIRE([LIBVIRT_CHECK_LIBISCSI])
|
||||
if test "$with_storage_iscsi_direct" = "check"; then
|
||||
with_storage_iscsi_direct=$with_libiscsi
|
||||
fi
|
||||
if test "$with_storage_iscsi_direct" = "yes"; then
|
||||
AC_DEFINE_UNQUOTED([WITH_STORAGE_ISCSI_DIRECT], [1],
|
||||
[whether iSCSI backend for storage driver is enabled])
|
||||
fi
|
||||
AM_CONDITIONAL([WITH_STORAGE_ISCSI_DIRECT],
|
||||
[test "$with_storage_iscsi_direct" = "yes"])
|
||||
])
|
||||
|
||||
AC_DEFUN([LIBVIRT_STORAGE_RESULT_ISCSI_DIRECT], [
|
||||
LIBVIRT_RESULT([iscsi-direct], [$with_storage_iscsi_direct])
|
||||
])
|
@ -30252,6 +30252,7 @@ virDomainDiskTranslateSourcePool(virDomainDiskDefPtr def)
|
||||
|
||||
break;
|
||||
|
||||
case VIR_STORAGE_POOL_ISCSI_DIRECT:
|
||||
case VIR_STORAGE_POOL_ISCSI:
|
||||
if (def->startupPolicy) {
|
||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||
|
@ -62,9 +62,9 @@ VIR_ENUM_IMPL(virStoragePool,
|
||||
VIR_STORAGE_POOL_LAST,
|
||||
"dir", "fs", "netfs",
|
||||
"logical", "disk", "iscsi",
|
||||
"scsi", "mpath", "rbd",
|
||||
"sheepdog", "gluster", "zfs",
|
||||
"vstorage")
|
||||
"iscsi-direct", "scsi", "mpath",
|
||||
"rbd", "sheepdog", "gluster",
|
||||
"zfs", "vstorage")
|
||||
|
||||
VIR_ENUM_IMPL(virStoragePoolFormatFileSystem,
|
||||
VIR_STORAGE_POOL_FS_LAST,
|
||||
@ -207,6 +207,17 @@ static virStoragePoolTypeInfo poolTypeInfo[] = {
|
||||
.formatToString = virStoragePoolFormatDiskTypeToString,
|
||||
}
|
||||
},
|
||||
{.poolType = VIR_STORAGE_POOL_ISCSI_DIRECT,
|
||||
.poolOptions = {
|
||||
.flags = (VIR_STORAGE_POOL_SOURCE_HOST |
|
||||
VIR_STORAGE_POOL_SOURCE_DEVICE |
|
||||
VIR_STORAGE_POOL_SOURCE_NETWORK |
|
||||
VIR_STORAGE_POOL_SOURCE_INITIATOR_IQN),
|
||||
},
|
||||
.volOptions = {
|
||||
.formatToString = virStoragePoolFormatDiskTypeToString,
|
||||
}
|
||||
},
|
||||
{.poolType = VIR_STORAGE_POOL_SCSI,
|
||||
.poolOptions = {
|
||||
.flags = (VIR_STORAGE_POOL_SOURCE_ADAPTER),
|
||||
@ -803,6 +814,13 @@ virStoragePoolDefParseXML(xmlXPathContextPtr ctxt)
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (ret->type == VIR_STORAGE_POOL_ISCSI_DIRECT &&
|
||||
!ret->source.initiator.iqn) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("missing initiator IQN"));
|
||||
goto error;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(uuid);
|
||||
VIR_FREE(type);
|
||||
@ -1000,11 +1018,12 @@ virStoragePoolDefFormatBuf(virBufferPtr buf,
|
||||
if (virStoragePoolSourceFormat(buf, options, &def->source) < 0)
|
||||
return -1;
|
||||
|
||||
/* RBD, Sheepdog, and Gluster devices are not local block devs nor
|
||||
/* RBD, Sheepdog, Gluster and Iscsi-direct devices are not local block devs nor
|
||||
* files, so they don't have a target */
|
||||
if (def->type != VIR_STORAGE_POOL_RBD &&
|
||||
def->type != VIR_STORAGE_POOL_SHEEPDOG &&
|
||||
def->type != VIR_STORAGE_POOL_GLUSTER) {
|
||||
def->type != VIR_STORAGE_POOL_GLUSTER &&
|
||||
def->type != VIR_STORAGE_POOL_ISCSI_DIRECT) {
|
||||
virBufferAddLit(buf, "<target>\n");
|
||||
virBufferAdjustIndent(buf, 2);
|
||||
|
||||
|
@ -85,6 +85,7 @@ typedef enum {
|
||||
VIR_STORAGE_POOL_LOGICAL, /* Logical volume groups / volumes */
|
||||
VIR_STORAGE_POOL_DISK, /* Disk partitions */
|
||||
VIR_STORAGE_POOL_ISCSI, /* iSCSI targets */
|
||||
VIR_STORAGE_POOL_ISCSI_DIRECT, /* iSCSI targets using libiscsi */
|
||||
VIR_STORAGE_POOL_SCSI, /* SCSI HBA */
|
||||
VIR_STORAGE_POOL_MPATH, /* Multipath devices */
|
||||
VIR_STORAGE_POOL_RBD, /* RADOS Block Device */
|
||||
|
@ -1838,11 +1838,13 @@ virStoragePoolObjSourceFindDuplicateCb(const void *payload,
|
||||
break;
|
||||
|
||||
case VIR_STORAGE_POOL_ISCSI:
|
||||
case VIR_STORAGE_POOL_ISCSI_DIRECT:
|
||||
case VIR_STORAGE_POOL_FS:
|
||||
case VIR_STORAGE_POOL_LOGICAL:
|
||||
case VIR_STORAGE_POOL_DISK:
|
||||
case VIR_STORAGE_POOL_ZFS:
|
||||
if ((data->def->type == VIR_STORAGE_POOL_ISCSI ||
|
||||
data->def->type == VIR_STORAGE_POOL_ISCSI_DIRECT ||
|
||||
data->def->type == VIR_STORAGE_POOL_FS ||
|
||||
data->def->type == VIR_STORAGE_POOL_LOGICAL ||
|
||||
data->def->type == VIR_STORAGE_POOL_DISK ||
|
||||
|
@ -31,6 +31,11 @@ STORAGE_DRIVER_ISCSI_SOURCES = \
|
||||
storage/storage_backend_iscsi.c \
|
||||
$(NULL)
|
||||
|
||||
STORAGE_DRIVER_ISCSI_DIRECT_SOURCES = \
|
||||
storage/storage_backend_iscsi_direct.h \
|
||||
storage/storage_backend_iscsi_direct.c \
|
||||
$(NULL)
|
||||
|
||||
STORAGE_DRIVER_SCSI_SOURCES = \
|
||||
storage/storage_backend_scsi.h \
|
||||
storage/storage_backend_scsi.c \
|
||||
@ -89,6 +94,7 @@ EXTRA_DIST += \
|
||||
$(STORAGE_FILE_FS_SOURCES) \
|
||||
$(STORAGE_DRIVER_LVM_SOURCES) \
|
||||
$(STORAGE_DRIVER_ISCSI_SOURCES) \
|
||||
$(STORAGE_DRIVER_ISCSI_DIRECT_SOURCES) \
|
||||
$(STORAGE_DRIVER_SCSI_SOURCES) \
|
||||
$(STORAGE_DRIVER_MPATH_SOURCES) \
|
||||
$(STORAGE_DRIVER_DISK_SOURCES) \
|
||||
@ -193,6 +199,22 @@ libvirt_storage_backend_iscsi_la_LIBADD = \
|
||||
$(NULL)
|
||||
endif WITH_STORAGE_ISCSI
|
||||
|
||||
if WITH_STORAGE_ISCSI_DIRECT
|
||||
libvirt_storage_backend_iscsi_direct_la_SOURCES = $(STORAGE_DRIVER_ISCSI_DIRECT_SOURCES)
|
||||
libvirt_storage_backend_iscsi_direct_la_CFLAGS = \
|
||||
-I$(srcdir)/conf \
|
||||
$(LIBISCSI_CFLAGS) \
|
||||
$(AM_CFLAGS) \
|
||||
$(NULL)
|
||||
|
||||
storagebackend_LTLIBRARIES += libvirt_storage_backend_iscsi-direct.la
|
||||
libvirt_storage_backend_iscsi_direct_la_LDFLAGS = $(AM_LDFLAGS_MOD)
|
||||
libvirt_storage_backend_iscsi_direct_la_LIBADD = \
|
||||
libvirt.la \
|
||||
../gnulib/lib/libgnu.la \
|
||||
$(NULL)
|
||||
endif WITH_STORAGE_ISCSI_DIRECT
|
||||
|
||||
if WITH_STORAGE_SCSI
|
||||
libvirt_storage_backend_scsi_la_SOURCES = $(STORAGE_DRIVER_SCSI_SOURCES)
|
||||
libvirt_storage_backend_scsi_la_CFLAGS = \
|
||||
|
@ -43,6 +43,9 @@
|
||||
#if WITH_STORAGE_ISCSI
|
||||
# include "storage_backend_iscsi.h"
|
||||
#endif
|
||||
#if WITH_STORAGE_ISCSI_DIRECT
|
||||
# include "storage_backend_iscsi_direct.h"
|
||||
#endif
|
||||
#if WITH_STORAGE_SCSI
|
||||
# include "storage_backend_scsi.h"
|
||||
#endif
|
||||
@ -122,6 +125,9 @@ virStorageBackendDriversRegister(bool allbackends ATTRIBUTE_UNUSED)
|
||||
#if WITH_STORAGE_ISCSI
|
||||
VIR_STORAGE_BACKEND_REGISTER(virStorageBackendISCSIRegister, "iscsi");
|
||||
#endif
|
||||
#if WITH_STORAGE_ISCSI_DIRECT
|
||||
VIR_STORAGE_BACKEND_REGISTER(virStorageBackendISCSIDirectRegister, "iscsi-direct");
|
||||
#endif
|
||||
#if WITH_STORAGE_SCSI
|
||||
VIR_STORAGE_BACKEND_REGISTER(virStorageBackendSCSIRegister, "scsi");
|
||||
#endif
|
||||
|
58
src/storage/storage_backend_iscsi_direct.c
Normal file
58
src/storage/storage_backend_iscsi_direct.c
Normal file
@ -0,0 +1,58 @@
|
||||
/*
|
||||
* storage_backend_iscsi_direct.c: storage backend for iSCSI using libiscsi
|
||||
*
|
||||
* Copyright (C) 2018 Clementine Hayat.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Author: Clementine Hayat <clem@lse.epita.fr>
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "storage_backend_iscsi_direct.h"
|
||||
#include "storage_util.h"
|
||||
#include "virlog.h"
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_STORAGE
|
||||
|
||||
VIR_LOG_INIT("storage.storage_backend_iscsi_direct");
|
||||
|
||||
|
||||
static int
|
||||
virStorageBackendISCSIDirectCheckPool(virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
||||
bool *isActive ATTRIBUTE_UNUSED)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
virStorageBackendISCSIDirectRefreshPool(virStoragePoolObjPtr pool ATTRIBUTE_UNUSED)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
virStorageBackend virStorageBackendISCSIDirect = {
|
||||
.type = VIR_STORAGE_POOL_ISCSI_DIRECT,
|
||||
|
||||
.checkPool = virStorageBackendISCSIDirectCheckPool,
|
||||
.refreshPool = virStorageBackendISCSIDirectRefreshPool,
|
||||
};
|
||||
|
||||
int
|
||||
virStorageBackendISCSIDirectRegister(void)
|
||||
{
|
||||
return virStorageBackendRegister(&virStorageBackendISCSIDirect);
|
||||
}
|
6
src/storage/storage_backend_iscsi_direct.h
Normal file
6
src/storage/storage_backend_iscsi_direct.h
Normal file
@ -0,0 +1,6 @@
|
||||
#ifndef __VIR_STORAGE_BACKEND_ISCSI_H__
|
||||
# define __VIR_STORAGE_BACKEND_ISCSI_H__
|
||||
|
||||
int virStorageBackendISCSIDirectRegister(void);
|
||||
|
||||
#endif /* __VIR_STORAGE_BACKEND_ISCSI_H__ */
|
@ -1566,6 +1566,7 @@ storageVolLookupByPathCallback(virStoragePoolObjPtr obj,
|
||||
case VIR_STORAGE_POOL_LOGICAL:
|
||||
case VIR_STORAGE_POOL_DISK:
|
||||
case VIR_STORAGE_POOL_ISCSI:
|
||||
case VIR_STORAGE_POOL_ISCSI_DIRECT:
|
||||
case VIR_STORAGE_POOL_SCSI:
|
||||
case VIR_STORAGE_POOL_MPATH:
|
||||
case VIR_STORAGE_POOL_VSTORAGE:
|
||||
|
14
tests/storagepoolxml2xmlin/pool-iscsi-direct-auth.xml
Normal file
14
tests/storagepoolxml2xmlin/pool-iscsi-direct-auth.xml
Normal file
@ -0,0 +1,14 @@
|
||||
<pool type="iscsi-direct">
|
||||
<name>iscsi-direct-auth</name>
|
||||
<uuid>034d66fc-f507-437a-b552-c479ffd63820</uuid>
|
||||
<source>
|
||||
<host name="iscsi.example.com"/>
|
||||
<device path="iqn.2013-06.com.example:iscsi-pool"/>
|
||||
<initiator>
|
||||
<iqn name='iqn.2013-06.com.example:iscsi-initiator'/>
|
||||
</initiator>
|
||||
<auth type='chap' username='user'>
|
||||
<secret uuid='10ed4ad4-c7b0-4696-b574-b40e04fea84b'/>
|
||||
</auth>
|
||||
</source>
|
||||
</pool>
|
11
tests/storagepoolxml2xmlin/pool-iscsi-direct.xml
Normal file
11
tests/storagepoolxml2xmlin/pool-iscsi-direct.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<pool type="iscsi-direct">
|
||||
<name>iscsi-direct</name>
|
||||
<uuid>034d66fc-f507-437a-b552-c479ffd63819</uuid>
|
||||
<source>
|
||||
<host name="iscsi.example.com"/>
|
||||
<device path="iqn.2013-06.com.example:iscsi-pool"/>
|
||||
<initiator>
|
||||
<iqn name='iqn.2013-06.com.example:iscsi-initiator'/>
|
||||
</initiator>
|
||||
</source>
|
||||
</pool>
|
17
tests/storagepoolxml2xmlout/pool-iscsi-direct-auth.xml
Normal file
17
tests/storagepoolxml2xmlout/pool-iscsi-direct-auth.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<pool type='iscsi-direct'>
|
||||
<name>iscsi-direct-auth</name>
|
||||
<uuid>034d66fc-f507-437a-b552-c479ffd63820</uuid>
|
||||
<capacity unit='bytes'>0</capacity>
|
||||
<allocation unit='bytes'>0</allocation>
|
||||
<available unit='bytes'>0</available>
|
||||
<source>
|
||||
<host name='iscsi.example.com'/>
|
||||
<device path='iqn.2013-06.com.example:iscsi-pool'/>
|
||||
<initiator>
|
||||
<iqn name='iqn.2013-06.com.example:iscsi-initiator'/>
|
||||
</initiator>
|
||||
<auth type='chap' username='user'>
|
||||
<secret uuid='10ed4ad4-c7b0-4696-b574-b40e04fea84b'/>
|
||||
</auth>
|
||||
</source>
|
||||
</pool>
|
14
tests/storagepoolxml2xmlout/pool-iscsi-direct.xml
Normal file
14
tests/storagepoolxml2xmlout/pool-iscsi-direct.xml
Normal file
@ -0,0 +1,14 @@
|
||||
<pool type='iscsi-direct'>
|
||||
<name>iscsi-direct</name>
|
||||
<uuid>034d66fc-f507-437a-b552-c479ffd63819</uuid>
|
||||
<capacity unit='bytes'>0</capacity>
|
||||
<allocation unit='bytes'>0</allocation>
|
||||
<available unit='bytes'>0</available>
|
||||
<source>
|
||||
<host name='iscsi.example.com'/>
|
||||
<device path='iqn.2013-06.com.example:iscsi-pool'/>
|
||||
<initiator>
|
||||
<iqn name='iqn.2013-06.com.example:iscsi-initiator'/>
|
||||
</initiator>
|
||||
</source>
|
||||
</pool>
|
@ -102,6 +102,8 @@ mymain(void)
|
||||
DO_TEST("pool-zfs-sourcedev");
|
||||
DO_TEST("pool-rbd");
|
||||
DO_TEST("pool-vstorage");
|
||||
DO_TEST("pool-iscsi-direct-auth");
|
||||
DO_TEST("pool-iscsi-direct");
|
||||
|
||||
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||
}
|
||||
|
@ -1203,6 +1203,9 @@ cmdPoolList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
|
||||
case VIR_STORAGE_POOL_ISCSI:
|
||||
flags |= VIR_CONNECT_LIST_STORAGE_POOLS_ISCSI;
|
||||
break;
|
||||
case VIR_STORAGE_POOL_ISCSI_DIRECT:
|
||||
flags |= VIR_CONNECT_LIST_STORAGE_POOLS_ISCSI;
|
||||
break;
|
||||
case VIR_STORAGE_POOL_SCSI:
|
||||
flags |= VIR_CONNECT_LIST_STORAGE_POOLS_SCSI;
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user