From 7cfa35125a845926ce0975e15bfb55e02bad6ad5 Mon Sep 17 00:00:00 2001 From: Jiri Konecny Date: Mon, 12 Aug 2024 15:57:42 +0200 Subject: [PATCH] Add a new test ftp-proxy Test if FTP installation with `inst.proxy` works as expected. To be able to support this we need to allow more ports in the squid. --- ftp-proxy.ks.in | 22 +++++++++++++++ ftp-proxy.sh | 60 ++++++++++++++++++++++++++++++++++++++++ scripts/confs/squid.conf | 2 ++ 3 files changed, 84 insertions(+) create mode 100644 ftp-proxy.ks.in create mode 100755 ftp-proxy.sh diff --git a/ftp-proxy.ks.in b/ftp-proxy.ks.in new file mode 100644 index 00000000..167621a9 --- /dev/null +++ b/ftp-proxy.ks.in @@ -0,0 +1,22 @@ +#test name: basic-ftp +url --url=@KSTEST_FTP_URL@ +network --bootproto=dhcp + +bootloader --timeout=1 +zerombr +clearpart --all +autopart + +keyboard us +lang en +timezone America/New_York +rootpw qweqwe +shutdown + +%packages +%end + +%post +# If we made it post, that's good enough +echo SUCCESS > /root/RESULT +%end diff --git a/ftp-proxy.sh b/ftp-proxy.sh new file mode 100755 index 00000000..97bc9187 --- /dev/null +++ b/ftp-proxy.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# +# Copyright (C) 2015 Red Hat, Inc. +# +# This copyrighted material is made available to anyone wishing to use, +# modify, copy, or redistribute it subject to the terms and conditions of +# the GNU General Public License v.2, or (at your option) any later version. +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY expressed or implied, including the implied warranties of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. You should have received a copy of the +# GNU General Public License along with this program; if not, write to the +# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. Any Red Hat trademarks that are incorporated in the +# source code or documentation are not subject to the GNU General Public +# License and may only be used or replicated with the express permission of +# Red Hat, Inc. + +# Ignore unused variable parsed out by tooling scripts as test tags metadata +# shellcheck disable=SC2034 +TESTTYPE="method ftp proxy" + +. ${KSTESTDIR}/functions.sh + +kernel_args() { + proxy_url="$(cat ${tmpdir}/proxy_url)" + echo ${DEFAULT_BOOTOPTS} inst.proxy=${proxy_url} +} + +prepare() { + ks=$1 + tmpdir=$2 + + # Start a proxy server + start_proxy ${tmpdir}/proxy + + cp ${ks} ${tmpdir}/kickstart.ks + echo ${tmpdir}/kickstart.ks +} + +validate() { + tmpdir=$1 + validate_RESULT $tmpdir + if [ ! -f $tmpdir/RESULT ]; then + return 1 + fi + + grep -q "$KSTEST_FTP_URL" $tmpdir/proxy/access.log + if [[ $? -ne 0 ]]; then + echo 'FTP URL server request was not proxied' >> $tmpdir/RESULT + fi + + # check for .treeinfo request + grep -q '\.treeinfo[[:space:]]' $tmpdir/proxy/access.log + if [[ $? -ne 0 ]]; then + echo '.treeinfo request to repository server was not proxied' >> $tmpdir/RESULT + fi + + check_result_file "$tmpdir" +} diff --git a/scripts/confs/squid.conf b/scripts/confs/squid.conf index b271f939..7370c81a 100644 --- a/scripts/confs/squid.conf +++ b/scripts/confs/squid.conf @@ -16,6 +16,8 @@ acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN) acl Safe_ports port 80 # http acl Safe_ports port 443 # https acl Safe_ports port 40000-41000 # our_http +acl Safe_ports port 20 # ftp +acl Safe_ports port 21 # ftp acl CONNECT method CONNECT #