[PATCH 0/3] Rmove support of tftp storage protocol

Let's drop tftp support since it is ususabled before or after QEMU v2.8 [1]. [1]: https://bugzilla.redhat.com/show_bug.cgi?id=1372143 Han Han (3): docs: Remove tftp protocol support from docs src: Remove tftp network storage support news: Remove support for tftp storage protocol docs/formatdomain.html.in | 10 +--------- docs/news.xml | 11 +++++++++++ docs/schemas/domaincommon.rng | 1 - src/libxl/libxl_conf.c | 1 - src/libxl/xen_xl.c | 1 - src/qemu/qemu_block.c | 3 --- src/qemu/qemu_command.c | 1 - src/qemu/qemu_domain.c | 11 ----------- src/qemu/qemu_driver.c | 3 --- src/util/virstoragefile.c | 6 ------ src/util/virstoragefile.h | 1 - 11 files changed, 12 insertions(+), 37 deletions(-) -- 2.25.0

Signed-off-by: Han Han <hhan@redhat.com> --- docs/formatdomain.html.in | 10 +--------- docs/schemas/domaincommon.rng | 1 - 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 23eb0292..cadb64b2 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -2952,14 +2952,6 @@ <target dev='hdh' bus='ide' tray='open'/> <readonly/> </disk> - <disk type='network' device='cdrom'> - <driver name='qemu' type='raw'/> - <source protocol="tftp" name="url_path"> - <host name="hostname" port="69"/> - </source> - <target dev='hdi' bus='ide' tray='open'/> - <readonly/> - </disk> <disk type='block' device='lun'> <driver name='qemu' type='raw'/> <source dev='/dev/sda'> @@ -3166,7 +3158,7 @@ The <code>protocol</code> attribute specifies the protocol to access to the requested image. Possible values are "nbd", "iscsi", "rbd", "sheepdog", "gluster", "vxhs", "http", "https", - "ftp", ftps", or "tftp". + "ftp", ftps". <p>For any <code>protocol</code> other than <code>nbd</code> an additional attribute <code>name</code> diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 9d60b090..c93b150d 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -1942,7 +1942,6 @@ <choice> <value>sheepdog</value> <value>ftp</value> - <value>tftp</value> </choice> </attribute> <attribute name="name"/> -- 2.25.0

On Thu, May 21, 2020 at 14:08:18 +0800, Han Han wrote:
Signed-off-by: Han Han <hhan@redhat.com> --- docs/formatdomain.html.in | 10 +--------- docs/schemas/domaincommon.rng | 1 - 2 files changed, 1 insertion(+), 10 deletions(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 23eb0292..cadb64b2 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -2952,14 +2952,6 @@ <target dev='hdh' bus='ide' tray='open'/> <readonly/> </disk> - <disk type='network' device='cdrom'> - <driver name='qemu' type='raw'/> - <source protocol="tftp" name="url_path"> - <host name="hostname" port="69"/> - </source> - <target dev='hdi' bus='ide' tray='open'/> - <readonly/> - </disk> <disk type='block' device='lun'> <driver name='qemu' type='raw'/> <source dev='/dev/sda'> @@ -3166,7 +3158,7 @@ The <code>protocol</code> attribute specifies the protocol to access to the requested image. Possible values are "nbd", "iscsi", "rbd", "sheepdog", "gluster", "vxhs", "http", "https", - "ftp", ftps", or "tftp". + "ftp", ftps".
<p>For any <code>protocol</code> other than <code>nbd</code> an additional attribute <code>name</code>
We theoretically can remove the example and state that 'tftp' didn't really work.
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 9d60b090..c93b150d 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -1942,7 +1942,6 @@ <choice> <value>sheepdog</value> <value>ftp</value> - <value>tftp</value> </choice>
But we can't do this.
</attribute> <attribute name="name"/> -- 2.25.0

As for libxl driver, libvirt pops up unsupported error when using tftp. For qemu driver, tftp is dropped since v2.8. Besides, tftp is completely unusable before v2.8 [1]. So let's remove all the tftp support. [1]: https://bugzilla.redhat.com/show_bug.cgi?id=1372143#c2 Signed-off-by: Han Han <hhan@redhat.com> --- src/libxl/libxl_conf.c | 1 - src/libxl/xen_xl.c | 1 - src/qemu/qemu_block.c | 3 --- src/qemu/qemu_command.c | 1 - src/qemu/qemu_domain.c | 11 ----------- src/qemu/qemu_driver.c | 3 --- src/util/virstoragefile.c | 6 ------ src/util/virstoragefile.h | 1 - 8 files changed, 27 deletions(-) diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index a0059fc2..cc80c063 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -920,7 +920,6 @@ libxlMakeNetworkDiskSrcStr(virStorageSourcePtr src, case VIR_STORAGE_NET_PROTOCOL_HTTPS: case VIR_STORAGE_NET_PROTOCOL_FTP: case VIR_STORAGE_NET_PROTOCOL_FTPS: - case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_ISCSI: case VIR_STORAGE_NET_PROTOCOL_GLUSTER: case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG: diff --git a/src/libxl/xen_xl.c b/src/libxl/xen_xl.c index d40c2e1d..38412038 100644 --- a/src/libxl/xen_xl.c +++ b/src/libxl/xen_xl.c @@ -1572,7 +1572,6 @@ xenFormatXLDiskSrcNet(virStorageSourcePtr src) case VIR_STORAGE_NET_PROTOCOL_HTTPS: case VIR_STORAGE_NET_PROTOCOL_FTP: case VIR_STORAGE_NET_PROTOCOL_FTPS: - case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_ISCSI: case VIR_STORAGE_NET_PROTOCOL_GLUSTER: case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG: diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index 6f9c7071..a5c06e60 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -1137,7 +1137,6 @@ qemuBlockStorageSourceGetBackendProps(virStorageSourcePtr src, case VIR_STORAGE_NET_PROTOCOL_HTTPS: case VIR_STORAGE_NET_PROTOCOL_FTP: case VIR_STORAGE_NET_PROTOCOL_FTPS: - case VIR_STORAGE_NET_PROTOCOL_TFTP: driver = virStorageNetProtocolTypeToString(src->protocol); if (!(fileprops = qemuBlockStorageSourceGetCURLProps(src, onlytarget))) return NULL; @@ -2076,7 +2075,6 @@ qemuBlockGetBackingStoreString(virStorageSourcePtr src, case VIR_STORAGE_NET_PROTOCOL_HTTPS: case VIR_STORAGE_NET_PROTOCOL_FTP: case VIR_STORAGE_NET_PROTOCOL_FTPS: - case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_ISCSI: case VIR_STORAGE_NET_PROTOCOL_GLUSTER: if (!(uri = qemuBlockStorageSourceGetURI(src))) @@ -2480,7 +2478,6 @@ qemuBlockStorageSourceCreateGetStorageProps(virStorageSourcePtr src, case VIR_STORAGE_NET_PROTOCOL_HTTPS: case VIR_STORAGE_NET_PROTOCOL_FTP: case VIR_STORAGE_NET_PROTOCOL_FTPS: - case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_NONE: case VIR_STORAGE_NET_PROTOCOL_LAST: return 0; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 419eca56..3c4b1fa6 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -966,7 +966,6 @@ qemuBuildNetworkDriveStr(virStorageSourcePtr src, case VIR_STORAGE_NET_PROTOCOL_HTTPS: case VIR_STORAGE_NET_PROTOCOL_FTP: case VIR_STORAGE_NET_PROTOCOL_FTPS: - case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_ISCSI: case VIR_STORAGE_NET_PROTOCOL_GLUSTER: ret = qemuBuildNetworkDriveURI(src, secinfo); diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index d5e3d1a3..02306c9e 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5319,16 +5319,6 @@ qemuDomainValidateStorageSource(virStorageSourcePtr src, return -1; } - /* TFTP protocol was not supported for some time, lock it out at least with - * -blockdev */ - if (actualType == VIR_STORAGE_TYPE_NETWORK && - src->protocol == VIR_STORAGE_NET_PROTOCOL_TFTP && - blockdev) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("'tftp' protocol is not supported with this QEMU binary")); - return -1; - } - return 0; } @@ -10694,7 +10684,6 @@ qemuDomainPrepareStorageSourceTLS(virStorageSourcePtr src, case VIR_STORAGE_NET_PROTOCOL_HTTPS: case VIR_STORAGE_NET_PROTOCOL_FTP: case VIR_STORAGE_NET_PROTOCOL_FTPS: - case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_SSH: if (src->haveTLS == VIR_TRISTATE_BOOL_YES) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index dd9ae30b..b8850bd0 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -14556,7 +14556,6 @@ qemuDomainSnapshotPrepareDiskExternalInactive(virDomainSnapshotDiskDefPtr snapdi case VIR_STORAGE_NET_PROTOCOL_HTTPS: case VIR_STORAGE_NET_PROTOCOL_FTP: case VIR_STORAGE_NET_PROTOCOL_FTPS: - case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_SSH: case VIR_STORAGE_NET_PROTOCOL_VXHS: case VIR_STORAGE_NET_PROTOCOL_LAST: @@ -14644,7 +14643,6 @@ qemuDomainSnapshotPrepareDiskExternalActive(virDomainObjPtr vm, case VIR_STORAGE_NET_PROTOCOL_HTTPS: case VIR_STORAGE_NET_PROTOCOL_FTP: case VIR_STORAGE_NET_PROTOCOL_FTPS: - case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_SSH: case VIR_STORAGE_NET_PROTOCOL_VXHS: case VIR_STORAGE_NET_PROTOCOL_LAST: @@ -14774,7 +14772,6 @@ qemuDomainSnapshotPrepareDiskInternal(virDomainDiskDefPtr disk, case VIR_STORAGE_NET_PROTOCOL_HTTPS: case VIR_STORAGE_NET_PROTOCOL_FTP: case VIR_STORAGE_NET_PROTOCOL_FTPS: - case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_SSH: case VIR_STORAGE_NET_PROTOCOL_VXHS: case VIR_STORAGE_NET_PROTOCOL_LAST: diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index 535a94e2..e5e3c9f1 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -87,7 +87,6 @@ VIR_ENUM_IMPL(virStorageNetProtocol, "https", "ftp", "ftps", - "tftp", "ssh", "vxhs", ); @@ -3159,7 +3158,6 @@ virStorageSourceParseBackingColon(virStorageSourcePtr src, case VIR_STORAGE_NET_PROTOCOL_HTTPS: case VIR_STORAGE_NET_PROTOCOL_FTP: case VIR_STORAGE_NET_PROTOCOL_FTPS: - case VIR_STORAGE_NET_PROTOCOL_TFTP: case VIR_STORAGE_NET_PROTOCOL_ISCSI: case VIR_STORAGE_NET_PROTOCOL_GLUSTER: case VIR_STORAGE_NET_PROTOCOL_SSH: @@ -3868,7 +3866,6 @@ static const struct virStorageSourceJSONDriverParser jsonParsers[] = { {"https", false, virStorageSourceParseBackingJSONUri, VIR_STORAGE_NET_PROTOCOL_HTTPS}, {"ftp", false, virStorageSourceParseBackingJSONUri, VIR_STORAGE_NET_PROTOCOL_FTP}, {"ftps", false, virStorageSourceParseBackingJSONUri, VIR_STORAGE_NET_PROTOCOL_FTPS}, - {"tftp", false, virStorageSourceParseBackingJSONUri, VIR_STORAGE_NET_PROTOCOL_TFTP}, {"gluster", false, virStorageSourceParseBackingJSONGluster, 0}, {"iscsi", false, virStorageSourceParseBackingJSONiSCSI, 0}, {"nbd", false, virStorageSourceParseBackingJSONNbd, 0}, @@ -4637,9 +4634,6 @@ virStorageSourceNetworkDefaultPort(virStorageNetProtocol protocol) case VIR_STORAGE_NET_PROTOCOL_FTPS: return 990; - case VIR_STORAGE_NET_PROTOCOL_TFTP: - return 69; - case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG: return 7000; diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h index c68bdc96..2c94fc44 100644 --- a/src/util/virstoragefile.h +++ b/src/util/virstoragefile.h @@ -132,7 +132,6 @@ typedef enum { VIR_STORAGE_NET_PROTOCOL_HTTPS, VIR_STORAGE_NET_PROTOCOL_FTP, VIR_STORAGE_NET_PROTOCOL_FTPS, - VIR_STORAGE_NET_PROTOCOL_TFTP, VIR_STORAGE_NET_PROTOCOL_SSH, VIR_STORAGE_NET_PROTOCOL_VXHS, -- 2.25.0

Signed-off-by: Han Han <hhan@redhat.com> --- docs/news.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/news.xml b/docs/news.xml index 4cef804a..90743a39 100644 --- a/docs/news.xml +++ b/docs/news.xml @@ -49,6 +49,17 @@ </section> <section title="Bug fixes"> </section> + <section title="Removed features"> + <change> + <summary> + Removed support for tftp storage protocol + </summary> + <description> + The tftp protocol is not support in libxl driver. For QEMU, the tftp + was dropped at v2.8 and actually unusable before v2.8. + </description> + </change> + </section> </release> <release version="v6.3.0" date="2020-05-05"> <section title="New features"> -- 2.25.0

On Thu, May 21, 2020 at 14:08:17 +0800, Han Han wrote:
Let's drop tftp support since it is ususabled before or after QEMU v2.8 [1].
[1]: https://bugzilla.redhat.com/show_bug.cgi?id=1372143
Han Han (3): docs: Remove tftp protocol support from docs src: Remove tftp network storage support news: Remove support for tftp storage protocol
NACK series: 1) qemu 2.8 is still supported by libvirt 2) we can't remove XML parser support for previously supported XMLs as the existing defined VMs would vanish. That's exactly why the check in my patch was added into the validator which doesn't validate existing defined configs.

On Thu, May 21, 2020 at 2:44 PM Peter Krempa <pkrempa@redhat.com> wrote:
On Thu, May 21, 2020 at 14:08:17 +0800, Han Han wrote:
Let's drop tftp support since it is ususabled before or after QEMU v2.8 [1].
[1]: https://bugzilla.redhat.com/show_bug.cgi?id=1372143
Han Han (3): docs: Remove tftp protocol support from docs src: Remove tftp network storage support news: Remove support for tftp storage protocol
NACK series:
1) qemu 2.8 is still supported by libvirt
However, the tftp is actually unusable for all versions of qemu, while the formatdomain doc states that it is optional protocol
2) we can't remove XML parser support for previously supported XMLs as the existing defined VMs would vanish. That's exactly why the check in my patch was added into the validator which doesn't validate existing defined configs.
I understand the consideration of the compatibility. How about only removing it from docs? -- Best regards, ----------------------------------- Han Han Quality Engineer Redhat. Email: hhan@redhat.com Phone: +861065339333

On Thu, May 21, 2020 at 04:05:47PM +0800, Han Han wrote:
On Thu, May 21, 2020 at 2:44 PM Peter Krempa <pkrempa@redhat.com> wrote:
On Thu, May 21, 2020 at 14:08:17 +0800, Han Han wrote:
Let's drop tftp support since it is ususabled before or after QEMU v2.8 [1].
[1]: https://bugzilla.redhat.com/show_bug.cgi?id=1372143
Han Han (3): docs: Remove tftp protocol support from docs src: Remove tftp network storage support news: Remove support for tftp storage protocol
NACK series:
1) qemu 2.8 is still supported by libvirt
However, the tftp is actually unusable for all versions of qemu, while the formatdomain doc states that it is optional protocol
Do you have any more information on this. I'd be surprised if it was /always/ unusuable, as opposed to initially working and then getting broken in some particular version of QEMU.
2) we can't remove XML parser support for previously supported XMLs as the existing defined VMs would vanish. That's exactly why the check in my patch was added into the validator which doesn't validate existing defined configs.
I understand the consideration of the compatibility. How about only removing it from docs?
Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Thu, May 21, 2020 at 5:21 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
On Thu, May 21, 2020 at 2:44 PM Peter Krempa <pkrempa@redhat.com> wrote:
On Thu, May 21, 2020 at 14:08:17 +0800, Han Han wrote:
Let's drop tftp support since it is ususabled before or after QEMU v2.8 [1].
[1]: https://bugzilla.redhat.com/show_bug.cgi?id=1372143
Han Han (3): docs: Remove tftp protocol support from docs src: Remove tftp network storage support news: Remove support for tftp storage protocol
NACK series:
1) qemu 2.8 is still supported by libvirt
However, the tftp is actually unusable for all versions of qemu, while
On Thu, May 21, 2020 at 04:05:47PM +0800, Han Han wrote: the
formatdomain doc states that it is optional protocol
Do you have any more information on this. I'd be surprised if it was /always/ unusuable, as opposed to initially working and then getting broken in some particular version of QEMU.
I tested on qemu-kvm-1.5.3-174.el7.x86_64 curl-7.29.0-58.el7.x86_64 tftp-server-5.2-22.el7.x86_64, it doesn't work, either: ➜ ~ curl tftp://127.0.0.1/img -o /tmp/tftp % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 100M 100 100M 0 0 20.6M 0 0:00:04 0:00:04 --:--:-- 20.6M 100 100M 100 100M 0 0 20.6M 0 0:00:04 0:00:04 --:--:-- 20.6M ➜ ~ qemu-img create -f qcow2 -b 'json:{"file.driver":"tftp", "file.url":"tftp://127.0.0.1/img"}' /var/lib/libvirt/images/tftp.img Formatting '/var/lib/libvirt/images/tftp.img', fmt=qcow2 size=104857600 backing_file='json:{"file.driver":"tftp", "file.url":"tftp://127.0.0.1/img"}' encryption=off cluster_size=65536 lazy_refcounts=off ^C ➜ ~ qemu-img info 'json:{"file.driver":"tftp", "file.url":"tftp:// 127.0.0.1/img"}' ^C The qemu-img command above is stuck and never returns. Max, is the tftp unusable for all versions of QEMU? Could you please give more info on that?
2) we can't remove XML parser support for previously supported XMLs as the existing defined VMs would vanish. That's exactly why the check in my patch was added into the validator which doesn't validate existing defined configs.
I understand the consideration of the compatibility. How about only removing it from docs?
Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
-- Best regards, ----------------------------------- Han Han Quality Engineer Redhat. Email: hhan@redhat.com Phone: +861065339333

On 22.05.20 04:07, Han Han wrote:
On Thu, May 21, 2020 at 5:21 PM Daniel P. Berrangé <berrange@redhat.com <mailto:berrange@redhat.com>> wrote:
On Thu, May 21, 2020 at 04:05:47PM +0800, Han Han wrote: > On Thu, May 21, 2020 at 2:44 PM Peter Krempa <pkrempa@redhat.com <mailto:pkrempa@redhat.com>> wrote: > > > On Thu, May 21, 2020 at 14:08:17 +0800, Han Han wrote: > > > Let's drop tftp support since it is ususabled before or after QEMU v2.8 > > > [1]. > > > > > > [1]: https://bugzilla.redhat.com/show_bug.cgi?id=1372143 > > > > > > > > > Han Han (3): > > > docs: Remove tftp protocol support from docs > > > src: Remove tftp network storage support > > > news: Remove support for tftp storage protocol > > > > NACK series: > > > > 1) qemu 2.8 is still supported by libvirt > > > However, the tftp is actually unusable for all versions of qemu, while the > formatdomain doc > states that it is optional protocol
Do you have any more information on this. I'd be surprised if it was /always/ unusuable, as opposed to initially working and then getting broken in some particular version of QEMU.
I tested on qemu-kvm-1.5.3-174.el7.x86_64 curl-7.29.0-58.el7.x86_64 tftp-server-5.2-22.el7.x86_64, it doesn't work, either: ➜ ~ curl tftp://127.0.0.1/img <http://127.0.0.1/img> -o /tmp/tftp % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 100M 100 100M 0 0 20.6M 0 0:00:04 0:00:04 --:--:-- 20.6M 100 100M 100 100M 0 0 20.6M 0 0:00:04 0:00:04 --:--:-- 20.6M ➜ ~ qemu-img create -f qcow2 -b 'json:{"file.driver":"tftp", "file.url":"tftp://127.0.0.1/img <http://127.0.0.1/img>"}' /var/lib/libvirt/images/tftp.img Formatting '/var/lib/libvirt/images/tftp.img', fmt=qcow2 size=104857600 backing_file='json:{"file.driver":"tftp", "file.url":"tftp://127.0.0.1/img <http://127.0.0.1/img>"}' encryption=off cluster_size=65536 lazy_refcounts=off ^C
➜ ~ qemu-img info 'json:{"file.driver":"tftp", "file.url":"tftp://127.0.0.1/img <http://127.0.0.1/img>"}' ^C
The qemu-img command above is stuck and never returns.
Max, is the tftp unusable for all versions of QEMU? Could you please give more info on that?
I have no idea. I’ve never tested it. Max
participants (4)
-
Daniel P. Berrangé
-
Han Han
-
Max Reitz
-
Peter Krempa