[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