]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: Add support for initiator IQN setting for iSCSI hostdevs
authorPeter Krempa <pkrempa@redhat.com>
Fri, 10 Jul 2020 12:00:12 +0000 (14:00 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 4 Aug 2020 13:49:13 +0000 (15:49 +0200)
We already allow controlling the initiator IQN for iSCSI based disks.
Add the same for host devices.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
docs/formatdomain.rst
docs/schemas/domaincommon.rng
src/conf/domain_conf.c
tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-4.1.0.args
tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-latest.args
tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.xml
tests/qemuxml2xmloutdata/hostdev-scsi-virtio-scsi.xml

index bdd52b9f7630fdb4098bd4635c2bd066b16957b8..3275d1b39ec6e8227113efe6945670c647f63d78 100644 (file)
@@ -3771,6 +3771,9 @@ or:
          <auth username='myuser'>
            <secret type='iscsi' usage='libvirtiscsi'/>
          </auth>
+         <initiator>
+           <iqn name='iqn.2020-07.com.example:test'/>
+         </initiator>
        </source>
        <address type='drive' controller='0' bus='0' target='0' unit='0'/>
      </hostdev>
@@ -3910,6 +3913,10 @@ or:
       same ``name`` attribute and optionally using the ``auth`` element to
       provide the authentication credentials to the iSCSI server.
 
+      :since:`Since 6.7.0`, the optional ``initiator`` sub-element controls the
+      IQN of the initiator ran by the hypervisor via it's ``<iqn name='iqn...'``
+      subelement.
+
    ``scsi_host``
       :since:`Since 2.5.0` , multiple LUNs behind a single SCSI HBA are
       described by a ``protocol`` attribute set to "vhost" and a ``wwpn``
index c196a97511cf6d64d2853d01d7644fd5968a66c0..0d0dcbc5ceea087ec0bc9b7ed124043dddd69fad 100644 (file)
             <optional>
               <ref name='diskAuth'/>
             </optional>
+            <optional>
+              <ref name="initiatorinfo"/>
+            </optional>
           </interleave>
         </group>
       </choice>
index 69e0439e7e317656c8242050050f30d873334c88..a6d23a2238d833b3805a042421f4719b2c4ffc80 100644 (file)
@@ -8354,6 +8354,8 @@ virDomainHostdevSubsysSCSIiSCSIDefParseXML(xmlNodePtr sourcenode,
         iscsisrc->src->auth = g_steal_pointer(&authdef);
     }
 
+    virStorageSourceInitiatorParseXML(ctxt, &iscsisrc->src->initiator);
+
     if (flags & VIR_DOMAIN_DEF_PARSE_STATUS &&
         xmlopt && xmlopt->privateData.storageParse) {
         if ((ctxt->node = virXPathNode("./privateData", ctxt)) &&
@@ -26164,6 +26166,9 @@ virDomainHostdevDefFormatSubsysSCSI(virBufferPtr buf,
 
         if (iscsisrc->src->auth)
             virStorageAuthDefFormat(&sourceChildBuf, iscsisrc->src->auth);
+
+        virStorageSourceInitiatorFormatXML(&iscsisrc->src->initiator,
+                                           &sourceChildBuf);
     } else {
         virBufferAsprintf(&sourceChildBuf, "<adapter name='%s'/>\n",
                           scsihostsrc->adapter);
index de4047000ea22a660e271837394f27f46e65cf47..f2591d69569c25d1db64e195401efd75cc7423b8 100644 (file)
@@ -60,7 +60,8 @@ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\
 keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \
 -drive file.driver=iscsi,file.portal=example.org:3260,\
 file.target=iqn.1992-01.com.example:storage,file.lun=2,file.transport=tcp,\
-file.user=myname,file.password-secret=hostdev5-secret0,if=none,format=raw,\
+file.user=myname,file.password-secret=hostdev5-secret0,\
+file.initiator-name=iqn.2020-07.com.example:test,if=none,format=raw,\
 id=drive-hostdev5 \
 -device scsi-generic,bus=scsi0.0,channel=0,scsi-id=3,lun=5,\
 drive=drive-hostdev5,id=hostdev5 \
index 72980d58b82735f412973372ed2d1df1a8bebbc8..f86cbd73144bd94bdf31bb0305e44fd9be30b24a 100644 (file)
@@ -67,6 +67,7 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \
 -blockdev '{"driver":"iscsi","portal":"example.org:3260",\
 "target":"iqn.1992-01.com.example:storage","lun":2,"transport":"tcp",\
 "user":"myname","password-secret":"hostdev5-secret0",\
+"initiator-name":"iqn.2020-07.com.example:test",\
 "node-name":"libvirt-hostdev5-backend","read-only":false}' \
 -device scsi-generic,bus=scsi0.0,channel=0,scsi-id=3,lun=5,\
 drive=libvirt-hostdev5-backend,id=hostdev5 \
index 775b678b3680127d8c4125ccf858f2d942d1acb1..f1caf80644e35c756d288dd1c1013926fd9bb543 100644 (file)
@@ -67,6 +67,9 @@
         <auth username='myname'>
           <secret type='iscsi' usage='mycluster_myname'/>
         </auth>
+        <initiator>
+          <iqn name='iqn.2020-07.com.example:test'/>
+        </initiator>
       </source>
       <address type='drive' controller='0' bus='0' target='3' unit='5'/>
     </hostdev>
index 9c823809abf99360bd45ccd6749fe39aca61e3d0..6c7e22d0c37ab8dc7a86de33d84b7c362bd2d753 100644 (file)
@@ -74,6 +74,9 @@
         <auth username='myname'>
           <secret type='iscsi' usage='mycluster_myname'/>
         </auth>
+        <initiator>
+          <iqn name='iqn.2020-07.com.example:test'/>
+        </initiator>
       </source>
       <address type='drive' controller='0' bus='0' target='3' unit='5'/>
     </hostdev>