~doanac/charms/precise/ubuntu-ci-services-itself/lander-image-builder-start

« back to all changes in this revision

Viewing changes to hooks/config-changed

  • Committer: Francis Ginther
  • Date: 2013-12-12 21:14:22 UTC
  • Revision ID: francis.ginther@canonical.com-20131212211422-a3cj3z0ks2mhsbto
Copy more bits from the jlp subordinate charm.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/bash
 
2
 
 
3
set -x
 
4
 
 
5
eth0_ip=`ifconfig eth0|grep 'inet addr'| sed 's/.*inet addr:\([.0-9]*\).*/\1/'`
 
6
 
 
7
export JENKINS_HOME=/var/lib/jenkins
 
8
export LAUNCHPAD_LOGIN="$(config-get bot_lp_login)"
 
9
export JENKINS_URL="http://$eth0_ip:8080/"
 
10
export JENKINS_USER="$(config-get jenkins_user)"
 
11
export JENKINS_PASSWORD="$(config-get jenkins_password)"
 
12
# List of launchpad users or teams allowed to trigger jobs
 
13
export ALLOWED_USERS="$(config-get allowed_users)"
 
14
export DEBFULLNAME="$(config-get bot_full_name)"
 
15
export DEBEMAIL=$(config-get bot_email)
 
16
 
 
17
 
 
18
#configure jenkins user
 
19
function configure_jenkins_user() {
 
20
    SALT="$(< /dev/urandom tr -dc A-Za-z | head -c6)"
 
21
    PASSWORD="$SALT:$(echo -n "$JENKINS_PASSWORD{$SALT}" | shasum -a 256 | awk '{ print $1 }')"
 
22
    mkdir -p $JENKINS_HOME/users/$JENKINS_USER
 
23
    sed -e "s#__USERNAME__#$JENKINS_USER#" -e "s#__PASSWORD__#$PASSWORD#" \
 
24
        $CHARM_DIR/templates/user-config.xml > $JENKINS_HOME/users/$JENKINS_USER/config.xml
 
25
    chown -R jenkins:nogroup $JENKINS_HOME/users
 
26
}
 
27
 
 
28
if ! [ -d $JENKINS_HOME/users/$JENKINS_USER ]; then
 
29
    configure_jenkins_user
 
30
fi
 
31
 
 
32
apt-get install -y --force-yes bzr-builder debhelper bzr-builddeb python-jinja2
 
33
 
 
34
#create jobs
 
35
function create_jobs() {
 
36
    for job in `ls $CHARM_DIR/templates`; do
 
37
        mkdir -p $JENKINS_HOME/jobs/$job
 
38
        cp $CHARM_DIR/templates/$job.xml $JENKINS_HOME/jobs/$job/config.xml
 
39
    done
 
40
    chown -R jenkins.nogroup $JENKINS_HOME/jobs
 
41
}
 
42
 
 
43
create_jobs
 
44
 
 
45
# Ensure all new configuration is picked up.
 
46
service jenkins stop || true
 
47
service jenkins start