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