init.d script for domtool-slave
[hcoop/domtool2.git] / src / plugins / domtool-postgres
1 #!/bin/sh -e
2
3 case $1 in
4 adduser)
5 USERNAME=$2
6 DIR=/afs/hcoop.net/common/databases/$USERNAME/postgres
7
8 kinit -k -t /etc/keytabs/root.admin.keytab root/admin
9 aklog
10
11 if ! vos examine db.$USERNAME >/dev/null 2>/dev/null; then
12 vos create -server afs -partition a -name db.$USERNAME -maxquota 5000
13 fs mkmount -dir /afs/.hcoop.net/common/.databases/$USERNAME -vol db.$USERNAME -rw
14 vos release common.databases
15 fs setacl -dir /afs/hcoop.net/common/databases/$USERNAME -acl databases l
16 fs setacl -dir /afs/hcoop.net/common/databases/$USERNAME -acl system:backup rl
17 fi
18
19 if ! [ -d $DIR ]; then
20 sudo -u postgres psql -c "CREATE USER $USERNAME" template1
21 mkdir -p $DIR
22 chown postgres:postgres $DIR
23 fs setacl -dir $DIR -acl postgres write
24 fs setacl -dir $DIR -acl databases none
25 fs setacl -dir $DIR -acl system:backup rl
26
27 sudo -u postgres psql -c "CREATE TABLESPACE user_$USERNAME OWNER $USERNAME LOCATION '$DIR'" template1
28 fi
29 ;;
30 createdb)
31 USERNAME=$2
32 DBNAME_BASE=$3
33 DBNAME="${USERNAME}_${DBNAME_BASE}"
34
35 sudo -u postgres createdb -O $USERNAME -D user_$USERNAME $DBNAME
36 ;;
37 *)
38 echo "Usage: domtool-postgres [adduser <user> | createdb <user> <table>]"
39 ;;
40 esac