git commit: TS-3139] New script, traffic_primer, to prime a set of boxes with content

2014-10-15 Thread zwoop
Repository: trafficserver
Updated Branches:
  refs/heads/master 3e64d405c - cdd1d15b4


TS-3139] New script, traffic_primer, to prime a set of boxes with content


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/cdd1d15b
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/cdd1d15b
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/cdd1d15b

Branch: refs/heads/master
Commit: cdd1d15b48fe94158a59454ef75233f1ee827172
Parents: 3e64d40
Author: Leif Hedstrom zw...@apache.org
Authored: Wed Oct 15 14:47:01 2014 -0600
Committer: Leif Hedstrom zw...@apache.org
Committed: Wed Oct 15 14:47:01 2014 -0600

--
 CHANGES  |  4 +++
 tools/traffic_primer | 79 +++
 2 files changed, 83 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/cdd1d15b/CHANGES
--
diff --git a/CHANGES b/CHANGES
index 100261c..a7b3d0c 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,10 @@
  -*- coding: utf-8 -*-
 Changes with Apache Traffic Server 5.2.0
 
+  *) [TS-3139] New script, traffic_primer, which will fetch a URL from origin
+   (or another proxy) and PUSH the same object to a given set of
+   caches. Useful for priming a pool of servers with the same object.
+
   *) [TS-3135] Disable SSLv3 by default. This can be enabled again by adding a
line to records.config for proxy.config.ssl.SSLv3.
 

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/cdd1d15b/tools/traffic_primer
--
diff --git a/tools/traffic_primer b/tools/traffic_primer
new file mode 100755
index 000..1a39de7
--- /dev/null
+++ b/tools/traffic_primer
@@ -0,0 +1,79 @@
+#!/bin/sh
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# License); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an AS IS BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Simple script to fetch a URL through one proxy, and then PUSH that response 
(headers
+# and body) to a set of hosts. The host:port defaults to localhost:80 for 
fetching
+# the URL, but can be overriden with -h/-p.
+
+
+# Print some help text
+usage() {
+echo 'Usage: traffic_primer -u url [-h Host] [-p port] host1 host2 ...'
+exit 2
+}
+
+# Default values for command line options
+url=
+host=localhost
+port=80
+
+# Parse command line arguments
+PARGS=$(getopt u:h:p: $@)
+[ $? != 0 ]  usage
+
+set -- $PARGS
+while true; do
+case $1 in
+-u)
+url=$2
+shift 2 ;;
+-h)
+host=$2
+shift 2 ;;
+-p)
+port=$2
+shift 2 ;;
+--)
+shift
+break ;;
+*)
+usage
+break
+;;
+esac
+done
+
+[  == $url ]  usage
+
+tmpfile=$(mktemp /tmp/pusher-XX)
+
+# CLeanup just in case
+trap rm -f $tmpfile; exit 0 0 1 2 3 15
+
+# Fetch the URL through the proxy on localhost, and create the file for PUSH
+curl -x ${host}:${port} -s -i -o ${tmpfile} $url
+
+for h in $@; do
+curl -f -I -x ${h}:${port} -s -o /dev/null -H Cache-Control: 
only-if-cached $url  /dev/null
+if [ $? -gt 0 ]; then
+echo PUSHing to $h...
+curl -x ${h}:80 -s -o /dev/null -X PUSH --data-binary @${tmpfile} $url
+fi
+done
+
+rm -f ${tmpfile}



Re: git commit: TS-3139] New script, traffic_primer, to prime a set of boxes with content

2014-10-15 Thread James Peach
On Oct 15, 2014, at 1:47 PM, zw...@apache.org wrote:

 Repository: trafficserver
 Updated Branches:
  refs/heads/master 3e64d405c - cdd1d15b4
 
 
 TS-3139] New script, traffic_primer, to prime a set of boxes with content

I think it wold be better to have 1 script that works in both modes. 2 separate 
scripts seems like overkill

 
 
 Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
 Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/cdd1d15b
 Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/cdd1d15b
 Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/cdd1d15b
 
 Branch: refs/heads/master
 Commit: cdd1d15b48fe94158a59454ef75233f1ee827172
 Parents: 3e64d40
 Author: Leif Hedstrom zw...@apache.org
 Authored: Wed Oct 15 14:47:01 2014 -0600
 Committer: Leif Hedstrom zw...@apache.org
 Committed: Wed Oct 15 14:47:01 2014 -0600
 
 --
 CHANGES  |  4 +++
 tools/traffic_primer | 79 +++
 2 files changed, 83 insertions(+)
 --
 
 
 http://git-wip-us.apache.org/repos/asf/trafficserver/blob/cdd1d15b/CHANGES
 --
 diff --git a/CHANGES b/CHANGES
 index 100261c..a7b3d0c 100644
 --- a/CHANGES
 +++ b/CHANGES
 @@ -1,6 +1,10 @@
  -*- coding: utf-8 -*-
 Changes with Apache Traffic Server 5.2.0
 
 +  *) [TS-3139] New script, traffic_primer, which will fetch a URL from origin
 +   (or another proxy) and PUSH the same object to a given set of
 +   caches. Useful for priming a pool of servers with the same object.
 +
   *) [TS-3135] Disable SSLv3 by default. This can be enabled again by adding a
line to records.config for proxy.config.ssl.SSLv3.
 
 
 http://git-wip-us.apache.org/repos/asf/trafficserver/blob/cdd1d15b/tools/traffic_primer
 --
 diff --git a/tools/traffic_primer b/tools/traffic_primer
 new file mode 100755
 index 000..1a39de7
 --- /dev/null
 +++ b/tools/traffic_primer
 @@ -0,0 +1,79 @@
 +#!/bin/sh
 +#
 +# Licensed to the Apache Software Foundation (ASF) under one
 +# or more contributor license agreements.  See the NOTICE file
 +# distributed with this work for additional information
 +# regarding copyright ownership.  The ASF licenses this file
 +# to you under the Apache License, Version 2.0 (the
 +# License); you may not use this file except in compliance
 +# with the License.  You may obtain a copy of the License at
 +#
 +#  http://www.apache.org/licenses/LICENSE-2.0
 +#
 +# Unless required by applicable law or agreed to in writing, software
 +# distributed under the License is distributed on an AS IS BASIS,
 +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +# See the License for the specific language governing permissions and
 +# limitations under the License.
 +
 +# Simple script to fetch a URL through one proxy, and then PUSH that 
 response (headers
 +# and body) to a set of hosts. The host:port defaults to localhost:80 for 
 fetching
 +# the URL, but can be overriden with -h/-p.
 +
 +
 +# Print some help text
 +usage() {
 +echo 'Usage: traffic_primer -u url [-h Host] [-p port] host1 host2 ...'
 +exit 2
 +}
 +
 +# Default values for command line options
 +url=
 +host=localhost
 +port=80
 +
 +# Parse command line arguments
 +PARGS=$(getopt u:h:p: $@)
 +[ $? != 0 ]  usage
 +
 +set -- $PARGS
 +while true; do
 +case $1 in
 +-u)
 +url=$2
 +shift 2 ;;
 +-h)
 +host=$2
 +shift 2 ;;
 +-p)
 +port=$2
 +shift 2 ;;
 +--)
 +shift
 +break ;;
 +*)
 +usage
 +break
 +;;
 +esac
 +done
 +
 +[  == $url ]  usage
 +
 +tmpfile=$(mktemp /tmp/pusher-XX)
 +
 +# CLeanup just in case
 +trap rm -f $tmpfile; exit 0 0 1 2 3 15
 +
 +# Fetch the URL through the proxy on localhost, and create the file for PUSH
 +curl -x ${host}:${port} -s -i -o ${tmpfile} $url
 +
 +for h in $@; do
 +curl -f -I -x ${h}:${port} -s -o /dev/null -H Cache-Control: 
 only-if-cached $url  /dev/null
 +if [ $? -gt 0 ]; then
 +echo PUSHing to $h...
 +curl -x ${h}:80 -s -o /dev/null -X PUSH --data-binary @${tmpfile} 
 $url
 +fi
 +done
 +
 +rm -f ${tmpfile}