From 90df0f82880149506a435763a47363c8125709bd Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Fri, 10 Jul 2020 14:00:12 +0200 Subject: [PATCH] conf: Add support for initiator IQN setting for iSCSI hostdevs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We already allow controlling the initiator IQN for iSCSI based disks. Add the same for host devices. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- docs/formatdomain.rst | 7 +++++++ docs/schemas/domaincommon.rng | 3 +++ src/conf/domain_conf.c | 5 +++++ .../hostdev-scsi-virtio-scsi.x86_64-4.1.0.args | 3 ++- .../hostdev-scsi-virtio-scsi.x86_64-latest.args | 1 + tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.xml | 3 +++ tests/qemuxml2xmloutdata/hostdev-scsi-virtio-scsi.xml | 3 +++ 7 files changed, 24 insertions(+), 1 deletion(-) diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index bdd52b9f76..3275d1b39e 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -3771,6 +3771,9 @@ or: + + +
@@ -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 `` + + + diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 69e0439e7e..a6d23a2238 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -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, "\n", scsihostsrc->adapter); diff --git a/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-4.1.0.args b/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-4.1.0.args index de4047000e..f2591d6956 100644 --- a/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-4.1.0.args +++ b/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-4.1.0.args @@ -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 \ diff --git a/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-latest.args b/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-latest.args index 72980d58b8..f86cbd7314 100644 --- a/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-latest.args +++ b/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.x86_64-latest.args @@ -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 \ diff --git a/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.xml b/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.xml index 775b678b36..f1caf80644 100644 --- a/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.xml +++ b/tests/qemuxml2argvdata/hostdev-scsi-virtio-scsi.xml @@ -67,6 +67,9 @@ + + +
diff --git a/tests/qemuxml2xmloutdata/hostdev-scsi-virtio-scsi.xml b/tests/qemuxml2xmloutdata/hostdev-scsi-virtio-scsi.xml index 9c823809ab..6c7e22d0c3 100644 --- a/tests/qemuxml2xmloutdata/hostdev-scsi-virtio-scsi.xml +++ b/tests/qemuxml2xmloutdata/hostdev-scsi-virtio-scsi.xml @@ -74,6 +74,9 @@ + + +