[libvirt PATCH v3 01/18] schema: allow 'ssh' as a protocol for network disks

Jonathon Jongsma posted 18 patches 3 years, 3 months ago
There is a newer version of this series
[libvirt PATCH v3 01/18] schema: allow 'ssh' as a protocol for network disks
Posted by Jonathon Jongsma 3 years, 3 months ago
There was support in the code for parsing protocol='ssh' on network disk
sources, but it was not present in the xml schema. Add this to the
schema and mention it in the documentation.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
---
 src/conf/schemas/domaincommon.rng             |  1 +
 .../disk-network-ssh.x86_64-latest.args       | 36 +++++++++++++++++++
 tests/qemuxml2argvdata/disk-network-ssh.xml   | 31 ++++++++++++++++
 tests/qemuxml2argvtest.c                      |  1 +
 4 files changed, 69 insertions(+)
 create mode 100644 tests/qemuxml2argvdata/disk-network-ssh.x86_64-latest.args
 create mode 100644 tests/qemuxml2argvdata/disk-network-ssh.xml

diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincommon.rng
index d346442510..e2d5ff1379 100644
--- a/src/conf/schemas/domaincommon.rng
+++ b/src/conf/schemas/domaincommon.rng
@@ -2144,6 +2144,7 @@
           <choice>
             <value>sheepdog</value>
             <value>tftp</value>
+            <value>ssh</value>
           </choice>
         </attribute>
         <attribute name="name"/>
diff --git a/tests/qemuxml2argvdata/disk-network-ssh.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-ssh.x86_64-latest.args
new file mode 100644
index 0000000000..045474724b
--- /dev/null
+++ b/tests/qemuxml2argvdata/disk-network-ssh.x86_64-latest.args
@@ -0,0 +1,36 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/tmp/lib/domain--1-QEMUGuest1 \
+USER=test \
+LOGNAME=test \
+XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \
+XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \
+XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
+/usr/bin/qemu-system-x86_64 \
+-name guest=QEMUGuest1,debug-threads=on \
+-S \
+-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tmp/lib/domain--1-QEMUGuest1/master-key.aes"}' \
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram \
+-accel kvm \
+-cpu qemu64 \
+-m 214 \
+-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
+-overcommit mem-lock=off \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-display none \
+-no-user-config \
+-nodefaults \
+-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \
+-mon chardev=charmonitor,id=monitor,mode=control \
+-rtc base=utc \
+-no-shutdown \
+-no-acpi \
+-boot strict=on \
+-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}' \
+-blockdev '{"driver":"ssh","path":"test.img","server":{"host":"example.org","port":"2222"},"node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw","file":"libvirt-1-storage"}' \
+-device '{"driver":"virtio-blk-pci","bus":"pci.0","addr":"0x2","drive":"libvirt-1-format","id":"virtio-disk0","bootindex":1}' \
+-audiodev '{"id":"audio1","driver":"none"}' \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
+-msg timestamp=on
diff --git a/tests/qemuxml2argvdata/disk-network-ssh.xml b/tests/qemuxml2argvdata/disk-network-ssh.xml
new file mode 100644
index 0000000000..355add4fea
--- /dev/null
+++ b/tests/qemuxml2argvdata/disk-network-ssh.xml
@@ -0,0 +1,31 @@
+<domain type='kvm'>
+  <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='x86_64' 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>
+    <disk type='network' device='disk'>
+      <driver name='qemu' type='raw'/>
+      <source protocol='ssh' name='test.img'>
+        <host name='example.org' port='2222'/>
+        <timeout seconds='1234'/>
+        <readahead size='1024'/>
+      </source>
+      <target dev='vda' 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 7ede68d555..ef32cae2e9 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -1325,6 +1325,7 @@ mymain(void)
     DO_TEST_CAPS_LATEST("disk-network-tlsx509-nbd-hostname");
     DO_TEST_CAPS_VER("disk-network-tlsx509-vxhs", "5.0.0");
     DO_TEST_CAPS_LATEST("disk-network-http");
+    DO_TEST_CAPS_LATEST("disk-network-ssh");
     driver.config->vxhsTLS = 0;
     VIR_FREE(driver.config->vxhsTLSx509certdir);
     DO_TEST_CAPS_LATEST("disk-no-boot");
-- 
2.37.3
Re: [libvirt PATCH v3 01/18] schema: allow 'ssh' as a protocol for network disks
Posted by Ján Tomko 3 years, 2 months ago
On a Thursday in 2022, Jonathon Jongsma wrote:
>There was support in the code for parsing protocol='ssh' on network disk
>sources, but it was not present in the xml schema. Add this to the
>schema and mention it in the documentation.
>
>Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
>---
> src/conf/schemas/domaincommon.rng             |  1 +
> .../disk-network-ssh.x86_64-latest.args       | 36 +++++++++++++++++++
> tests/qemuxml2argvdata/disk-network-ssh.xml   | 31 ++++++++++++++++
> tests/qemuxml2argvtest.c                      |  1 +
> 4 files changed, 69 insertions(+)
> create mode 100644 tests/qemuxml2argvdata/disk-network-ssh.x86_64-latest.args
> create mode 100644 tests/qemuxml2argvdata/disk-network-ssh.xml
>

Reviewed-by: Ján Tomko <jtomko@redhat.com>

Jano
Re: [libvirt PATCH v3 01/18] schema: allow 'ssh' as a protocol for network disks
Posted by Peter Krempa 3 years, 2 months ago
On Tue, Nov 15, 2022 at 12:07:18 +0100, Ján Tomko wrote:
> On a Thursday in 2022, Jonathon Jongsma wrote:
> > There was support in the code for parsing protocol='ssh' on network disk
> > sources, but it was not present in the xml schema. Add this to the
> > schema and mention it in the documentation.
> > 
> > Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
> > ---
> > src/conf/schemas/domaincommon.rng             |  1 +
> > .../disk-network-ssh.x86_64-latest.args       | 36 +++++++++++++++++++
> > tests/qemuxml2argvdata/disk-network-ssh.xml   | 31 ++++++++++++++++
> > tests/qemuxml2argvtest.c                      |  1 +
> > 4 files changed, 69 insertions(+)
> > create mode 100644 tests/qemuxml2argvdata/disk-network-ssh.x86_64-latest.args
> > create mode 100644 tests/qemuxml2argvdata/disk-network-ssh.xml
> > 
> 
> Reviewed-by: Ján Tomko <jtomko@redhat.com>

Note that my comments from the v2 review were not addressed.
Re: [libvirt PATCH v3 01/18] schema: allow 'ssh' as a protocol for network disks
Posted by Jonathon Jongsma 3 years, 2 months ago
On 12/7/22 5:15 AM, Peter Krempa wrote:
> On Tue, Nov 15, 2022 at 12:07:18 +0100, Ján Tomko wrote:
>> On a Thursday in 2022, Jonathon Jongsma wrote:
>>> There was support in the code for parsing protocol='ssh' on network disk
>>> sources, but it was not present in the xml schema. Add this to the
>>> schema and mention it in the documentation.
>>>
>>> Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
>>> ---
>>> src/conf/schemas/domaincommon.rng             |  1 +
>>> .../disk-network-ssh.x86_64-latest.args       | 36 +++++++++++++++++++
>>> tests/qemuxml2argvdata/disk-network-ssh.xml   | 31 ++++++++++++++++
>>> tests/qemuxml2argvtest.c                      |  1 +
>>> 4 files changed, 69 insertions(+)
>>> create mode 100644 tests/qemuxml2argvdata/disk-network-ssh.x86_64-latest.args
>>> create mode 100644 tests/qemuxml2argvdata/disk-network-ssh.xml
>>>
>>
>> Reviewed-by: Ján Tomko <jtomko@redhat.com>
> 
> Note that my comments from the v2 review were not addressed.
> 


Well, I did address your comments in a way. I removed the mention of the 
'ssh' protocol type from the documentation of the domain xml in order to 
not encourage people to try to use it. But if you want me to leave it in 
the documentation but add a warning, I can do that instead.

Jonathon