[libvirt] [PATCH] add support of iSER transport type in qemu with libiscsi

lichstor@gmail.com posted 1 patch 6 years, 4 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20171221082715.39791-1-lichstor@gmail.com
src/conf/domain_conf.c                             | 10 ++++++
src/qemu/qemu_block.c                              | 24 +++++++++++--
src/qemu/qemu_command.c                            |  3 ++
src/qemu/qemu_parse_command.c                      | 10 +++++-
src/storage/storage_backend_gluster.c              |  1 +
src/util/virstoragefile.c                          |  3 +-
src/util/virstoragefile.h                          |  1 +
.../qemuargv2xmldata/disk-drive-network-iser.args  | 25 +++++++++++++
tests/qemuargv2xmldata/disk-drive-network-iser.xml | 41 ++++++++++++++++++++++
tests/qemuargv2xmltest.c                           |  1 +
.../qemuxml2argvdata/disk-drive-network-iser.args  | 29 +++++++++++++++
tests/qemuxml2argvdata/disk-drive-network-iser.xml | 37 +++++++++++++++++++
tests/qemuxml2argvtest.c                           |  1 +
.../qemuxml2xmloutdata/disk-drive-network-iser.xml | 41 ++++++++++++++++++++++
tests/qemuxml2xmltest.c                            |  1 +
15 files changed, 224 insertions(+), 4 deletions(-)
create mode 100644 tests/qemuargv2xmldata/disk-drive-network-iser.args
create mode 100644 tests/qemuargv2xmldata/disk-drive-network-iser.xml
create mode 100644 tests/qemuxml2argvdata/disk-drive-network-iser.args
create mode 100644 tests/qemuxml2argvdata/disk-drive-network-iser.xml
create mode 100644 tests/qemuxml2xmloutdata/disk-drive-network-iser.xml
[libvirt] [PATCH] add support of iSER transport type in qemu with libiscsi
Posted by lichstor@gmail.com 6 years, 4 months ago
From: zhangshengyu <zhangshengyu@fusionstack.cn>

---
 src/conf/domain_conf.c                             | 10 ++++++
 src/qemu/qemu_block.c                              | 24 +++++++++++--
 src/qemu/qemu_command.c                            |  3 ++
 src/qemu/qemu_parse_command.c                      | 10 +++++-
 src/storage/storage_backend_gluster.c              |  1 +
 src/util/virstoragefile.c                          |  3 +-
 src/util/virstoragefile.h                          |  1 +
 .../qemuargv2xmldata/disk-drive-network-iser.args  | 25 +++++++++++++
 tests/qemuargv2xmldata/disk-drive-network-iser.xml | 41 ++++++++++++++++++++++
 tests/qemuargv2xmltest.c                           |  1 +
 .../qemuxml2argvdata/disk-drive-network-iser.args  | 29 +++++++++++++++
 tests/qemuxml2argvdata/disk-drive-network-iser.xml | 37 +++++++++++++++++++
 tests/qemuxml2argvtest.c                           |  1 +
 .../qemuxml2xmloutdata/disk-drive-network-iser.xml | 41 ++++++++++++++++++++++
 tests/qemuxml2xmltest.c                            |  1 +
 15 files changed, 224 insertions(+), 4 deletions(-)
 create mode 100644 tests/qemuargv2xmldata/disk-drive-network-iser.args
 create mode 100644 tests/qemuargv2xmldata/disk-drive-network-iser.xml
 create mode 100644 tests/qemuxml2argvdata/disk-drive-network-iser.args
 create mode 100644 tests/qemuxml2argvdata/disk-drive-network-iser.xml
 create mode 100644 tests/qemuxml2xmloutdata/disk-drive-network-iser.xml

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 9a62bc472..5767575d0 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -7080,6 +7080,7 @@ virDomainStorageNetworkParseHosts(xmlNodePtr node,
                                   virStorageNetHostDefPtr *hosts,
                                   size_t *nhosts)
 {
+    char *transport = NULL;
     xmlNodePtr child;
 
     for (child = node->children; child; child = child->next) {
@@ -7091,6 +7092,11 @@ virDomainStorageNetworkParseHosts(xmlNodePtr node,
         }
     }
 
+    if ((*hosts) && (transport = virXMLPropString(node, "transport"))) {
+        //VIR_WARN("missing network source transport type");
+        (*hosts)->transport = virStorageNetHostTransportTypeFromString(transport);
+    }
+
     return 0;
 }
 
@@ -8495,6 +8501,7 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node,
     if (virDomainStorageNetworkParseHosts(node, &src->hosts, &src->nhosts) < 0)
         goto cleanup;
 
+
     virStorageSourceNetworkAssignDefaultPorts(src);
 
     ret = 0;
@@ -22364,6 +22371,9 @@ virDomainDiskSourceFormatNetwork(virBufferPtr attrBuf,
 
     VIR_FREE(path);
 
+    if (src->hosts->transport == VIR_STORAGE_NET_HOST_TRANS_ISER)
+        virBufferEscapeString(attrBuf, " transport='%s'", "iser");
+
     if (src->haveTLS != VIR_TRISTATE_BOOL_ABSENT &&
         !(flags & VIR_DOMAIN_DEF_FORMAT_MIGRATABLE &&
           src->tlsFromConfig))
diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c
index 585f0255e..49837205f 100644
--- a/src/qemu/qemu_block.c
+++ b/src/qemu/qemu_block.c
@@ -433,6 +433,12 @@ qemuBlockStorageSourceGetURI(virStorageSourcePtr src)
         if (VIR_STRDUP(uri->scheme,
                        virStorageNetProtocolTypeToString(src->protocol)) < 0)
             goto cleanup;
+    } else if (src->hosts->transport == VIR_STORAGE_NET_HOST_TRANS_ISER) {
+        uri->port = src->hosts->port;
+
+        if (VIR_STRDUP(uri->scheme,
+                       virStorageNetHostTransportTypeToString(src->hosts->transport)) < 0)
+            goto cleanup;
     } else {
         if (virAsprintf(&uri->scheme, "%s+%s",
                         virStorageNetProtocolTypeToString(src->protocol),
@@ -506,6 +512,19 @@ qemuBlockStorageSourceBuildJSONSocketAddress(virStorageNetHostDefPtr host,
             goto cleanup;
         break;
 
+    case VIR_STORAGE_NET_HOST_TRANS_ISER:
+        transport = "iser";
+        if (virAsprintf(&port, "%u", host->port) < 0)
+            goto cleanup;
+
+        if (virJSONValueObjectCreate(&server,
+                                     "s:type", transport,
+                                     "s:host", host->name,
+                                     "s:port", port,
+                                     NULL) < 0)
+            goto cleanup;
+        break;
+
     case VIR_STORAGE_NET_HOST_TRANS_UNIX:
         if (virJSONValueObjectCreate(&server,
                                      "s:type", "unix",
@@ -590,7 +609,8 @@ qemuBlockStorageSourceBuildJSONInetSocketAddress(virStorageNetHostDefPtr host)
     virJSONValuePtr ret = NULL;
     char *port = NULL;
 
-    if (host->transport != VIR_STORAGE_NET_HOST_TRANS_TCP) {
+    if (host->transport != VIR_STORAGE_NET_HOST_TRANS_TCP &&
+        host->transport != VIR_STORAGE_NET_HOST_TRANS_ISER) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
                        _("only TCP protocol can be converted to InetSocketAddress"));
         return NULL;
@@ -831,7 +851,7 @@ qemuBlockStorageSourceGetISCSIProps(virStorageSourcePtr src)
                                           "s:portal", portal,
                                           "s:target", target,
                                           "u:lun", lun,
-                                          "s:transport", "tcp",
+                                          "s:transport", virStorageNetHostTransportTypeToString(src->hosts->transport),
                                           "S:user", username,
                                           "S:password-secret", objalias,
                                           NULL));
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 4d0c141e5..eb482097f 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -883,6 +883,8 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src,
             if (!((src->hosts->name && strchr(src->hosts->name, ':')) ||
                   (src->hosts->transport == VIR_STORAGE_NET_HOST_TRANS_TCP &&
                    !src->hosts->name) ||
+                  (src->hosts->transport == VIR_STORAGE_NET_HOST_TRANS_ISER &&
+                   !src->hosts->name) ||
                   (src->hosts->transport == VIR_STORAGE_NET_HOST_TRANS_UNIX &&
                    src->hosts->socket &&
                    src->hosts->socket[0] != '/'))) {
@@ -891,6 +893,7 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src,
 
                 switch (src->hosts->transport) {
                 case VIR_STORAGE_NET_HOST_TRANS_TCP:
+                case VIR_STORAGE_NET_HOST_TRANS_ISER:
                     virBufferAsprintf(&buf, "%s:%u",
                                       src->hosts->name, src->hosts->port);
                     break;
diff --git a/src/qemu/qemu_parse_command.c b/src/qemu/qemu_parse_command.c
index 5fe3f97d0..d376af208 100644
--- a/src/qemu/qemu_parse_command.c
+++ b/src/qemu/qemu_parse_command.c
@@ -70,7 +70,9 @@ qemuParseDriveURIString(virDomainDiskDefPtr def, virURIPtr uri,
     if (transp)
         *transp++ = 0;
 
-    if (STRNEQ(uri->scheme, scheme)) {
+    if (STREQ(uri->scheme, "iser")) {
+        transp = (char *)"iser";
+    } else if (STRNEQ(uri->scheme, scheme)) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        _("Invalid transport/scheme '%s'"), uri->scheme);
         goto error;
@@ -709,6 +711,12 @@ qemuParseCommandLineDisk(virDomainXMLOptionPtr xmlopt,
 
                     if (qemuParseISCSIString(def) < 0)
                         goto error;
+                } else if (STRPREFIX(def->src->path, "iser:")) {
+                    def->src->type = VIR_STORAGE_TYPE_NETWORK;
+                    def->src->protocol = VIR_STORAGE_NET_PROTOCOL_ISCSI;
+
+                    if (qemuParseISCSIString(def) < 0)
+                        goto error;
                 } else if (STRPREFIX(def->src->path, "sheepdog:")) {
                     char *p = def->src->path;
                     char *port, *vdi;
diff --git a/src/storage/storage_backend_gluster.c b/src/storage/storage_backend_gluster.c
index 5eea84f16..1452fa0cd 100644
--- a/src/storage/storage_backend_gluster.c
+++ b/src/storage/storage_backend_gluster.c
@@ -608,6 +608,7 @@ virStorageFileBackendGlusterInitServer(virStorageFileBackendGlusterPrivPtr priv,
         hoststr = host->socket;
         break;
 
+    case VIR_STORAGE_NET_HOST_TRANS_ISER:
     case VIR_STORAGE_NET_HOST_TRANS_LAST:
         break;
     }
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
index 5780180a9..63253a9c4 100644
--- a/src/util/virstoragefile.c
+++ b/src/util/virstoragefile.c
@@ -92,7 +92,8 @@ VIR_ENUM_IMPL(virStorageNetProtocol, VIR_STORAGE_NET_PROTOCOL_LAST,
 VIR_ENUM_IMPL(virStorageNetHostTransport, VIR_STORAGE_NET_HOST_TRANS_LAST,
               "tcp",
               "unix",
-              "rdma")
+              "rdma",
+              "iser")
 
 VIR_ENUM_IMPL(virStorageSourcePoolMode,
               VIR_STORAGE_SOURCE_POOL_MODE_LAST,
diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h
index ecd806c93..5a6ec7776 100644
--- a/src/util/virstoragefile.h
+++ b/src/util/virstoragefile.h
@@ -147,6 +147,7 @@ typedef enum {
     VIR_STORAGE_NET_HOST_TRANS_TCP,
     VIR_STORAGE_NET_HOST_TRANS_UNIX,
     VIR_STORAGE_NET_HOST_TRANS_RDMA,
+    VIR_STORAGE_NET_HOST_TRANS_ISER,
 
     VIR_STORAGE_NET_HOST_TRANS_LAST
 } virStorageNetHostTransport;
diff --git a/tests/qemuargv2xmldata/disk-drive-network-iser.args b/tests/qemuargv2xmldata/disk-drive-network-iser.args
new file mode 100644
index 000000000..c476e759e
--- /dev/null
+++ b/tests/qemuargv2xmldata/disk-drive-network-iser.args
@@ -0,0 +1,25 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-i686 \
+-name QEMUGuest1 \
+-S \
+-M pc \
+-m 214 \
+-smp 1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-nographic \
+-monitor unix:/tmp/test-monitor,server,nowait \
+-no-acpi \
+-boot c \
+-usb \
+-drive file=iser://example.org:6000/iqn.1992-01.com.example,format=raw,\
+if=virtio \
+-drive file=iser://example.org:6000/iqn.1992-01.com.example/1,format=raw,\
+if=virtio \
+-net none \
+-serial none \
+-parallel none
diff --git a/tests/qemuargv2xmldata/disk-drive-network-iser.xml b/tests/qemuargv2xmldata/disk-drive-network-iser.xml
new file mode 100644
index 000000000..88f043f66
--- /dev/null
+++ b/tests/qemuargv2xmldata/disk-drive-network-iser.xml
@@ -0,0 +1,41 @@
+<domain type='qemu'>
+  <name>QEMUGuest1</name>
+  <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+  <memory unit='KiB'>219136</memory>
+  <currentMemory unit='KiB'>219136</currentMemory>
+  <vcpu placement='static'>1</vcpu>
+  <os>
+    <type arch='i686' machine='pc'>hvm</type>
+    <boot dev='hd'/>
+  </os>
+  <clock offset='utc'/>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>destroy</on_crash>
+  <devices>
+    <emulator>/usr/bin/qemu-system-i686</emulator>
+    <disk type='network' device='disk'>
+      <driver name='qemu' type='raw'/>
+      <source protocol='iscsi' name='iqn.1992-01.com.example/0' transport='iser'>
+        <host name='example.org' port='6000' transport='iser'/>
+      </source>
+      <target dev='vda' bus='virtio'/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
+    </disk>
+    <disk type='network' device='disk'>
+      <driver name='qemu' type='raw'/>
+      <source protocol='iscsi' name='iqn.1992-01.com.example/1' transport='iser'>
+        <host name='example.org' port='6000' transport='iser'/>
+      </source>
+      <target dev='vdb' bus='virtio'/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
+    </disk>
+    <controller type='usb' index='0'>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
+    </controller>
+    <controller type='pci' index='0' model='pci-root'/>
+    <input type='mouse' bus='ps2'/>
+    <input type='keyboard' bus='ps2'/>
+    <memballoon model='none'/>
+  </devices>
+</domain>
diff --git a/tests/qemuargv2xmltest.c b/tests/qemuargv2xmltest.c
index cb010268c..3a82630e0 100644
--- a/tests/qemuargv2xmltest.c
+++ b/tests/qemuargv2xmltest.c
@@ -213,6 +213,7 @@ mymain(void)
     DO_TEST("disk-drive-network-nbd-unix");
     DO_TEST("disk-drive-network-iscsi");
     DO_TEST("disk-drive-network-iscsi-auth");
+    DO_TEST("disk-drive-network-iser");
     DO_TEST("disk-drive-network-gluster");
     DO_TEST("disk-drive-network-rbd");
     DO_TEST("disk-drive-network-rbd-auth");
diff --git a/tests/qemuxml2argvdata/disk-drive-network-iser.args b/tests/qemuxml2argvdata/disk-drive-network-iser.args
new file mode 100644
index 000000000..49ea467ff
--- /dev/null
+++ b/tests/qemuxml2argvdata/disk-drive-network-iser.args
@@ -0,0 +1,29 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-i686 \
+-name QEMUGuest1 \
+-S \
+-M pc \
+-m 214 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-nographic \
+-nodefaults \
+-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\
+server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=readline \
+-no-acpi \
+-boot c \
+-usb \
+-drive file=iser://example.org:6000/iqn.1992-01.com.example/0,format=raw,\
+if=none,id=drive-virtio-disk0 \
+-device virtio-blk-pci,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,\
+id=virtio-disk0 \
+-drive file=iser://example.org:6000/iqn.1992-01.com.example/1,format=raw,\
+if=none,id=drive-virtio-disk1 \
+-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk1,\
+id=virtio-disk1
diff --git a/tests/qemuxml2argvdata/disk-drive-network-iser.xml b/tests/qemuxml2argvdata/disk-drive-network-iser.xml
new file mode 100644
index 000000000..b1634555c
--- /dev/null
+++ b/tests/qemuxml2argvdata/disk-drive-network-iser.xml
@@ -0,0 +1,37 @@
+<domain type='qemu'>
+  <name>QEMUGuest1</name>
+  <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+  <memory unit='KiB'>219136</memory>
+  <currentMemory unit='KiB'>219136</currentMemory>
+  <vcpu placement='static'>1</vcpu>
+  <os>
+    <type arch='i686' machine='pc'>hvm</type>
+    <boot dev='hd'/>
+  </os>
+  <clock offset='utc'/>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>destroy</on_crash>
+  <devices>
+    <emulator>/usr/bin/qemu-system-i686</emulator>
+    <disk type='network' device='disk'>
+      <driver name='qemu' type='raw'/>
+      <source protocol='iscsi' name='iqn.1992-01.com.example' transport='iser'>
+        <host name='example.org' port='6000'/>
+      </source>
+      <target dev='vda' bus='virtio'/>
+    </disk>
+    <disk type='network' device='disk'>
+      <driver name='qemu' type='raw'/>
+      <source protocol='iscsi' name='iqn.1992-01.com.example/1' transport='iser'>
+        <host name='example.org' port='6000'/>
+      </source>
+      <target dev='vdb' bus='virtio'/>
+    </disk>
+    <controller type='usb' index='0'/>
+    <controller type='pci' index='0' model='pci-root'/>
+    <input type='mouse' bus='ps2'/>
+    <input type='keyboard' bus='ps2'/>
+    <memballoon model='none'/>
+  </devices>
+</domain>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index ca24e0bbb..accfdaf4b 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -936,6 +936,7 @@ mymain(void)
     DO_TEST("disk-drive-network-iscsi-lun",
             QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_VIRTIO_SCSI,
             QEMU_CAPS_SCSI_BLOCK);
+    DO_TEST("disk-drive-network-iser", NONE);
     DO_TEST("disk-drive-network-gluster",
             QEMU_CAPS_GLUSTER_DEBUG_LEVEL);
     DO_TEST("disk-drive-network-rbd", NONE);
diff --git a/tests/qemuxml2xmloutdata/disk-drive-network-iser.xml b/tests/qemuxml2xmloutdata/disk-drive-network-iser.xml
new file mode 100644
index 000000000..88f043f66
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/disk-drive-network-iser.xml
@@ -0,0 +1,41 @@
+<domain type='qemu'>
+  <name>QEMUGuest1</name>
+  <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+  <memory unit='KiB'>219136</memory>
+  <currentMemory unit='KiB'>219136</currentMemory>
+  <vcpu placement='static'>1</vcpu>
+  <os>
+    <type arch='i686' machine='pc'>hvm</type>
+    <boot dev='hd'/>
+  </os>
+  <clock offset='utc'/>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>destroy</on_crash>
+  <devices>
+    <emulator>/usr/bin/qemu-system-i686</emulator>
+    <disk type='network' device='disk'>
+      <driver name='qemu' type='raw'/>
+      <source protocol='iscsi' name='iqn.1992-01.com.example/0' transport='iser'>
+        <host name='example.org' port='6000' transport='iser'/>
+      </source>
+      <target dev='vda' bus='virtio'/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
+    </disk>
+    <disk type='network' device='disk'>
+      <driver name='qemu' type='raw'/>
+      <source protocol='iscsi' name='iqn.1992-01.com.example/1' transport='iser'>
+        <host name='example.org' port='6000' transport='iser'/>
+      </source>
+      <target dev='vdb' bus='virtio'/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
+    </disk>
+    <controller type='usb' index='0'>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
+    </controller>
+    <controller type='pci' index='0' model='pci-root'/>
+    <input type='mouse' bus='ps2'/>
+    <input type='keyboard' bus='ps2'/>
+    <memballoon model='none'/>
+  </devices>
+</domain>
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 2be8eb2c1..23f9292c4 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -515,6 +515,7 @@ mymain(void)
     DO_TEST("disk-drive-network-nbd-unix", NONE);
     DO_TEST("disk-drive-network-iscsi", NONE);
     DO_TEST("disk-drive-network-iscsi-auth", NONE);
+    DO_TEST("disk-drive-network-iser", NONE);
     DO_TEST("disk-drive-network-gluster", NONE);
     DO_TEST("disk-drive-network-rbd", NONE);
     DO_TEST("disk-drive-network-rbd-auth", NONE);
-- 
2.13.6 (Apple Git-96)

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH] add support of iSER transport type in qemu with libiscsi
Posted by Peter Krempa 6 years, 4 months ago
On Thu, Dec 21, 2017 at 16:27:15 +0800, lichstor@gmail.com wrote:
> From: zhangshengyu <zhangshengyu@fusionstack.cn>
> 
> ---
>  src/conf/domain_conf.c                             | 10 ++++++
>  src/qemu/qemu_block.c                              | 24 +++++++++++--
>  src/qemu/qemu_command.c                            |  3 ++
>  src/qemu/qemu_parse_command.c                      | 10 +++++-
>  src/storage/storage_backend_gluster.c              |  1 +
>  src/util/virstoragefile.c                          |  3 +-
>  src/util/virstoragefile.h                          |  1 +
>  .../qemuargv2xmldata/disk-drive-network-iser.args  | 25 +++++++++++++
>  tests/qemuargv2xmldata/disk-drive-network-iser.xml | 41 ++++++++++++++++++++++
>  tests/qemuargv2xmltest.c                           |  1 +
>  .../qemuxml2argvdata/disk-drive-network-iser.args  | 29 +++++++++++++++
>  tests/qemuxml2argvdata/disk-drive-network-iser.xml | 37 +++++++++++++++++++
>  tests/qemuxml2argvtest.c                           |  1 +
>  .../qemuxml2xmloutdata/disk-drive-network-iser.xml | 41 ++++++++++++++++++++++
>  tests/qemuxml2xmltest.c                            |  1 +
>  15 files changed, 224 insertions(+), 4 deletions(-)
>  create mode 100644 tests/qemuargv2xmldata/disk-drive-network-iser.args
>  create mode 100644 tests/qemuargv2xmldata/disk-drive-network-iser.xml
>  create mode 100644 tests/qemuxml2argvdata/disk-drive-network-iser.args
>  create mode 100644 tests/qemuxml2argvdata/disk-drive-network-iser.xml
>  create mode 100644 tests/qemuxml2xmloutdata/disk-drive-network-iser.xml
> 
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 9a62bc472..5767575d0 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -7080,6 +7080,7 @@ virDomainStorageNetworkParseHosts(xmlNodePtr node,
>                                    virStorageNetHostDefPtr *hosts,
>                                    size_t *nhosts)
>  {
> +    char *transport = NULL;
>      xmlNodePtr child;
>  
>      for (child = node->children; child; child = child->next) {
> @@ -7091,6 +7092,11 @@ virDomainStorageNetworkParseHosts(xmlNodePtr node,
>          }
>      }
>  
> +    if ((*hosts) && (transport = virXMLPropString(node, "transport"))) {
> +        //VIR_WARN("missing network source transport type");

We don't allow C99 style comments.

Also apparently you STILL did not run the test suite before submission:

../build-aux/test-driver: line 107:  2113 Segmentation fault      "$@" > $log_file 2>&1
FAIL: qemuargv2xmltest

../build-aux/test-driver: line 107:  2051 Segmentation fault      "$@" > $log_file 2>&1
FAIL: qemuxml2xmltest

FAIL: virschematest


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH] add support of iSER transport type in qemu with libiscsi
Posted by Charles Kelimod 6 years, 4 months ago
Hi Peter,

I will remove the comment.
I did the test and noticed the issue, then I reverted to a clean workspace
which is cloned from the libvirt git datastore, however I meet the same
issue when running the test:
VIR_TEST_DEBUG=1 VIR_TEST_EXPENSIVE=1 make check
Therefor I thought it was something wrong in other place or my environment.

Regards,
Charles.

On Thu, Dec 21, 2017 at 9:24 PM, Peter Krempa <pkrempa@redhat.com> wrote:

> On Thu, Dec 21, 2017 at 16:27:15 +0800, lichstor@gmail.com wrote:
> > From: zhangshengyu <zhangshengyu@fusionstack.cn>
> >
> > ---
> >  src/conf/domain_conf.c                             | 10 ++++++
> >  src/qemu/qemu_block.c                              | 24 +++++++++++--
> >  src/qemu/qemu_command.c                            |  3 ++
> >  src/qemu/qemu_parse_command.c                      | 10 +++++-
> >  src/storage/storage_backend_gluster.c              |  1 +
> >  src/util/virstoragefile.c                          |  3 +-
> >  src/util/virstoragefile.h                          |  1 +
> >  .../qemuargv2xmldata/disk-drive-network-iser.args  | 25 +++++++++++++
> >  tests/qemuargv2xmldata/disk-drive-network-iser.xml | 41
> ++++++++++++++++++++++
> >  tests/qemuargv2xmltest.c                           |  1 +
> >  .../qemuxml2argvdata/disk-drive-network-iser.args  | 29 +++++++++++++++
> >  tests/qemuxml2argvdata/disk-drive-network-iser.xml | 37
> +++++++++++++++++++
> >  tests/qemuxml2argvtest.c                           |  1 +
> >  .../qemuxml2xmloutdata/disk-drive-network-iser.xml | 41
> ++++++++++++++++++++++
> >  tests/qemuxml2xmltest.c                            |  1 +
> >  15 files changed, 224 insertions(+), 4 deletions(-)
> >  create mode 100644 tests/qemuargv2xmldata/disk-drive-network-iser.args
> >  create mode 100644 tests/qemuargv2xmldata/disk-drive-network-iser.xml
> >  create mode 100644 tests/qemuxml2argvdata/disk-drive-network-iser.args
> >  create mode 100644 tests/qemuxml2argvdata/disk-drive-network-iser.xml
> >  create mode 100644 tests/qemuxml2xmloutdata/disk-drive-network-iser.xml
> >
> > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> > index 9a62bc472..5767575d0 100644
> > --- a/src/conf/domain_conf.c
> > +++ b/src/conf/domain_conf.c
> > @@ -7080,6 +7080,7 @@ virDomainStorageNetworkParseHosts(xmlNodePtr node,
> >                                    virStorageNetHostDefPtr *hosts,
> >                                    size_t *nhosts)
> >  {
> > +    char *transport = NULL;
> >      xmlNodePtr child;
> >
> >      for (child = node->children; child; child = child->next) {
> > @@ -7091,6 +7092,11 @@ virDomainStorageNetworkParseHosts(xmlNodePtr
> node,
> >          }
> >      }
> >
> > +    if ((*hosts) && (transport = virXMLPropString(node, "transport"))) {
> > +        //VIR_WARN("missing network source transport type");
>
> We don't allow C99 style comments.
>
> Also apparently you STILL did not run the test suite before submission:
>
> ../build-aux/test-driver: line 107:  2113 Segmentation fault      "$@" >
> $log_file 2>&1
> FAIL: qemuargv2xmltest
>
> ../build-aux/test-driver: line 107:  2051 Segmentation fault      "$@" >
> $log_file 2>&1
> FAIL: qemuxml2xmltest
>
> FAIL: virschematest
>
>
>
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH] add support of iSER transport type in qemu with libiscsi
Posted by Charles Kelimod 6 years, 3 months ago
Hello,

I have not got revert back since I sent last patch on 12/22/2017, just want
to know how it is going on?

Regards,
Charles.

On Fri, Dec 22, 2017 at 3:08 PM, Charles Kelimod <lichstor@gmail.com> wrote:

> Hi Peter,
>
> I will remove the comment.
> I did the test and noticed the issue, then I reverted to a clean workspace
> which is cloned from the libvirt git datastore, however I meet the same
> issue when running the test:
> VIR_TEST_DEBUG=1 VIR_TEST_EXPENSIVE=1 make check
> Therefor I thought it was something wrong in other place or my environment.
>
> Regards,
> Charles.
>
> On Thu, Dec 21, 2017 at 9:24 PM, Peter Krempa <pkrempa@redhat.com> wrote:
>
>> On Thu, Dec 21, 2017 at 16:27:15 +0800, lichstor@gmail.com wrote:
>> > From: zhangshengyu <zhangshengyu@fusionstack.cn>
>> >
>> > ---
>> >  src/conf/domain_conf.c                             | 10 ++++++
>> >  src/qemu/qemu_block.c                              | 24 +++++++++++--
>> >  src/qemu/qemu_command.c                            |  3 ++
>> >  src/qemu/qemu_parse_command.c                      | 10 +++++-
>> >  src/storage/storage_backend_gluster.c              |  1 +
>> >  src/util/virstoragefile.c                          |  3 +-
>> >  src/util/virstoragefile.h                          |  1 +
>> >  .../qemuargv2xmldata/disk-drive-network-iser.args  | 25 +++++++++++++
>> >  tests/qemuargv2xmldata/disk-drive-network-iser.xml | 41
>> ++++++++++++++++++++++
>> >  tests/qemuargv2xmltest.c                           |  1 +
>> >  .../qemuxml2argvdata/disk-drive-network-iser.args  | 29
>> +++++++++++++++
>> >  tests/qemuxml2argvdata/disk-drive-network-iser.xml | 37
>> +++++++++++++++++++
>> >  tests/qemuxml2argvtest.c                           |  1 +
>> >  .../qemuxml2xmloutdata/disk-drive-network-iser.xml | 41
>> ++++++++++++++++++++++
>> >  tests/qemuxml2xmltest.c                            |  1 +
>> >  15 files changed, 224 insertions(+), 4 deletions(-)
>> >  create mode 100644 tests/qemuargv2xmldata/disk-drive-network-iser.args
>> >  create mode 100644 tests/qemuargv2xmldata/disk-drive-network-iser.xml
>> >  create mode 100644 tests/qemuxml2argvdata/disk-drive-network-iser.args
>> >  create mode 100644 tests/qemuxml2argvdata/disk-drive-network-iser.xml
>> >  create mode 100644 tests/qemuxml2xmloutdata/disk-
>> drive-network-iser.xml
>> >
>> > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
>> > index 9a62bc472..5767575d0 100644
>> > --- a/src/conf/domain_conf.c
>> > +++ b/src/conf/domain_conf.c
>> > @@ -7080,6 +7080,7 @@ virDomainStorageNetworkParseHosts(xmlNodePtr
>> node,
>> >                                    virStorageNetHostDefPtr *hosts,
>> >                                    size_t *nhosts)
>> >  {
>> > +    char *transport = NULL;
>> >      xmlNodePtr child;
>> >
>> >      for (child = node->children; child; child = child->next) {
>> > @@ -7091,6 +7092,11 @@ virDomainStorageNetworkParseHosts(xmlNodePtr
>> node,
>> >          }
>> >      }
>> >
>> > +    if ((*hosts) && (transport = virXMLPropString(node, "transport")))
>> {
>> > +        //VIR_WARN("missing network source transport type");
>>
>> We don't allow C99 style comments.
>>
>> Also apparently you STILL did not run the test suite before submission:
>>
>> ../build-aux/test-driver: line 107:  2113 Segmentation fault      "$@" >
>> $log_file 2>&1
>> FAIL: qemuargv2xmltest
>>
>> ../build-aux/test-driver: line 107:  2051 Segmentation fault      "$@" >
>> $log_file 2>&1
>> FAIL: qemuxml2xmltest
>>
>> FAIL: virschematest
>>
>>
>>
>
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list