Charm: ~gandelman-a:precise/swift-storage
Revision: 27
Hook: swift-proxy-relation-changed
#!/bin/bash
# test
set -u
FORMULA_DIR=$(dirname $0)
ARG0=${0##*/}
echo $JUJU_UNIT_NAME >>/tmp/unit_name
if [[ -e $FORMULA_DIR/swift-storage-node-common ]] ; then
. $FORMULA_DIR/swift-storage-node-common
else
echo "ERROR: Could not load swift-storage-node-common from $FORMULA_DIR"
fi
function install_hook {
apt-get -y install python-software-properties || exit 1
add_ppa
apt-get update
for i in $PACKAGES ; do
DEBIAN_FRONTEND=noninteractive apt-get -y install $i
done
[[ ! -d /etc/swift ]] && mkdir /etc/swift
chown swift:swift /etc/swift
configure_rsyncd
setup_storage
for i in account container object ; do create_server_conf $i ; done
}
function proxy_joined {
relation-set zone=1 hostname=$(unit-get private-address) device=$DEVICE
}
function proxy_changed {
URL=`relation-get update_url`
SWIFT_HASH=`relation-get swift_hash`
[[ -z $URL ]] || [[ -z $SWIFT_HASH ]] && exit 0
echo "$URL" >>/tmp/url
rm -rf /etc/swift/*.gz
for i in account object container ; do
cd /etc/swift
echo "Fetching $URL/$i.ring.gz"
wget $URL/$i.ring.gz
done
set_swift_hash $SWIFT_HASH
chown swift -R /etc/swift
swift-init all start
}
case $ARG0 in
"install") install_hook ;;
"start"|"stop") exit 0 ;;
"swift-proxy-relation-joined") proxy_joined ;;
"swift-proxy-relation-changed") proxy_changed ;;
esac