[master 7/7] Serve the http addon repos from the test tmpdir
dashea
installerbot-noreply at redhat.com
Thu Sep 3 22:08:51 UTC 2015
From: David Shea <dshea at redhat.com>
KSTEST_ADDON_HTTP_REPO no longer needs to be passed in through the
environment.
---
tests/kickstart_tests/nfs-repo-and-addon.sh | 31 ++++++++++++++++++++++++-----
tests/kickstart_tests/proxy-auth.sh | 29 +++++++++++++++++++++++----
tests/kickstart_tests/proxy-kickstart.sh | 29 +++++++++++++++++++++++----
3 files changed, 76 insertions(+), 13 deletions(-)
diff --git a/tests/kickstart_tests/nfs-repo-and-addon.sh b/tests/kickstart_tests/nfs-repo-and-addon.sh
index fc772da..ec47b58 100755
--- a/tests/kickstart_tests/nfs-repo-and-addon.sh
+++ b/tests/kickstart_tests/nfs-repo-and-addon.sh
@@ -30,11 +30,6 @@ prepare() {
return 1
fi
- if [[ "${KSTEST_ADDON_HTTP_REPO}" == "" ]]; then
- echo \$KSTEST_ADDON_HTTP_REPO is not set.
- return 1
- fi
-
if [[ "${KSTEST_NFS_SERVER}" == "" ]]; then
echo \$KSTEST_NFS_SERVER is not set
return 1
@@ -45,9 +40,35 @@ prepare() {
return 1
fi
+ scriptdir=$(pwd)/kickstart_tests/scripts
+
+ # Create the test repo
+ PYTHONPATH=$(pwd)/lib:$PYTHONPATH ${scriptdir}/make-addon-pkgs.py $tmpdir
+
+ # Start a http server to serve the test repo
+ httpd_info="$(${scriptdir}/httpd.py ${tmpdir}/http)"
+
+ # Parse out the port and PID
+ httpd_port="$(echo "$httpd_info" | cut -d ' ' -f 1)"
+ httpd_pid="$(echo "$httpd_info" | cut -d ' ' -f 2)"
+
+ # Save the PID
+ echo "$httpd_info" | cut -d ' ' -f 2 > ${tmpdir}/httpd-pid
+
+ # Construct a repo address from an external address and the httpd port
+ KSTEST_ADDON_HTTP_REPO="http://$(${scriptdir}/find-ip):${httpd_port}/"
+
sed -e "s|NFS-SERVER|${KSTEST_NFS_SERVER}|" \
-e "s|NFS-PATH|${KSTEST_NFS_PATH}|" \
-e "s|NFS-ADDON-REPO|${KSTEST_ADDON_NFS_REPO}|" \
-e "s|HTTP-ADDON-REPO|${KSTEST_ADDON_HTTP_REPO}|" ${ks} > ${tmpdir}/kickstart.ks
echo ${tmpdir}/kickstart.ks
}
+
+cleanup() {
+ tmpdir=$1
+
+ if [ -f ${tmpdir}/httpd-pid ]; then
+ kill $(cat ${tmpdir}/httpd-pid)
+ fi
+}
diff --git a/tests/kickstart_tests/proxy-auth.sh b/tests/kickstart_tests/proxy-auth.sh
index 9753a8b..8653f15 100755
--- a/tests/kickstart_tests/proxy-auth.sh
+++ b/tests/kickstart_tests/proxy-auth.sh
@@ -25,10 +25,23 @@ prepare() {
ks=$1
tmpdir=$2
- if [[ "${KSTEST_ADDON_HTTP_REPO}" == "" ]]; then
- echo \$KSTEST_ADDON_HTTP_REPO is not set.
- return 1.
- fi
+ scriptdir=$(pwd)/kickstart_tests/scripts
+
+ # Create the test repo
+ PYTHONPATH=$(pwd)/lib:$PYTHONPATH ${scriptdir}/make-addon-pkgs.py $tmpdir
+
+ # Start a http server to serve the test repo
+ httpd_info="$(${scriptdir}/httpd.py ${tmpdir}/http)"
+
+ # Parse out the port and PID
+ httpd_port="$(echo "$httpd_info" | cut -d ' ' -f 1)"
+ httpd_pid="$(echo "$httpd_info" | cut -d ' ' -f 2)"
+
+ # Save the PID
+ echo "$httpd_info" | cut -d ' ' -f 2 > ${tmpdir}/httpd-pid
+
+ # Construct a repo address from an external address and the httpd port
+ KSTEST_ADDON_HTTP_REPO="http://$(${scriptdir}/find-ip):${httpd_port}/"
# Flatten the kickstart to include the proxy %pre script
( cd "$(dirname ${ks})" && ksflatten -o ${tmpdir}/kickstart.ks -c "$(basename $ks)" )
@@ -36,3 +49,11 @@ prepare() {
sed -e "/^repo/ s|HTTP-ADDON-REPO|${KSTEST_ADDON_HTTP_REPO}|" ${tmpdir}/kickstart.ks > ${tmpdir}/kickstart-repo.ks
echo ${tmpdir}/kickstart-repo.ks
}
+
+cleanup() {
+ tmpdir=$1
+
+ if [ -f ${tmpdir}/httpd-pid ]; then
+ kill $(cat ${tmpdir}/httpd-pid)
+ fi
+}
diff --git a/tests/kickstart_tests/proxy-kickstart.sh b/tests/kickstart_tests/proxy-kickstart.sh
index 9753a8b..8653f15 100755
--- a/tests/kickstart_tests/proxy-kickstart.sh
+++ b/tests/kickstart_tests/proxy-kickstart.sh
@@ -25,10 +25,23 @@ prepare() {
ks=$1
tmpdir=$2
- if [[ "${KSTEST_ADDON_HTTP_REPO}" == "" ]]; then
- echo \$KSTEST_ADDON_HTTP_REPO is not set.
- return 1.
- fi
+ scriptdir=$(pwd)/kickstart_tests/scripts
+
+ # Create the test repo
+ PYTHONPATH=$(pwd)/lib:$PYTHONPATH ${scriptdir}/make-addon-pkgs.py $tmpdir
+
+ # Start a http server to serve the test repo
+ httpd_info="$(${scriptdir}/httpd.py ${tmpdir}/http)"
+
+ # Parse out the port and PID
+ httpd_port="$(echo "$httpd_info" | cut -d ' ' -f 1)"
+ httpd_pid="$(echo "$httpd_info" | cut -d ' ' -f 2)"
+
+ # Save the PID
+ echo "$httpd_info" | cut -d ' ' -f 2 > ${tmpdir}/httpd-pid
+
+ # Construct a repo address from an external address and the httpd port
+ KSTEST_ADDON_HTTP_REPO="http://$(${scriptdir}/find-ip):${httpd_port}/"
# Flatten the kickstart to include the proxy %pre script
( cd "$(dirname ${ks})" && ksflatten -o ${tmpdir}/kickstart.ks -c "$(basename $ks)" )
@@ -36,3 +49,11 @@ prepare() {
sed -e "/^repo/ s|HTTP-ADDON-REPO|${KSTEST_ADDON_HTTP_REPO}|" ${tmpdir}/kickstart.ks > ${tmpdir}/kickstart-repo.ks
echo ${tmpdir}/kickstart-repo.ks
}
+
+cleanup() {
+ tmpdir=$1
+
+ if [ -f ${tmpdir}/httpd-pid ]; then
+ kill $(cat ${tmpdir}/httpd-pid)
+ fi
+}
--
To view this commit on github, visit https://github.com/rhinstaller/anaconda/commit/61688560f6c8f2c76cf5c8d8c4476e9d1e5243c9
More information about the anaconda-patches
mailing list