github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/acceptancetests/repository/charms/squid-forwardproxy/hooks/config-changed (about)

     1  #!/bin/bash
     2  set -eux
     3  
     4  status-set maintenance "Getting dstdomain" || true
     5  SITENAMES="$(config-get sitenames)"
     6  PORT="$(config-get port)"
     7  IP="$(unit-get private-address)"
     8  LOCALNET=""
     9  
    10  # Create a "localnet" rule for all addresses that can use this proxy.
    11  for app in $(relation-ids forwardproxy); do
    12      for unit in $(relation-list -r $app); do
    13          addr="$(relation-get -r $app private-address $unit)"
    14          if [[ "$addr" != "" ]]; then
    15              LOCALNET="$LOCALNET\nacl localnet src $addr"
    16          fi
    17      done
    18  done
    19  LOCALNET="$(echo -e $LOCALNET)"
    20  # Create the squid conf that is included in the default conf.
    21  cat > /etc/squid/forwardproxy.conf << EOF
    22  http_port $PORT
    23  $LOCALNET
    24  http_access allow localnet
    25  EOF
    26  
    27  service squid restart || service squid start
    28  
    29  if [[ -z $SITENAMES ]]; then
    30      status-set active "Proxying: *" || true
    31  else
    32      status-set active "Proxying: $SITENAMES" || true
    33  fi
    34  
    35  # Update the proxy-ees with the necessary config.
    36  if [[ $0 != 'config-changed' ]]; then
    37      for relation_id in $(relation-ids forwardproxy); do
    38          relation-set -r $relation_id ip="$IP" port="$PORT"
    39      done
    40  fi