You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@trafficserver.apache.org by James Peach <jp...@apache.org> on 2014/10/16 00:50:36 UTC
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, zwoop@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 0000000..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-XXXXXX)
> +
> +# 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}
>