~aisrael/charms/trusty/collectd-server/trunk

« back to all changes in this revision

Viewing changes to hooks/apply

  • Committer: Clint Byrum
  • Date: 2012-09-19 02:24:00 UTC
  • Revision ID: clint@ubuntu.com-20120919022400-82u2vg0hz5m4vmj3
use alarms/timeouts to keep retrying/killing puppet to work around 2.7.11 bug

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#!/bin/bash
2
2
set -e
 
3
set -x
 
4
 
 
5
TIMEOUT=300 # seconds to wait before retrying puppet
 
6
 
3
7
graph_port=`config-get graph-port`
4
8
expose_collectd_network=`config-get expose-collectd-network --format=json`
5
9
fact-add config_security_level `config-get security-level`
8
12
if [ -z "`facter charm_collectd_password`" ] ; then
9
13
    fact-add charm_collectd_password `pwgen 60`
10
14
fi
11
 
puppet apply --templatedir=`pwd`/manifests/templates manifests/collectd.pp
 
15
 
 
16
PUPPETPID=""
 
17
run_puppet() {
 
18
    if [ -n "$PUPPETPID" ] ; then
 
19
        kill -9 $PUPPETPID
 
20
    fi
 
21
    puppet apply --templatedir=`pwd`/manifests/templates manifests/collectd.pp &
 
22
    PUPPETPID=$!
 
23
    wait $PUPPETPID || :
 
24
}
 
25
trap run_puppet SIGALRM
 
26
PARENTPID=$$
 
27
# Work around puppet sometimes getting stuck - run alarm in subshell
 
28
(
 
29
    sleep $TIMEOUT
 
30
    kill -ALRM $PARENTPID
 
31
) &
 
32
ALARMPID=$!
 
33
run_puppet 
 
34
kill $ALARMPID || :