[master 2/2] Move the proxy server script into a common file.
dashea
installerbot-noreply at redhat.com
Thu Jul 30 14:28:37 UTC 2015
From: David Shea <dshea at redhat.com>
Cut two copies of the proxy server down to one copy and a couple of
ksflattens.
---
tests/kickstart_tests/proxy-cmdline.ks | 42 +++-----------------------------
tests/kickstart_tests/proxy-cmdline.sh | 9 +++++++
tests/kickstart_tests/proxy-common.ks | 38 +++++++++++++++++++++++++++++
tests/kickstart_tests/proxy-kickstart.ks | 42 +++-----------------------------
tests/kickstart_tests/proxy-kickstart.sh | 7 ++++--
5 files changed, 58 insertions(+), 80 deletions(-)
create mode 100644 tests/kickstart_tests/proxy-common.ks
diff --git a/tests/kickstart_tests/proxy-cmdline.ks b/tests/kickstart_tests/proxy-cmdline.ks
index 2fc17fe..ecfa1d4 100644
--- a/tests/kickstart_tests/proxy-cmdline.ks
+++ b/tests/kickstart_tests/proxy-cmdline.ks
@@ -1,42 +1,3 @@
-# Start a super-simple proxy server on localhost
-# A list of proxied requests will be saved to /tmp/proxy.log
-%pre --erroronfail
-# Write the proxy script to a file in /tmp
-cat - << "EOF" > /tmp/proxy-test.py
-from http.server import SimpleHTTPRequestHandler
-import socketserver
-from urllib.request import urlopen
-import os, sys
-
-import logging
-log = logging.getLogger("proxy_test")
-log_handler = logging.FileHandler('/tmp/proxy.log')
-log.setLevel(logging.INFO)
-log.addHandler(log_handler)
-
-class ProxyHandler(SimpleHTTPRequestHandler):
- def do_GET(self):
- # Log the path then proxy the request via urllib
- log.info(self.path)
- data = urlopen(self.path).read()
- self.send_response(200)
- self.send_header('Content-Length', str(len(data)))
- self.end_headers()
- self.wfile.write(data)
-
-class ProxyServer(socketserver.TCPServer):
- allow_reuse_address = True
-
- def __init__(self):
- socketserver.TCPServer.__init__(self, ('', 8080), ProxyHandler)
-
-ProxyServer().serve_forever()
-EOF
-
-# Run the server in the background and exit
-python3 /tmp/proxy-test.py > /dev/null 2>&1 &
-%end
-
url --url=http://dl.fedoraproject.org/pub/fedora/linux/development/$releasever/$basearch/os/
install
network --bootproto=dhcp
@@ -56,6 +17,9 @@ shutdown
%packages
%end
+# Run the proxy
+%include proxy-common.ks
+
%post --nochroot
# Look for the following as evidence that a proxy was used:
# a .treeinfo request
diff --git a/tests/kickstart_tests/proxy-cmdline.sh b/tests/kickstart_tests/proxy-cmdline.sh
index 05f67f8..91e8625 100755
--- a/tests/kickstart_tests/proxy-cmdline.sh
+++ b/tests/kickstart_tests/proxy-cmdline.sh
@@ -22,3 +22,12 @@
kernel_args() {
echo vnc inst.proxy=http://127.0.0.1:8080
}
+
+prepare() {
+ ks=$1
+ tmpdir=$2
+
+ # Flatten the kickstart to include the proxy %pre script
+ ( cd "$(dirname ${ks})" && ksflatten -o ${tmpdir}/kickstart.ks -c "$(basename $ks)" )
+ echo ${tmpdir}/kickstart.ks
+}
diff --git a/tests/kickstart_tests/proxy-common.ks b/tests/kickstart_tests/proxy-common.ks
new file mode 100644
index 0000000..1234f72
--- /dev/null
+++ b/tests/kickstart_tests/proxy-common.ks
@@ -0,0 +1,38 @@
+# Start a super-simple proxy server on localhost
+# A list of proxied requests will be saved to /tmp/proxy.log
+%pre --erroronfail
+# Write the proxy script to a file in /tmp
+cat - << "EOF" > /tmp/proxy-test.py
+from http.server import SimpleHTTPRequestHandler
+import socketserver
+from urllib.request import urlopen
+import os, sys
+
+import logging
+log = logging.getLogger("proxy_test")
+log_handler = logging.FileHandler('/tmp/proxy.log')
+log.setLevel(logging.INFO)
+log.addHandler(log_handler)
+
+class ProxyHandler(SimpleHTTPRequestHandler):
+ def do_GET(self):
+ # Log the path then proxy the request via urllib
+ log.info(self.path)
+ data = urlopen(self.path).read()
+ self.send_response(200)
+ self.send_header('Content-Length', str(len(data)))
+ self.end_headers()
+ self.wfile.write(data)
+
+class ProxyServer(socketserver.TCPServer):
+ allow_reuse_address = True
+
+ def __init__(self):
+ socketserver.TCPServer.__init__(self, ('', 8080), ProxyHandler)
+
+ProxyServer().serve_forever()
+EOF
+
+# Run the server in the background and exit
+python3 /tmp/proxy-test.py > /dev/null 2>&1 &
+%end
diff --git a/tests/kickstart_tests/proxy-kickstart.ks b/tests/kickstart_tests/proxy-kickstart.ks
index ee067ec..6dce57e 100644
--- a/tests/kickstart_tests/proxy-kickstart.ks
+++ b/tests/kickstart_tests/proxy-kickstart.ks
@@ -1,42 +1,3 @@
-# Start a super-simple proxy server on localhost
-# A list of proxied requests will be saved to /tmp/proxy.log
-%pre --erroronfail
-# Write the proxy script to a file in /tmp
-cat - << "EOF" > /tmp/proxy-test.py
-from http.server import SimpleHTTPRequestHandler
-import socketserver
-from urllib.request import urlopen
-import os, sys
-
-import logging
-log = logging.getLogger("proxy_test")
-log_handler = logging.FileHandler('/tmp/proxy.log')
-log.setLevel(logging.INFO)
-log.addHandler(log_handler)
-
-class ProxyHandler(SimpleHTTPRequestHandler):
- def do_GET(self):
- # Log the path then proxy the request via urllib
- log.info(self.path)
- data = urlopen(self.path).read()
- self.send_response(200)
- self.send_header('Content-Length', str(len(data)))
- self.end_headers()
- self.wfile.write(data)
-
-class ProxyServer(socketserver.TCPServer):
- allow_reuse_address = True
-
- def __init__(self):
- socketserver.TCPServer.__init__(self, ('', 8080), ProxyHandler)
-
-ProxyServer().serve_forever()
-EOF
-
-# Run the server in the background and exit
-python3 /tmp/proxy-test.py > /dev/null 2>&1 &
-%end
-
url --url=http://dl.fedoraproject.org/pub/fedora/linux/development/$releasever/$basearch/os/ --proxy=127.0.0.1:8080
repo --name=kstest-http --baseurl=HTTP-ADDON-REPO --proxy=127.0.0.1:8080
install
@@ -57,6 +18,9 @@ shutdown
%packages
%end
+# Start the proxy server
+%include proxy-common.ks
+
%post --nochroot
# Look for the following as evidence that a proxy was used:
# a .treeinfo request
diff --git a/tests/kickstart_tests/proxy-kickstart.sh b/tests/kickstart_tests/proxy-kickstart.sh
index df0f76b..fa15deb 100755
--- a/tests/kickstart_tests/proxy-kickstart.sh
+++ b/tests/kickstart_tests/proxy-kickstart.sh
@@ -28,6 +28,9 @@ prepare() {
return 1.
fi
- sed -e "/^repo/ s|HTTP-ADDON-REPO|${KSTEST_ADDON_HTTP_REPO}|" ${ks} > ${tmpdir}/kickstart.ks
- echo ${tmpdir}/kickstart.ks
+ # Flatten the kickstart to include the proxy %pre script
+ ( cd "$(dirname ${ks})" && ksflatten -o ${tmpdir}/kickstart.ks -c "$(basename $ks)" )
+
+ sed -e "/^repo/ s|HTTP-ADDON-REPO|${KSTEST_ADDON_HTTP_REPO}|" ${tmpdir}/kickstart.ks > ${tmpdir}/kickstart-repo.ks
+ echo ${tmpdir}/kickstart-repo.ks
}
--
To view this commit on github, visit https://github.com/rhinstaller/anaconda/commit/cfe12c56f278948f98ae298885888708f3c47a3e
More information about the anaconda-patches
mailing list