git commit: TS-3139] New script, traffic_primer, to prime a set of boxes with content
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
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}